knife-zero 2.2.0 → 2.4.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/CHANGELOG.md +25 -1
- data/README.md +2 -2
- data/knife-zero.gemspec +1 -0
- data/lib/chef/knife/zero_base.rb +1 -0
- data/lib/knife-zero/bootstrap_ssh.rb +37 -1
- data/lib/knife-zero/core/bootstrap_context.rb +11 -7
- data/lib/knife-zero/version.rb +1 -1
- metadata +20 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec45a99b4e00747009e914be5be5e53ca9ee490bbb4213ae97a9da1a585f7e51
|
4
|
+
data.tar.gz: c3750a145a402bfe5eaa96bb5fc1d0fdbcddfa0fc087cfcf25f67d46815739fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12c381d16c23b23b83e7f3891d1d54e43205bdcbf034e675da43466a085999227c555b8bb76230363d3bf10490766046fd9523093faf0520fa080586447a1ba8
|
7
|
+
data.tar.gz: 6bd256d008478efec34fd27cb353fcd7712ffd2875d52875f1ef0b2944243aac31c8b7b490eb6a1cca702f02c4f2f5dc2119f4327b9dde324ddfe83ff654248d
|
data/CHANGELOG.md
CHANGED
@@ -4,9 +4,33 @@
|
|
4
4
|
|
5
5
|
none.
|
6
6
|
|
7
|
+
## v2.4.0
|
8
|
+
|
9
|
+
- follow core changes.
|
10
|
+
- ssh_command changed at chef-17.3.27
|
11
|
+
|
12
|
+
## v2.3.2
|
13
|
+
|
14
|
+
- follow core changes, they uses autoload.
|
15
|
+
- .to_yaml not work in diagnose.
|
16
|
+
|
17
|
+
## v2.3.1
|
18
|
+
|
19
|
+
- bugfix: alter_project not works due to typo. HT: [@aspyatkin](https://github.com/aspyatkin)
|
20
|
+
- [https://github.com/higanworks/knife-zero/issues/133#issuecomment-674530243](https://github.com/higanworks/knife-zero/issues/133#issuecomment-674530243)
|
21
|
+
|
22
|
+
## v2.3.0
|
23
|
+
|
24
|
+
- use `allowd_` instead.
|
25
|
+
- ref: [Renamed Client Configuration Options - Chef Infra Client 16.3 released!](https://discourse.chef.io/t/chef-infra-client-16-3-released/17449)
|
26
|
+
|
27
|
+
## v2.2.1
|
28
|
+
|
29
|
+
- path --validation_key option to resolve crash bootstraping in cinc 15.6 [#138](https://github.com/higanworks/knife-zero/pull/138)
|
30
|
+
|
7
31
|
## v2.2.0
|
8
32
|
|
9
|
-
- add `--alter-project` to support cinc [#133]
|
33
|
+
- add `--alter-project` to support cinc [#133](https://github.com/higanworks/knife-zero/pull/133)
|
10
34
|
- allowed values: 'chef' or 'cinc'
|
11
35
|
- in config => `knife[:alter_project]`
|
12
36
|
- relocate `--node-config` option from `zero converge` to both `zero converge` and `zero bootstrap`.
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Knife-Plugin Zero
|
2
2
|
|
3
|
-
-
|
3
|
+
- current_main: [](https://circleci.com/gh/higanworks/knife-zero/tree/main)
|
4
4
|
- integration_with_edge_chef: [](https://circleci.com/gh/higanworks/knife-zero/tree/integration_testedge)
|
5
5
|
|
6
6
|
[](https://gitter.im/higanworks/knife-zero?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
@@ -17,7 +17,7 @@ Run chef-client at remote node with chef-zero(local-mode) via HTTP over SSH port
|
|
17
17
|
- [Knife-Zero Document](https://knife-zero.github.io)
|
18
18
|
- [Knife-Zero Document(Ja)](https://knife-zero.github.io/ja/)
|
19
19
|
|
20
|
-
- [CHANGELOG](https://github.com/higanworks/knife-zero/blob/
|
20
|
+
- [CHANGELOG](https://github.com/higanworks/knife-zero/blob/main/CHANGELOG.md)
|
21
21
|
|
22
22
|
## Requirements
|
23
23
|
|
data/knife-zero.gemspec
CHANGED
data/lib/chef/knife/zero_base.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'chef/knife/ssh'
|
2
|
+
require 'chef/version'
|
2
3
|
|
3
4
|
class Chef
|
4
5
|
class Knife
|
@@ -9,9 +10,10 @@ class Chef
|
|
9
10
|
require 'knife-zero/helper'
|
10
11
|
end
|
11
12
|
|
13
|
+
if Gem::Version.new(Chef::VERSION) < Gem::Version.new("17.3.27")
|
12
14
|
def ssh_command(command, subsession = nil) # rubocop:disable Metrics/PerceivedComplexity, Metrics/AbcSize, Metrics/CyclomaticComplexity
|
13
15
|
if config[:client_version]
|
14
|
-
case
|
16
|
+
case config[:alter_project]
|
15
17
|
when 'cinc'
|
16
18
|
super(%{/opt/cinc/embedded/bin/ruby -ropen-uri -e 'puts open("https://omnitruck.cinc.sh/install.sh").read' | sudo sh -s -- -v #{config[:client_version]}})
|
17
19
|
else
|
@@ -40,6 +42,40 @@ class Chef
|
|
40
42
|
ui.error e.backtrace.join("\n")
|
41
43
|
exit 1
|
42
44
|
end
|
45
|
+
else
|
46
|
+
# def ssh_command(command, subsession = nil) # rubocop:disable Metrics/PerceivedComplexity, Metrics/AbcSize, Metrics/CyclomaticComplexity
|
47
|
+
def ssh_command(command, session_list = session) # rubocop:disable Metrics/PerceivedComplexity, Metrics/AbcSize, Metrics/CyclomaticComplexity
|
48
|
+
if config[:client_version]
|
49
|
+
case config[:alter_project]
|
50
|
+
when 'cinc'
|
51
|
+
super(%{/opt/cinc/embedded/bin/ruby -ropen-uri -e 'puts open("https://omnitruck.cinc.sh/install.sh").read' | sudo sh -s -- -v #{config[:client_version]}})
|
52
|
+
else
|
53
|
+
super(%{/opt/chef/embedded/bin/ruby -ropen-uri -e 'puts open("https://omnitruck.chef.io/chef/install.sh").read' | sudo sh -s -- -v #{config[:client_version]}})
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
if config[:json_attribs]
|
58
|
+
Chef::Log.info "Onetime Attributes: #{config[:chef_client_json]}"
|
59
|
+
super(build_client_json)
|
60
|
+
end
|
61
|
+
|
62
|
+
chef_zero_port = config[:chef_zero_port] ||
|
63
|
+
Chef::Config[:knife][:chef_zero_port] ||
|
64
|
+
URI.parse(Chef::Config.chef_server_url).port
|
65
|
+
chef_zero_host = config[:chef_zero_host] ||
|
66
|
+
Chef::Config[:knife][:chef_zero_host] ||
|
67
|
+
'127.0.0.1'
|
68
|
+
session_list.servers.each do |server|
|
69
|
+
session = server.session(true)
|
70
|
+
session.forward.remote(chef_zero_port, chef_zero_host, ::Knife::Zero::Helper.zero_remote_port)
|
71
|
+
end
|
72
|
+
super
|
73
|
+
rescue => e # rubocop:disable Style/RescueStandardError
|
74
|
+
ui.error(e.class.to_s + e.message)
|
75
|
+
ui.error e.backtrace.join("\n")
|
76
|
+
exit 1
|
77
|
+
end
|
78
|
+
end
|
43
79
|
|
44
80
|
def build_client_json
|
45
81
|
<<-SCRIPT
|
@@ -18,16 +18,19 @@ class Chef
|
|
18
18
|
alias_method :orig_config_content, :config_content
|
19
19
|
def config_content # rubocop:disable Metrics/AbcSize
|
20
20
|
client_rb = orig_config_content
|
21
|
-
|
22
|
-
%w{
|
23
|
-
|
21
|
+
allowed_lists = []
|
22
|
+
%w{
|
23
|
+
automatic_attribute_whitelist default_attribute_whitelist normal_attribute_whitelist override_attribute_whitelist
|
24
|
+
allowed_automatic_attributes allowed_default_attributes allowed_normal_attributes allowed_override_attributes
|
25
|
+
}.each do |allowed_list|
|
26
|
+
next unless Chef::Config[:knife][allowed_list.to_sym]&.is_a?(Array)
|
24
27
|
|
25
|
-
|
26
|
-
|
27
|
-
Chef::Config[:knife][
|
28
|
+
allowed_lists.push([
|
29
|
+
allowed_list,
|
30
|
+
Chef::Config[:knife][allowed_list.to_sym].to_s
|
28
31
|
].join(' '))
|
29
32
|
end
|
30
|
-
client_rb <<
|
33
|
+
client_rb << allowed_lists.join("\n")
|
31
34
|
|
32
35
|
## For support policy_document_native_api
|
33
36
|
if @config[:policy_name]
|
@@ -55,6 +58,7 @@ class Chef
|
|
55
58
|
s << " --config #{@config[:node_config_file]}"
|
56
59
|
s << " -E #{bootstrap_environment}" unless bootstrap_environment.nil?
|
57
60
|
s << " -S http://127.0.0.1:#{::Knife::Zero::Helper.zero_remote_port}"
|
61
|
+
s << " -K #{[::File.dirname(@config[:node_config_file]), 'validation.pem'].join('/')}"
|
58
62
|
s << ' -W' if @config[:why_run]
|
59
63
|
Chef::Log.info 'Remote command: ' + s
|
60
64
|
s
|
data/lib/knife-zero/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-zero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sawanoboly
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '15.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: knife
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '17.0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '17.0'
|
153
167
|
description: Run chef-client at remote node with chef-zero(local-mode) via HTTP over
|
154
168
|
SSH port fowarding.
|
155
169
|
email:
|
@@ -177,7 +191,7 @@ homepage: http://knife-zero.github.io
|
|
177
191
|
licenses:
|
178
192
|
- Apache-2.0
|
179
193
|
metadata: {}
|
180
|
-
post_install_message:
|
194
|
+
post_install_message:
|
181
195
|
rdoc_options: []
|
182
196
|
require_paths:
|
183
197
|
- lib
|
@@ -192,9 +206,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
206
|
- !ruby/object:Gem::Version
|
193
207
|
version: '0'
|
194
208
|
requirements: []
|
195
|
-
|
196
|
-
|
197
|
-
signing_key:
|
209
|
+
rubygems_version: 3.2.22
|
210
|
+
signing_key:
|
198
211
|
specification_version: 4
|
199
212
|
summary: Run chef-client at remote node with chef-zero(local-mode) via HTTP over SSH
|
200
213
|
port fowarding.
|