pero 0.4.3 → 0.5.0

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: 737697d0a5921b343940b1e0f08084dc7ead61b069a86eacbb95b52f2908e153
4
- data.tar.gz: 8002bc8bfbe3074ab408fa53eff5104ab4891cef95e1ea809c858f22d1a304e9
3
+ metadata.gz: 6238513daaacabe0c8bc4135177332a2ba7257e9be3f181608af6a00ab89768d
4
+ data.tar.gz: 90aa39e93dacd99c74cf3cfc544314cca3b997e29a37eabcdc87e7aaf8cae192
5
5
  SHA512:
6
- metadata.gz: a07dc588f775fcfae4847c23e0e94ac1705a5ce7e3f9f1ab180681d22bf47aa83238cb975d76df471ac966ef511b011a142619a3c52d0f951e2e68e5865bc43d
7
- data.tar.gz: 82281d963905f6ed8c0bc551e14a08ba990619253b4c22b713cb57a653e1e41d83faf4320a4d6e0d5bf5b8b18072376fd55ead84a2eb2b1bee2ee8ece8908dfa
6
+ metadata.gz: 64fadc47b0c14d8b6e598c57cc90e099ede671e11e200017c70dbd59571b4fd010949af9e5b89acf706f382dc7ae9f1e55084f695fe5137f06e3429711212305
7
+ data.tar.gz: 300cc0852f9dd71b5e46c6d370a3eb1bfb7c38b078eb86974ec80e6d406cd8518dfc03f7d79129e7abe4512013e6b18215aaf96e46536dc9aa848cd7ceb2a94f
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_server
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
@@ -139,8 +139,19 @@ EOS
139
139
  ["puppet6-release-el-#{el}.noarch.rpm", "puppetserver"]
140
140
  end
141
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
+
142
152
  <<-EOS
143
153
  FROM #{from_image}
154
+ #{vault_repo}
144
155
  RUN curl -L -k -O https://yum.puppetlabs.com/#{release_package} && \
145
156
  rpm -ivh #{release_package}
146
157
  RUN yum install -y #{package_name}-#{server_version}
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.3"
2
+ VERSION = "0.5.0"
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.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pyama86
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-16 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