pero 0.1.6 → 0.1.7

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: f970d0b7869fb40c3e86c2946655bd523971901322cf0e290647c2dbe0115a1b
4
- data.tar.gz: f2a7c166a9feff206398f8e7dad567c24860cd7613f06a1f2a81f3ff6c9f55ac
3
+ metadata.gz: 05cbbff3dcd2e37bc56f0b6b84c67c7f920aa7f648fdf523ec6b6ebc062c5f06
4
+ data.tar.gz: 9254adde17ef21f614ab32e84edd3e4a71d40ae534372224bffd4c6587ae8b49
5
5
  SHA512:
6
- metadata.gz: 28ca76f64521f7529d63cb1c7bfd0ab2747ade30d3f0cbe247f6793a45e6c147e677086e896d925bd1fc2401d74bb1265bdd63c88dcd5c801d2c03496834fba0
7
- data.tar.gz: fc59ba398210e11a801cafa509eb81c8db0dcb6e3837b78562a021f0face8741935ecff2b2d5cac021bd5940612524a3ff5a6d18197022bfb2e181a27aba098f
6
+ metadata.gz: 4e264fefbe67c4d6240125f327f8013bc2a6450770e2eef42e9d2eb62386aadca5782b0bd3f23b79f88cc8ba4348ad131e6b995ad9b6bb2779b7d64e42d74f78
7
+ data.tar.gz: b496423a88e94f2625ad18dc1abdaabbd60b9e54ef3a4949043301dabaf531589a3df85511e2cbdeb95a14a96c150708cc5feb48482dccdc9f5c4d34cb7321e7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pero (0.1.5)
4
+ pero (0.1.6)
5
5
  docker-api
6
6
  logger
7
7
  net-ssh
@@ -30,7 +30,11 @@ module Pero
30
30
 
31
31
  desc "versions", "show support version"
32
32
  def versions
33
- Pero::Puppet::Redhat.show_versions
33
+ begin
34
+ Pero::Puppet::Redhat.show_versions
35
+ rescue => e
36
+ Pero.log.error e.inspect
37
+ end
34
38
  end
35
39
 
36
40
  desc "apply", "puppet apply"
@@ -41,12 +45,17 @@ module Pero
41
45
  option :tags, default: nil, type: :array
42
46
  option "one-shot", default: false, type: :boolean, desc: "stop puppet server after run"
43
47
  def apply(name_regexp)
44
- nodes = Pero::History.search(name_regexp)
45
- return unless nodes
46
- Parallel.each(nodes, in_process: options["concurrent"]) do |n|
47
- opt = n["last_options"].merge(options)
48
- puppet = Pero::Puppet.new(opt["host"], opt)
49
- puppet.apply
48
+ begin
49
+ prepare
50
+ nodes = Pero::History.search(name_regexp)
51
+ return unless nodes
52
+ Parallel.each(nodes, in_process: options["concurrent"]) do |n|
53
+ opt = n["last_options"].merge(options)
54
+ puppet = Pero::Puppet.new(opt["host"], opt)
55
+ puppet.apply
56
+ end
57
+ rescue => e
58
+ Pero.log.error e.inspect
50
59
  end
51
60
  end
52
61
 
@@ -55,10 +64,21 @@ module Pero
55
64
  option "agent-version", type: :string
56
65
  option "node-name", aliases: '-N', default: "", type: :string, desc: "json node name(default hostname)"
57
66
  def bootstrap(*hosts)
58
- Parallel.each(hosts, in_process: options["concurrent"]) do |host|
59
- next if host =~ /^-/
60
- puppet = Pero::Puppet.new(host, options)
61
- puppet.install
67
+ begin
68
+ Parallel.each(hosts, in_process: options["concurrent"]) do |host|
69
+ next if host =~ /^-/
70
+ puppet = Pero::Puppet.new(host, options)
71
+ puppet.install
72
+ end
73
+ rescue => e
74
+ Pero.log.error e.inspect
75
+ end
76
+ end
77
+
78
+ no_commands do
79
+ def prepare
80
+ `bundle insatll` if File.exists?("Gemfile")
81
+ `bundle exec librarian-puppet install` if File.exists?("Puppetfile")
62
82
  end
63
83
  end
64
84
  end
@@ -27,12 +27,17 @@ module Pero
27
27
  "pero-#{server_version}-#{Digest::MD5.hexdigest(Dir.pwd)[0..5]}-#{@environment}"
28
28
  end
29
29
 
30
- def alerady_run?
30
+ def find
31
31
  ::Docker::Container.all(:all => true).find do |c|
32
- c.info["Names"].first == "/#{container_name}" && c.info["State"] != "exited"
32
+ c.info["Names"].first == "/#{container_name}"
33
33
  end
34
34
  end
35
35
 
36
+ def alerady_run?
37
+ c = find
38
+ c && c.info["State"] != "exited" && c
39
+ end
40
+
36
41
  def run
37
42
  ::Docker::Container.all(:all => true).each do |c|
38
43
  c.delete(:force => true) if c.info["Names"].first == "/#{container_name}"
@@ -57,12 +62,8 @@ module Pero
57
62
  "AutoRemove" => true,
58
63
  )
59
64
 
60
- container = ::Docker::Container.all(:all => true).find do |c|
61
- c.info["Names"].first == "/#{container_name}"
62
- end
63
-
65
+ container = find
64
66
  raise "can't start container" unless container
65
-
66
67
  begin
67
68
  Retryable.retryable(tries: 20, sleep: 5) do
68
69
  https = Net::HTTP.new('localhost', container.info["Ports"].first["PublicPort"])
@@ -78,10 +79,11 @@ module Pero
78
79
  raise e
79
80
  end
80
81
  rescue
81
- container.kill
82
+ Pero.log.error "can't start container.please check [ docker logs #{container.info["id"]} ]"
83
+ container = find
84
+ container.kill if container && container.info["State"] != "exited"
82
85
  raise "can't start puppet server"
83
86
  end
84
-
85
87
  container
86
88
  end
87
89
 
@@ -126,7 +128,6 @@ CMD bash -c "rm -rf #{conf_dir}/ssl/* && #{create_ca} && #{run_cmd}"
126
128
 
127
129
  def create_ca
128
130
  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
131
  'puppet cert generate `hostname` --dns_alt_names localhost,127.0.0.1'
131
132
  elsif Gem::Version.new("6.0.0") > Gem::Version.new(server_version)
132
133
  'puppet cert generate `hostname` --dns_alt_names localhost,127.0.0.1'
@@ -101,6 +101,8 @@ 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
@@ -1,3 +1,3 @@
1
1
  module Pero
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
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.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - pyama86
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-25 00:00:00.000000000 Z
11
+ date: 2020-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor