pero 0.1.6 → 0.3.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/.gitignore +1 -0
- data/Rakefile +5 -0
- data/lib/pero/cli.rb +51 -12
- data/lib/pero/docker.rb +64 -41
- data/lib/pero/history.rb +1 -0
- data/lib/pero/puppet.rb +32 -10
- data/lib/pero/version.rb +1 -1
- data/misc/Dockerfile +11 -0
- data/pero.gemspec +2 -2
- metadata +12 -12
- data/Gemfile.lock +0 -61
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 17794a1ffa026b662d06b36840a883a434823c791db1839ef1efba8306238a63
|
|
4
|
+
data.tar.gz: af2d15aa1377be5af99b1769c6690adeddba106b51e62eaf20e778566df6a96b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 372e94f0f02059e076ebbbf7976ecc188b9f22a983c6fe0cd788e899f3536c0c99a1728d33df080458b7e21bd7207f5df9d547a373837d19da25da6544d43388
|
|
7
|
+
data.tar.gz: 7a4baefe02de81bc4551777fcc785ad1332bf2ee7ede50fd5c1d682dfcb1f5479a32221ccec31c9bae6085964da96d93dafac11c5fce716cd509b4115f4641e1
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
data/lib/pero/cli.rb
CHANGED
|
@@ -20,6 +20,7 @@ module Pero
|
|
|
20
20
|
option :user, type: :string, aliases: ['-x'], desc: "ssh user"
|
|
21
21
|
option :key, type: :string, aliases: ['-i'], desc: "ssh private key"
|
|
22
22
|
option :port, type: :numeric, aliases: ['-p'], desc: "ssh port"
|
|
23
|
+
option "timeout", default: 10, type: :numeric, desc: "ssh connect timeout"
|
|
23
24
|
option :ssh_config, type: :string, desc: "ssh config path"
|
|
24
25
|
option :environment, type: :string, desc: "puppet environment"
|
|
25
26
|
option :ask_password, type: :boolean, default: false, desc: "ask ssh or sudo password"
|
|
@@ -30,23 +31,47 @@ module Pero
|
|
|
30
31
|
|
|
31
32
|
desc "versions", "show support version"
|
|
32
33
|
def versions
|
|
33
|
-
|
|
34
|
+
begin
|
|
35
|
+
Pero::Puppet::Redhat.show_versions
|
|
36
|
+
rescue => e
|
|
37
|
+
Pero.log.error e.inspect
|
|
38
|
+
end
|
|
34
39
|
end
|
|
35
40
|
|
|
36
41
|
desc "apply", "puppet apply"
|
|
37
42
|
shared_options
|
|
38
|
-
option "server-version", type: :string
|
|
43
|
+
option "server-version", type: :string
|
|
44
|
+
option "image-name", type: :string
|
|
39
45
|
option :noop, aliases: '-n', default: false, type: :boolean
|
|
46
|
+
option :test, aliases: '-t', default: false, type: :boolean
|
|
40
47
|
option :verbose, aliases: '-v', default: true, type: :boolean
|
|
41
48
|
option :tags, default: nil, type: :array
|
|
49
|
+
option :volumes, default: nil, type: :array
|
|
42
50
|
option "one-shot", default: false, type: :boolean, desc: "stop puppet server after run"
|
|
43
51
|
def apply(name_regexp)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
|
|
53
|
+
if !options["image-name"] && !options["server-version"]
|
|
54
|
+
Pero.log.error "image-name or server-version are required"
|
|
55
|
+
return
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
begin
|
|
59
|
+
prepare
|
|
60
|
+
nodes = Pero::History.search(name_regexp)
|
|
61
|
+
return unless nodes
|
|
62
|
+
Parallel.each(nodes, in_process: options["concurrent"]) do |n|
|
|
63
|
+
opt = n["last_options"].merge(options)
|
|
64
|
+
opt["environment"] = "production" if opt["environment"].empty?
|
|
65
|
+
if options["image-name"]
|
|
66
|
+
opt.delete("server-version")
|
|
67
|
+
else
|
|
68
|
+
opt.delete("image-name")
|
|
69
|
+
end
|
|
70
|
+
puppet = Pero::Puppet.new(opt["host"], opt)
|
|
71
|
+
puppet.apply
|
|
72
|
+
end
|
|
73
|
+
rescue => e
|
|
74
|
+
Pero.log.error e.inspect
|
|
50
75
|
end
|
|
51
76
|
end
|
|
52
77
|
|
|
@@ -55,10 +80,24 @@ module Pero
|
|
|
55
80
|
option "agent-version", type: :string
|
|
56
81
|
option "node-name", aliases: '-N', default: "", type: :string, desc: "json node name(default hostname)"
|
|
57
82
|
def bootstrap(*hosts)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
83
|
+
begin
|
|
84
|
+
options["environment"] = "production" if options["environment"].empty?
|
|
85
|
+
Parallel.each(hosts, in_process: options["concurrent"]) do |host|
|
|
86
|
+
raise "unknown option #{host}" if host =~ /^-/
|
|
87
|
+
puppet = Pero::Puppet.new(host, options)
|
|
88
|
+
|
|
89
|
+
Pero.log.info "bootstrap pero #{host}"
|
|
90
|
+
puppet.install
|
|
91
|
+
end
|
|
92
|
+
rescue => e
|
|
93
|
+
Pero.log.error e.inspect
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
no_commands do
|
|
98
|
+
def prepare
|
|
99
|
+
`bundle install` if File.exists?("Gemfile")
|
|
100
|
+
`bundle exec librarian-puppet install` if File.exists?("Puppetfile")
|
|
62
101
|
end
|
|
63
102
|
end
|
|
64
103
|
end
|
data/lib/pero/docker.rb
CHANGED
|
@@ -4,16 +4,22 @@ require "retryable"
|
|
|
4
4
|
require 'net/https'
|
|
5
5
|
module Pero
|
|
6
6
|
class Docker
|
|
7
|
-
attr_reader :server_version
|
|
8
|
-
def initialize(version, environment)
|
|
7
|
+
attr_reader :server_version, :image_name, :volumes
|
|
8
|
+
def initialize(version, image_name, environment, volumes)
|
|
9
9
|
@server_version = version
|
|
10
|
+
@image_name = image_name
|
|
10
11
|
@environment = environment
|
|
12
|
+
@volumes = volumes
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def build
|
|
14
16
|
Pero.log.info "start build container"
|
|
15
17
|
begin
|
|
16
|
-
image =
|
|
18
|
+
image = if image_name
|
|
19
|
+
::Docker::Image.create('fromImage' => image_name)
|
|
20
|
+
else
|
|
21
|
+
::Docker::Image.build(docker_file)
|
|
22
|
+
end
|
|
17
23
|
rescue => e
|
|
18
24
|
Pero.log.debug docker_file
|
|
19
25
|
Pero.log.error "failed build container #{e.inspect}"
|
|
@@ -24,64 +30,70 @@ module Pero
|
|
|
24
30
|
end
|
|
25
31
|
|
|
26
32
|
def container_name
|
|
27
|
-
"pero-#{
|
|
33
|
+
"pero-#{Digest::MD5.hexdigest(Dir.pwd)[0..5]}-#{@environment}"
|
|
28
34
|
end
|
|
29
35
|
|
|
30
|
-
def
|
|
36
|
+
def find
|
|
31
37
|
::Docker::Container.all(:all => true).find do |c|
|
|
32
|
-
c.info["Names"].first == "/#{container_name}"
|
|
38
|
+
c.info["Names"].first == "/#{container_name}"
|
|
33
39
|
end
|
|
34
40
|
end
|
|
35
41
|
|
|
42
|
+
def alerady_run?
|
|
43
|
+
c = find
|
|
44
|
+
c && c.info["State"] == "running" && c
|
|
45
|
+
end
|
|
46
|
+
|
|
36
47
|
def run
|
|
37
48
|
::Docker::Container.all(:all => true).each do |c|
|
|
38
49
|
c.delete(:force => true) if c.info["Names"].first == "/#{container_name}"
|
|
39
50
|
end
|
|
40
51
|
|
|
52
|
+
vols = volumes || []
|
|
53
|
+
vols << "#{Dir.pwd}:/etc/puppetlabs/code/environments/#{@environment}"
|
|
54
|
+
vols << "#{Dir.pwd}/keys:/etc/puppetlabs/puppet/eyaml/"
|
|
55
|
+
|
|
41
56
|
container = ::Docker::Container.create({
|
|
42
57
|
'name' => container_name,
|
|
43
58
|
'Hostname' => 'puppet',
|
|
44
59
|
'Image' => build.id,
|
|
45
60
|
'ExposedPorts' => { '8140/tcp' => {} },
|
|
61
|
+
'HostConfig' => {
|
|
62
|
+
'Binds' => vols,
|
|
63
|
+
'PortBindings' => {
|
|
64
|
+
'8140/tcp' => [{ 'HostPort' => "0" }],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
'Cmd' => ["bash", "-c", "rm -rf #{conf_dir}/ssl/* && #{create_ca} && #{run_cmd}"]
|
|
46
68
|
})
|
|
47
69
|
|
|
48
70
|
Pero.log.info "start puppet master container"
|
|
49
|
-
container.start
|
|
50
|
-
'Binds' => [
|
|
51
|
-
"#{Dir.pwd}:/etc/puppetlabs/code/environments/#{@environment}",
|
|
52
|
-
"#{Dir.pwd}/keys:/etc/puppetlabs/puppet/eyaml/",
|
|
53
|
-
],
|
|
54
|
-
'PortBindings' => {
|
|
55
|
-
'8140/tcp' => [{ 'HostPort' => "0" }],
|
|
56
|
-
},
|
|
57
|
-
"AutoRemove" => true,
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
container = ::Docker::Container.all(:all => true).find do |c|
|
|
61
|
-
c.info["Names"].first == "/#{container_name}"
|
|
62
|
-
end
|
|
71
|
+
container.start
|
|
63
72
|
|
|
73
|
+
container = find
|
|
64
74
|
raise "can't start container" unless container
|
|
65
|
-
|
|
66
75
|
begin
|
|
67
76
|
Retryable.retryable(tries: 20, sleep: 5) do
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
begin
|
|
78
|
+
https = Net::HTTP.new('localhost', container.info["Ports"].first["PublicPort"])
|
|
79
|
+
https.use_ssl = true
|
|
80
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
|
81
|
+
Pero.log.debug "start server health check"
|
|
82
|
+
https.start {
|
|
83
|
+
response = https.get('/')
|
|
84
|
+
Pero.log.debug "puppet http response #{response}"
|
|
85
|
+
}
|
|
86
|
+
rescue => e
|
|
87
|
+
Pero.log.debug e.inspect
|
|
88
|
+
raise e
|
|
89
|
+
end
|
|
79
90
|
end
|
|
80
91
|
rescue
|
|
81
|
-
container.
|
|
92
|
+
Pero.log.error "can't start container.please check [ docker logs #{container.info["id"]} ]"
|
|
93
|
+
container = find
|
|
94
|
+
container.kill if container && container.info["State"] != "exited"
|
|
82
95
|
raise "can't start puppet server"
|
|
83
96
|
end
|
|
84
|
-
|
|
85
97
|
container
|
|
86
98
|
end
|
|
87
99
|
|
|
@@ -102,15 +114,28 @@ EOS
|
|
|
102
114
|
|
|
103
115
|
|
|
104
116
|
end
|
|
117
|
+
|
|
118
|
+
def conf_dir
|
|
119
|
+
if Gem::Version.new("4.0.0") > Gem::Version.new(server_version)
|
|
120
|
+
"/etc/puppet"
|
|
121
|
+
elsif Gem::Version.new("5.0.0") > Gem::Version.new(server_version) && Gem::Version.new("4.0.0") <= Gem::Version.new(server_version)
|
|
122
|
+
"/etc/puppetlabs/puppet/"
|
|
123
|
+
elsif Gem::Version.new("6.0.0") > Gem::Version.new(server_version)&& Gem::Version.new("5.0.0") <= Gem::Version.new(server_version)
|
|
124
|
+
"/etc/puppetlabs/puppet/"
|
|
125
|
+
else
|
|
126
|
+
"/etc/puppetlabs/puppet/"
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
105
130
|
def docker_file
|
|
106
|
-
release_package,package_name
|
|
107
|
-
["puppetlabs-release-el-#{el}.noarch.rpm", "puppet-server"
|
|
131
|
+
release_package,package_name = if Gem::Version.new("4.0.0") > Gem::Version.new(server_version)
|
|
132
|
+
["puppetlabs-release-el-#{el}.noarch.rpm", "puppet-server"]
|
|
108
133
|
elsif Gem::Version.new("5.0.0") > Gem::Version.new(server_version) && Gem::Version.new("4.0.0") <= Gem::Version.new(server_version)
|
|
109
|
-
["puppetlabs-release-pc1-el-#{el}.noarch.rpm", "puppetserver"
|
|
134
|
+
["puppetlabs-release-pc1-el-#{el}.noarch.rpm", "puppetserver"]
|
|
110
135
|
elsif Gem::Version.new("6.0.0") > Gem::Version.new(server_version)&& Gem::Version.new("5.0.0") <= Gem::Version.new(server_version)
|
|
111
|
-
["puppet5-release-el-#{el}.noarch.rpm", "puppetserver"
|
|
136
|
+
["puppet5-release-el-#{el}.noarch.rpm", "puppetserver"]
|
|
112
137
|
else
|
|
113
|
-
["puppet6-release-el-#{el}.noarch.rpm", "puppetserver"
|
|
138
|
+
["puppet6-release-el-#{el}.noarch.rpm", "puppetserver"]
|
|
114
139
|
end
|
|
115
140
|
|
|
116
141
|
<<-EOS
|
|
@@ -120,13 +145,11 @@ rpm -ivh #{release_package}
|
|
|
120
145
|
RUN yum install -y #{package_name}-#{server_version}
|
|
121
146
|
ENV PATH $PATH:/opt/puppetlabs/bin
|
|
122
147
|
RUN echo -e "#{puppet_config.split(/\n/).join("\\n")}" > #{conf_dir}/puppet.conf
|
|
123
|
-
CMD bash -c "rm -rf #{conf_dir}/ssl/* && #{create_ca} && #{run_cmd}"
|
|
124
148
|
EOS
|
|
125
149
|
end
|
|
126
150
|
|
|
127
151
|
def create_ca
|
|
128
152
|
release_package,package_name, conf_dir = if Gem::Version.new("5.0.0") > Gem::Version.new(server_version)
|
|
129
|
-
#'(puppet cert generate `hostname` --dns_alt_names localhost,127.0.0.1 || puppet cert --allow-dns-alt-names sign `hostname`)'
|
|
130
153
|
'puppet cert generate `hostname` --dns_alt_names localhost,127.0.0.1'
|
|
131
154
|
elsif Gem::Version.new("6.0.0") > Gem::Version.new(server_version)
|
|
132
155
|
'puppet cert generate `hostname` --dns_alt_names localhost,127.0.0.1'
|
data/lib/pero/history.rb
CHANGED
data/lib/pero/puppet.rb
CHANGED
|
@@ -53,6 +53,7 @@ module Pero
|
|
|
53
53
|
opts[:password] = @options["password"] if @options["password"]
|
|
54
54
|
opts[:keys] = [@options["key"]] if @options["key"]
|
|
55
55
|
opts[:port] = @options["port"] if @options["port"]
|
|
56
|
+
opts[:timeout] = @options["timeout"] if @options["timeout"]
|
|
56
57
|
|
|
57
58
|
if @options["vagrant"]
|
|
58
59
|
config = Tempfile.new('', Dir.tmpdir)
|
|
@@ -78,7 +79,6 @@ module Pero
|
|
|
78
79
|
end
|
|
79
80
|
|
|
80
81
|
def install
|
|
81
|
-
Pero.log.info "bootstrap pero"
|
|
82
82
|
osi = specinfra.os_info
|
|
83
83
|
os = case osi[:family]
|
|
84
84
|
when "redhat"
|
|
@@ -101,12 +101,14 @@ module Pero
|
|
|
101
101
|
if @options["one-shot"]
|
|
102
102
|
Pero.log.info "stop puppet master container"
|
|
103
103
|
container.kill
|
|
104
|
+
else
|
|
105
|
+
Pero.log.info "puppet master container keep running"
|
|
104
106
|
end
|
|
105
107
|
end
|
|
106
108
|
end
|
|
107
109
|
|
|
108
110
|
def run_container
|
|
109
|
-
docker = Pero::Docker.new(@options["server-version"], @options["environment"])
|
|
111
|
+
docker = Pero::Docker.new(@options["server-version"], @options["image-name"], @options["environment"], @options["volumes"])
|
|
110
112
|
docker.alerady_run? || docker.run
|
|
111
113
|
end
|
|
112
114
|
|
|
@@ -121,11 +123,13 @@ module Pero
|
|
|
121
123
|
mkdir -p `puppet config print ssldir` && mount --bind /tmp/puppet/#{tmpdir} `puppet config print ssldir` && \
|
|
122
124
|
#{puppet_cmd}'"
|
|
123
125
|
Pero.log.debug "run cmd:#{cmd}"
|
|
124
|
-
ssh
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
ssh_exec(ssh, host, cmd)
|
|
127
|
+
|
|
128
|
+
if @options["one-shot"]
|
|
129
|
+
cmd = "/bin/rm -rf /tmp/puppet/#{tmpdir}"
|
|
130
|
+
ssh_exec(ssh, host, cmd)
|
|
131
|
+
end
|
|
132
|
+
|
|
129
133
|
ssh.loop {true} if ENV['PERO_DEBUG']
|
|
130
134
|
end
|
|
131
135
|
rescue => e
|
|
@@ -136,17 +140,35 @@ module Pero
|
|
|
136
140
|
Pero::History::Attribute.new(specinfra, @options).save
|
|
137
141
|
end
|
|
138
142
|
|
|
143
|
+
def ssh_exec(ssh, host, cmd)
|
|
144
|
+
ssh.open_channel do |ch|
|
|
145
|
+
ch.request_pty
|
|
146
|
+
ch.on_data do |ch,data|
|
|
147
|
+
Pero.log.info "#{host}:#{data.chomp}"
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
ch.on_extended_data do |c,type,data|
|
|
151
|
+
Pero.log.error "#{host}:#{data.chomp}"
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
ch.exec specinfra.build_command(cmd) do |ch, success|
|
|
155
|
+
raise "could not execute #{cmd}" unless success
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
ssh.loop
|
|
159
|
+
end
|
|
160
|
+
|
|
139
161
|
def puppet_cmd
|
|
140
162
|
if Gem::Version.new("5.0.0") > Gem::Version.new(@options["agent-version"])
|
|
141
|
-
"puppet agent --no-daemonize --onetime #{parse_puppet_option(@options)} --server localhost"
|
|
163
|
+
"puppet agent --no-daemonize --onetime #{parse_puppet_option(@options)} --ca_port 8140 --ca_server localhost --masterport 8140 --server localhost"
|
|
142
164
|
else
|
|
143
|
-
"/opt/puppetlabs/bin/puppet agent --no-daemonize --onetime #{parse_puppet_option(@options)} --server localhost"
|
|
165
|
+
"/opt/puppetlabs/bin/puppet agent --no-daemonize --onetime #{parse_puppet_option(@options)} --ca_server localhost --masterport 8140 --server localhost"
|
|
144
166
|
end
|
|
145
167
|
end
|
|
146
168
|
|
|
147
169
|
def parse_puppet_option(options)
|
|
148
170
|
ret = ""
|
|
149
|
-
%w(noop verbose).each do |n|
|
|
171
|
+
%w(noop verbose test).each do |n|
|
|
150
172
|
ret << " --#{n}" if options[n]
|
|
151
173
|
end
|
|
152
174
|
ret << " --tags #{options["tags"].join(",")}" if options["tags"]
|
data/lib/pero/version.rb
CHANGED
data/misc/Dockerfile
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
FROM centos:6
|
|
2
|
+
RUN yum -y install curl epel-release
|
|
3
|
+
RUN rpm -ivh https://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-12.noarch.rpm
|
|
4
|
+
RUN curl -O http://software.exogeni.net/repo/puppet/6/products/x86_64/puppet-server-3.0.1-1.el6.noarch.rpm && \
|
|
5
|
+
curl -O http://software.exogeni.net/repo/puppet/6/products/x86_64/puppet-3.0.1-1.el6.noarch.rpm && \
|
|
6
|
+
yum -y install puppet-3.0.1-1.el6.noarch.rpm puppet-server-3.0.1-1.el6.noarch.rpm
|
|
7
|
+
RUN mkdir -p /etc/puppetlabs/code/environments/production
|
|
8
|
+
|
|
9
|
+
RUN echo -e "[master]\nvardir= /var/puppet\nmanifestdir = /var/puppet/data/manifests\n templatedir = /var/puppet/data/templates\n modulepath = /var/puppet/data/modules:/var/puppet/data/roles:/var/puppet/data/vendor/modules\nlogdir = /var/log/puppet\n rundir = /var/run/puppet\n ssldir = /var/puppet/ssl\n" > /etc/puppet/puppet.conf
|
|
10
|
+
|
|
11
|
+
CMD bash -c "rm -rf /etc/puppet/ssl/* && puppet cert generate `hostname` --dns_alt_names localhost,127.0.0.1 && echo '*' > /etc/puppet/autosign.conf && puppet master --no-daemonize --verbose"
|
data/pero.gemspec
CHANGED
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.add_dependency 'retryable'
|
|
31
31
|
spec.add_dependency 'specinfra'
|
|
32
32
|
spec.add_dependency 'parallel'
|
|
33
|
-
spec.add_development_dependency "bundler"
|
|
34
|
-
spec.add_development_dependency "rake"
|
|
33
|
+
spec.add_development_dependency "bundler"
|
|
34
|
+
spec.add_development_dependency "rake"
|
|
35
35
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
36
36
|
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
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- pyama86
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-10-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -112,30 +112,30 @@ dependencies:
|
|
|
112
112
|
name: bundler
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
|
-
- - "
|
|
115
|
+
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
117
|
+
version: '0'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
|
-
- - "
|
|
122
|
+
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
124
|
+
version: '0'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: rake
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
|
-
- - "
|
|
129
|
+
- - ">="
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
131
|
+
version: '0'
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
|
-
- - "
|
|
136
|
+
- - ">="
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
138
|
+
version: '0'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: rspec
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -160,7 +160,6 @@ extra_rdoc_files: []
|
|
|
160
160
|
files:
|
|
161
161
|
- ".gitignore"
|
|
162
162
|
- Gemfile
|
|
163
|
-
- Gemfile.lock
|
|
164
163
|
- LICENSE.txt
|
|
165
164
|
- README.md
|
|
166
165
|
- Rakefile
|
|
@@ -179,6 +178,7 @@ files:
|
|
|
179
178
|
- lib/pero/puppet/redhat.rb
|
|
180
179
|
- lib/pero/ssh_executable.rb
|
|
181
180
|
- lib/pero/version.rb
|
|
181
|
+
- misc/Dockerfile
|
|
182
182
|
- pero.gemspec
|
|
183
183
|
homepage: https://github.com/pyama86/pero
|
|
184
184
|
licenses:
|
|
@@ -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.
|
|
202
|
+
rubygems_version: 3.1.2
|
|
203
203
|
signing_key:
|
|
204
204
|
specification_version: 4
|
|
205
205
|
summary: tool for puppet apply from our desktop.
|
data/Gemfile.lock
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
pero (0.1.5)
|
|
5
|
-
docker-api
|
|
6
|
-
logger
|
|
7
|
-
net-ssh
|
|
8
|
-
parallel
|
|
9
|
-
retryable
|
|
10
|
-
specinfra
|
|
11
|
-
thor
|
|
12
|
-
|
|
13
|
-
GEM
|
|
14
|
-
remote: https://rubygems.org/
|
|
15
|
-
specs:
|
|
16
|
-
diff-lcs (1.4.4)
|
|
17
|
-
docker-api (1.34.2)
|
|
18
|
-
excon (>= 0.47.0)
|
|
19
|
-
multi_json
|
|
20
|
-
excon (0.76.0)
|
|
21
|
-
logger (1.4.2)
|
|
22
|
-
multi_json (1.15.0)
|
|
23
|
-
net-scp (3.0.0)
|
|
24
|
-
net-ssh (>= 2.6.5, < 7.0.0)
|
|
25
|
-
net-ssh (6.1.0)
|
|
26
|
-
net-telnet (0.1.1)
|
|
27
|
-
parallel (1.19.2)
|
|
28
|
-
rake (10.5.0)
|
|
29
|
-
retryable (3.0.5)
|
|
30
|
-
rspec (3.9.0)
|
|
31
|
-
rspec-core (~> 3.9.0)
|
|
32
|
-
rspec-expectations (~> 3.9.0)
|
|
33
|
-
rspec-mocks (~> 3.9.0)
|
|
34
|
-
rspec-core (3.9.2)
|
|
35
|
-
rspec-support (~> 3.9.3)
|
|
36
|
-
rspec-expectations (3.9.2)
|
|
37
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
38
|
-
rspec-support (~> 3.9.0)
|
|
39
|
-
rspec-mocks (3.9.1)
|
|
40
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
41
|
-
rspec-support (~> 3.9.0)
|
|
42
|
-
rspec-support (3.9.3)
|
|
43
|
-
sfl (2.3)
|
|
44
|
-
specinfra (2.82.19)
|
|
45
|
-
net-scp
|
|
46
|
-
net-ssh (>= 2.7)
|
|
47
|
-
net-telnet (= 0.1.1)
|
|
48
|
-
sfl
|
|
49
|
-
thor (1.0.1)
|
|
50
|
-
|
|
51
|
-
PLATFORMS
|
|
52
|
-
ruby
|
|
53
|
-
|
|
54
|
-
DEPENDENCIES
|
|
55
|
-
bundler (~> 1.17)
|
|
56
|
-
pero!
|
|
57
|
-
rake (~> 10.0)
|
|
58
|
-
rspec (~> 3.0)
|
|
59
|
-
|
|
60
|
-
BUNDLED WITH
|
|
61
|
-
1.17.3
|