pero 0.5.7 → 0.5.10
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/.github/dependabot.yml +11 -0
- data/lib/pero/cli.rb +52 -59
- data/lib/pero/docker.rb +3 -1
- data/lib/pero/puppet.rb +1 -4
- data/lib/pero/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 404024b412a97d7b4b6b604eded9e626b5b49c8b576665c1179622b1ffb97fb5
|
4
|
+
data.tar.gz: 5ea5b20e499ae2e0bc713e8851c7e3a389398412443d507fee52c9775cc4b4ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 882bb7cde6f980696c20bd182340d8818a80fc0eac3288fdef8ebeb1a3a2cc9a8429881918a40b8806aec04fed788b36cea1686b6753828f8cc897bb06c9ec9b
|
7
|
+
data.tar.gz: e7bf15713b9679f3df5da7055e97a34e6fb78e277b0980767698a4246e7605a6d4292262c8cb9f4424698eec8eacaf6cdf87344353def6186797101bcd8d3b22
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
3
|
+
# Please see the documentation for all configuration options:
|
4
|
+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
5
|
+
|
6
|
+
version: 2
|
7
|
+
updates:
|
8
|
+
- package-ecosystem: "bundler" # See documentation for possible values
|
9
|
+
directory: "/" # Location of package manifests
|
10
|
+
schedule:
|
11
|
+
interval: "weekly"
|
data/lib/pero/cli.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require 'pero'
|
2
|
+
require 'thor'
|
3
|
+
require 'parallel'
|
4
4
|
|
5
5
|
module Pero
|
6
6
|
class CLI < Thor
|
@@ -17,41 +17,38 @@ module Pero
|
|
17
17
|
|
18
18
|
def self.shared_options
|
19
19
|
option :log_level, type: :string, aliases: ['-l'], default: 'info'
|
20
|
-
option :user, type: :string, aliases: ['-x'], desc:
|
21
|
-
option :key, type: :string, aliases: ['-i'], desc:
|
22
|
-
option :port, type: :numeric, aliases: ['-p'], desc:
|
23
|
-
option
|
24
|
-
option :ssh_config, type: :string, desc:
|
25
|
-
option :environment, type: :string, desc:
|
26
|
-
option :ask_password, type: :boolean, default: false, desc:
|
27
|
-
option :vagrant, type: :boolean, default: false, desc:
|
28
|
-
option :sudo, type: :boolean, default: true, desc:
|
29
|
-
option
|
20
|
+
option :user, type: :string, aliases: ['-x'], desc: 'ssh user'
|
21
|
+
option :key, type: :string, aliases: ['-i'], desc: 'ssh private key'
|
22
|
+
option :port, type: :numeric, aliases: ['-p'], desc: 'ssh port'
|
23
|
+
option 'timeout', default: 10, type: :numeric, desc: 'ssh connect timeout'
|
24
|
+
option :ssh_config, type: :string, desc: 'ssh config path'
|
25
|
+
option :environment, type: :string, desc: 'puppet environment'
|
26
|
+
option :ask_password, type: :boolean, default: false, desc: 'ask ssh or sudo password'
|
27
|
+
option :vagrant, type: :boolean, default: false, desc: 'use vagrarant'
|
28
|
+
option :sudo, type: :boolean, default: true, desc: 'use sudo'
|
29
|
+
option 'concurrent', aliases: '-C', default: 3, type: :numeric, desc: 'running concurrent'
|
30
30
|
end
|
31
31
|
|
32
|
-
desc
|
32
|
+
desc 'versions', 'show support version'
|
33
33
|
def versions
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
Pero.log.error e.inspect
|
38
|
-
end
|
34
|
+
Pero::Puppet::Redhat.show_versions
|
35
|
+
rescue StandardError => e
|
36
|
+
Pero.log.error e.inspect
|
39
37
|
end
|
40
38
|
|
41
|
-
desc
|
39
|
+
desc 'apply', 'puppet apply'
|
42
40
|
shared_options
|
43
|
-
option
|
44
|
-
option
|
41
|
+
option 'server-version', type: :string
|
42
|
+
option 'image-name', type: :string
|
45
43
|
option :noop, aliases: '-n', default: false, type: :boolean
|
46
44
|
option :test, aliases: '-t', default: false, type: :boolean
|
47
45
|
option :verbose, aliases: '-v', default: true, type: :boolean
|
48
46
|
option :tags, default: nil, type: :array
|
49
47
|
option :volumes, default: nil, type: :array
|
50
|
-
option
|
48
|
+
option 'one-shot', default: false, type: :boolean, desc: 'stop puppet server after run'
|
51
49
|
def apply(name_regexp)
|
52
|
-
|
53
|
-
|
54
|
-
Pero.log.error "image-name or server-version are required"
|
50
|
+
if !options['image-name'] && !options['server-version']
|
51
|
+
Pero.log.error 'image-name or server-version are required'
|
55
52
|
return
|
56
53
|
end
|
57
54
|
|
@@ -64,64 +61,60 @@ module Pero
|
|
64
61
|
m = Mutex.new
|
65
62
|
|
66
63
|
begin
|
67
|
-
Parallel.each(nodes, in_threads: options[
|
64
|
+
Parallel.each(nodes, in_threads: options['concurrent']) do |n|
|
68
65
|
opt = merge_options(n, options)
|
69
|
-
puppet = Pero::Puppet.new(opt[
|
66
|
+
puppet = Pero::Puppet.new(opt['host'], opt, m)
|
70
67
|
puppet.apply
|
71
68
|
end
|
72
|
-
rescue => e
|
69
|
+
rescue StandardError => e
|
73
70
|
Pero.log.error e.backtrace.join("\n")
|
74
71
|
Pero.log.error e.inspect
|
75
|
-
|
76
72
|
ensure
|
77
|
-
if options[
|
78
|
-
Pero.log.info
|
79
|
-
|
80
|
-
|
81
|
-
Pero::Puppet.new(opt["host"], opt, m).stop_master
|
82
|
-
end
|
73
|
+
if options['one-shot']
|
74
|
+
Pero.log.info 'stop puppet master container'
|
75
|
+
opt = merge_options(nodes.first, options)
|
76
|
+
Pero::Puppet.new(opt['host'], opt, m).stop_master
|
83
77
|
else
|
84
|
-
Pero.log.info
|
78
|
+
Pero.log.info 'puppet master container keep running'
|
85
79
|
end
|
86
80
|
end
|
87
81
|
end
|
88
82
|
|
89
|
-
desc
|
83
|
+
desc 'bootstrap', 'bootstrap pero'
|
90
84
|
shared_options
|
91
|
-
option
|
92
|
-
option
|
85
|
+
option 'agent-version', type: :string
|
86
|
+
option 'node-name', aliases: '-N', default: '', type: :string, desc: 'json node name(default hostname)'
|
93
87
|
def bootstrap(*hosts)
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
raise "unknown option #{host}" if host =~ /^-/
|
99
|
-
puppet = Pero::Puppet.new(host, options, m)
|
88
|
+
options['environment'] = 'production' if options['environment'].nil? || options['environment'].empty?
|
89
|
+
m = Mutex.new
|
90
|
+
Parallel.each(hosts, in_threads: options['concurrent']) do |host|
|
91
|
+
raise "unknown option #{host}" if host =~ /^-/
|
100
92
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
Pero.log.error e.backtrace.join("\n")
|
106
|
-
Pero.log.error e.inspect
|
93
|
+
puppet = Pero::Puppet.new(host, options, m)
|
94
|
+
|
95
|
+
Pero.log.info "bootstrap pero #{host}"
|
96
|
+
puppet.install
|
107
97
|
end
|
98
|
+
rescue StandardError => e
|
99
|
+
Pero.log.error e.backtrace.join("\n")
|
100
|
+
Pero.log.error e.inspect
|
108
101
|
end
|
109
102
|
|
110
103
|
no_commands do
|
111
104
|
def merge_options(node, options)
|
112
|
-
opt = node[
|
113
|
-
opt[
|
114
|
-
if options[
|
115
|
-
opt.delete(
|
105
|
+
opt = node['last_options'].merge(options)
|
106
|
+
opt['environment'] = 'production' if opt['environment'].nil? || opt['environment'].empty?
|
107
|
+
if options['image-name']
|
108
|
+
opt.delete('server-version')
|
116
109
|
else
|
117
|
-
opt.delete(
|
110
|
+
opt.delete('image-name')
|
118
111
|
end
|
119
112
|
opt
|
120
113
|
end
|
121
114
|
|
122
115
|
def prepare
|
123
|
-
`bundle install` if File.exist?(
|
124
|
-
`bundle exec librarian-puppet install` if File.exist?(
|
116
|
+
`bundle install` if File.exist?('Gemfile')
|
117
|
+
`bundle exec librarian-puppet install` if File.exist?('Puppetfile')
|
125
118
|
end
|
126
119
|
end
|
127
120
|
end
|
data/lib/pero/docker.rb
CHANGED
@@ -141,8 +141,10 @@ module Pero
|
|
141
141
|
["puppet5-release-el-#{el}.noarch.rpm", 'puppetserver']
|
142
142
|
elsif Gem::Version.new('7.0.0') > Gem::Version.new(server_version) && Gem::Version.new('6.0.0') <= Gem::Version.new(server_version)
|
143
143
|
["puppet6-release-el-#{el}.noarch.rpm", 'puppetserver']
|
144
|
-
|
144
|
+
elsif Gem::Version.new('8.0.0') > Gem::Version.new(server_version) && Gem::Version.new('7.0.0') <= Gem::Version.new(server_version)
|
145
145
|
["puppet7-release-el-#{el}.noarch.rpm", 'puppetserver']
|
146
|
+
else
|
147
|
+
["puppet8-release-el-#{el}.noarch.rpm", 'puppetserver']
|
146
148
|
end
|
147
149
|
|
148
150
|
vault_repo = if el == 6
|
data/lib/pero/puppet.rb
CHANGED
@@ -91,10 +91,7 @@ module Pero
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def stop_master
|
94
|
-
@mutex.lock
|
95
94
|
run_container.kill if docker.alerady_run?
|
96
|
-
ensure
|
97
|
-
@mutex.unlock if @mutex.owned?
|
98
95
|
end
|
99
96
|
|
100
97
|
def serve_master
|
@@ -115,7 +112,7 @@ module Pero
|
|
115
112
|
@mutex.lock
|
116
113
|
docker.alerady_run? || docker.run
|
117
114
|
ensure
|
118
|
-
@mutex.unlock
|
115
|
+
@mutex.unlock
|
119
116
|
end
|
120
117
|
|
121
118
|
def apply
|
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.5.
|
4
|
+
version: 0.5.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pyama86
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -158,6 +158,7 @@ executables:
|
|
158
158
|
extensions: []
|
159
159
|
extra_rdoc_files: []
|
160
160
|
files:
|
161
|
+
- ".github/dependabot.yml"
|
161
162
|
- ".gitignore"
|
162
163
|
- Gemfile
|
163
164
|
- LICENSE.txt
|
@@ -199,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
200
|
- !ruby/object:Gem::Version
|
200
201
|
version: '0'
|
201
202
|
requirements: []
|
202
|
-
rubygems_version: 3.
|
203
|
+
rubygems_version: 3.5.3
|
203
204
|
signing_key:
|
204
205
|
specification_version: 4
|
205
206
|
summary: tool for puppet apply from our desktop.
|