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 +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
|