pero 0.4.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 103d891b1713c5264fa52107389bedf8b5b8aa3a2ff4139a438a0cd335ce3376
4
- data.tar.gz: fcbb6995fec0b668f77f4b590ba3e91fd1dba55df920f620d85660a43e7f58d8
3
+ metadata.gz: 1fa8e3c0220e5ddfff94bb9944e6f3aa07f409c3579811943524da1de45783bd
4
+ data.tar.gz: 8ebbe115e81746cfd98b4d4293a8df4301dd598c5c3977a0d2de9129bd4cdd3d
5
5
  SHA512:
6
- metadata.gz: 72b02283c6e5963f9d7944b476b9ec7b0004cb9bda9db7a90da1fea72761ba65099165d886ec3d7751bb97097154e8f078107892e27585a9436a5c7e2ae4434b
7
- data.tar.gz: 5f44729bd0d480a61a6eae0bf050b8157d0231c1f3fce33a31cab47ae63e6c11451c2fbd22a9f3fbc605c8cb4522543a1c20f9adb0cea579c3332de32eccd888
6
+ metadata.gz: 45b84acb77370f21318ca8eefb9d8d84279f16b13229181d36fb2119f0247ad84c11205e8a591898ec41771f12e93173a8026c2210c8b5370adf35c312a93b32
7
+ data.tar.gz: '079d3f94c94d18fd9b17bf0809704ac1eff8992bc17c1de72c5eac1304a6a60d3b4a2cbe9780b0bbb55bae55e7f502dc9d134e909362c1a78e7ca38737b30d95'
data/lib/pero/cli.rb CHANGED
@@ -55,24 +55,29 @@ module Pero
55
55
  return
56
56
  end
57
57
 
58
+ prepare
59
+ nodes = Pero::History.search(name_regexp)
60
+ return unless nodes
58
61
  begin
59
- prepare
60
- nodes = Pero::History.search(name_regexp)
61
- return unless nodes
62
62
  Parallel.each(nodes, in_process: options["concurrent"]) do |n|
63
- opt = n["last_options"].merge(options)
64
- opt["environment"] = "production" if opt["environment"].nil? || opt["environment"].empty?
65
- if options["image-name"]
66
- opt.delete("server-version")
67
- else
68
- opt.delete("image-name")
69
- end
63
+ opt = merge_options(n, options)
70
64
  puppet = Pero::Puppet.new(opt["host"], opt)
71
65
  puppet.apply
72
66
  end
73
67
  rescue => e
74
68
  Pero.log.error e.backtrace.join("\n")
75
69
  Pero.log.error e.inspect
70
+
71
+ ensure
72
+ if options["one-shot"]
73
+ Pero.log.info "stop puppet master container"
74
+ Parallel.each(nodes, in_process: options["concurrent"]) do |n|
75
+ opt = merge_options(n, options)
76
+ Pero::Puppet.new(opt["host"], opt).stop_master
77
+ end
78
+ else
79
+ Pero.log.info "puppet master container keep running"
80
+ end
76
81
  end
77
82
  end
78
83
 
@@ -97,6 +102,17 @@ module Pero
97
102
  end
98
103
 
99
104
  no_commands do
105
+ def merge_options(node, options)
106
+ opt = node["last_options"].merge(options)
107
+ opt["environment"] = "production" if opt["environment"].nil? || opt["environment"].empty?
108
+ if options["image-name"]
109
+ opt.delete("server-version")
110
+ else
111
+ opt.delete("image-name")
112
+ end
113
+ opt
114
+ end
115
+
100
116
  def prepare
101
117
  `bundle install` if File.exists?("Gemfile")
102
118
  `bundle exec librarian-puppet install` if File.exists?("Puppetfile")
data/lib/pero/docker.rb CHANGED
@@ -14,6 +14,7 @@ module Pero
14
14
 
15
15
  def build
16
16
  Pero.log.info "start build container"
17
+ ::Docker.options[:read_timeout] = 300
17
18
  begin
18
19
  image = if image_name
19
20
  ::Docker::Image.create('fromImage' => image_name)
@@ -138,8 +139,19 @@ EOS
138
139
  ["puppet6-release-el-#{el}.noarch.rpm", "puppetserver"]
139
140
  end
140
141
 
142
+ vault_repo = if el == 6
143
+ <<-EOS
144
+ RUN sed -i "s|#baseurl=|baseurl=|g" /etc/yum.repos.d/CentOS-Base.repo \
145
+ && sed -i "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo \
146
+ && sed -i "s|http://mirror\.centos\.org/|http://vault\.centos\.org/|g" /etc/yum.repos.d/CentOS-Base.repo
147
+ EOS
148
+ else
149
+ ''
150
+ end
151
+
141
152
  <<-EOS
142
153
  FROM #{from_image}
154
+ #{vault_repo}
143
155
  RUN curl -L -k -O https://yum.puppetlabs.com/#{release_package} && \
144
156
  rpm -ivh #{release_package}
145
157
  RUN yum install -y #{package_name}-#{server_version}
data/lib/pero/history.rb CHANGED
@@ -28,6 +28,7 @@ module Pero
28
28
  end
29
29
  options.delete("noop")
30
30
  options.delete("tags")
31
+ options.delete("user")
31
32
  @h = {
32
33
  name: name,
33
34
  last_options: options
data/lib/pero/puppet.rb CHANGED
@@ -90,6 +90,10 @@ module Pero
90
90
  Pero::History::Attribute.new(specinfra, @options).save
91
91
  end
92
92
 
93
+ def stop_master
94
+ run_container.kill if docker.alerady_run?
95
+ end
96
+
93
97
  def serve_master
94
98
  container = run_container
95
99
  begin
@@ -97,18 +101,14 @@ module Pero
97
101
  rescue => e
98
102
  Pero.log.error e.inspect
99
103
  raise e
100
- ensure
101
- if @options["one-shot"]
102
- Pero.log.info "stop puppet master container"
103
- container.kill
104
- else
105
- Pero.log.info "puppet master container keep running"
106
- end
107
104
  end
108
105
  end
109
106
 
107
+ def docker
108
+ Pero::Docker.new(@options["server-version"], @options["image-name"], @options["environment"], @options["volumes"])
109
+ end
110
+
110
111
  def run_container
111
- docker = Pero::Docker.new(@options["server-version"], @options["image-name"], @options["environment"], @options["volumes"])
112
112
  docker.alerady_run? || docker.run
113
113
  end
114
114
 
@@ -172,6 +172,7 @@ module Pero
172
172
  ret << " --#{n}" if options[n]
173
173
  end
174
174
  ret << " --tags #{options["tags"].join(",")}" if options["tags"]
175
+ ret << " --environment #{options["environment"]}" if options["environment"]
175
176
  ret
176
177
  end
177
178
 
data/lib/pero/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pero
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - pyama86
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-14 00:00:00.000000000 Z
11
+ date: 2021-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -199,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
201
  requirements: []
202
- rubygems_version: 3.1.2
202
+ rubygems_version: 3.1.4
203
203
  signing_key:
204
204
  specification_version: 4
205
205
  summary: tool for puppet apply from our desktop.