pero 0.4.0 → 0.5.1
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 +12 -0
- data/lib/pero/history.rb +1 -0
- data/lib/pero/puppet.rb +9 -8
- data/lib/pero/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fa8e3c0220e5ddfff94bb9944e6f3aa07f409c3579811943524da1de45783bd
|
4
|
+
data.tar.gz: 8ebbe115e81746cfd98b4d4293a8df4301dd598c5c3977a0d2de9129bd4cdd3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
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.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-
|
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.
|
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.
|