pero 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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