pero 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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