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 +4 -4
- data/lib/pero/cli.rb +26 -10
- data/lib/pero/docker.rb +11 -0
- data/lib/pero/puppet.rb +9 -8
- data/lib/pero/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6238513daaacabe0c8bc4135177332a2ba7257e9be3f181608af6a00ab89768d
|
4
|
+
data.tar.gz: 90aa39e93dacd99c74cf3cfc544314cca3b997e29a37eabcdc87e7aaf8cae192
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
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
|
+
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-
|
11
|
+
date: 2021-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|