knife-zero 1.5.1 → 1.6.0

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
  SHA1:
3
- metadata.gz: 44cf84092314004ad94e89203f75d0b6ea6288f4
4
- data.tar.gz: db9b5e072c8fa7c72b8c7e45f430bf03d0886e56
3
+ metadata.gz: d4383c976a2e1f917aaec4d23f7684e13bc72fb2
4
+ data.tar.gz: 43698c8ac6150af68f0744215d8a66fbcd54d8da
5
5
  SHA512:
6
- metadata.gz: 0a85dc16d988db80196031105baaed5f2d1c5eee572bcbd4129b4d952f0d4f6a00b595bebbde82ecd184e80c7a41879bec241e085565ba24fd12eceacd492c2b
7
- data.tar.gz: 5a48efd0493b912277410c57654b42e8b26f99d8971d66739691615124f41661847a1011afb9025e88ee910f7559ed7a1e21f849ea6fb6a7e43695d73de57708
6
+ metadata.gz: eacd35b62835fd3879179b19060f1d8682962c08fddd84e3a0f80b9d01164298c58f62ee1bb1818c0351f775c4c3ab586d32d239125b68b1e850f4e4496ef29d
7
+ data.tar.gz: bf56cd573120019588155d0302139cc990fca572707702809087d41db75daa460d9ed86208a9dccd473359c23131a360cc459c6447c61a30e0bd600ee50b998a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v1.6.0
6
+
7
+ - Feature: #32 create alias converge to chef_client, and recommended it by README.
8
+ - Refactor: almostoptions are derived from core.
9
+ - PR #38 HT: @patcon
10
+
5
11
  ## v1.5.1
6
12
 
7
13
  - Bug: `--ssh-user` arg doesn't override `knife[:ssh_user]`.
data/README.md CHANGED
@@ -47,7 +47,8 @@ $ chef gem install knife-zero
47
47
  ```
48
48
  ** ZERO COMMANDS **
49
49
  knife zero bootstrap FQDN (options)
50
- knife zero chef_client QUERY (options)
50
+ knife zero chef_client QUERY (options) | It's same as converge
51
+ knife zero converge QUERY (options)
51
52
  knife zero diagnose # show configuration from file
52
53
  ```
53
54
 
@@ -121,11 +122,12 @@ $ parallel -j 5 ./bin/knife zero bootstrap ::: nodeA nodeB nodeC...
121
122
  ```
122
123
 
123
124
 
124
- ### knife zero chef_client (for update)
125
+ ### knife zero converge/chef_client (for update)
125
126
 
126
- `knife zero chef_client QUERY (options)`
127
+ `knife zero converge QUERY (options)`
128
+ `knife zero chef_client QUERY (options) | It's same as converge`
127
129
 
128
- Search nodes from local chef-repo directory, and run command at remote node.
130
+ Search nodes from local chef-repo directory, and run chef-client at remote node.
129
131
 
130
132
  Supported options are mostly the same as `knife ssh`.
131
133
  And it supports below.
@@ -147,7 +149,7 @@ host.example.com:
147
149
  run_list: recipe[hogehoge::default]
148
150
 
149
151
 
150
- $ knife zero chef_client 'name:*' --attribute ipaddress
152
+ $ knife zero converge 'name:*' --attribute ipaddress
151
153
 
152
154
  ## host.example.com was converged by run_list.
153
155
  host.example.com Starting Chef Client, version 11.14.6
@@ -249,14 +251,14 @@ Connecting to 192.168.33.10
249
251
  ...
250
252
  ```
251
253
 
252
- Run zero chef_client with `-a name` option.
254
+ Run zero converge with `-a name` option.
253
255
 
254
256
  > Caution: `-a(--attribute) name` option doesn't work since chef 12.1.0.
255
257
  > Please use specific attribute until fix it.
256
258
  > I've already create PR for fix. Please wait for merge to use name attribute. https://github.com/chef/chef/pull/3195
257
259
 
258
260
  ```
259
- $ knife zero chef_client "name:*" -x vagrant -i ./.vagrant/machines/default/virtualbox/private_key --sudo -a name
261
+ $ knife zero converge "name:*" -x vagrant -i ./.vagrant/machines/default/virtualbox/private_key --sudo -a name
260
262
  WARN: No cookbooks directory found at or above current directory. Assuming /Users/sawanoboriyu/worktemp/knife-zero-vagrant.
261
263
  192.168.33.10 Starting Chef Client, version 12.0.3
262
264
  192.168.33.10 resolving cookbooks for run list: []
@@ -320,10 +322,10 @@ $ knife node edit vagrant.vm
320
322
  }
321
323
  ```
322
324
 
323
- Run zero chef_client with `-a chef_ip` option.
325
+ Run zero converge with `-a chef_ip` option.
324
326
 
325
327
  ```
326
- $ ./bin/knife zero chef_client "name:vagrant.vm" -x vagrant -i ./.vagrant/machines/default/virtualbox/private_key --sudo -a chef_ip
328
+ $ ./bin/knife zero converge "name:vagrant.vm" -x vagrant -i ./.vagrant/machines/default/virtualbox/private_key --sudo -a chef_ip
327
329
 
328
330
  192.168.33.10 Starting Chef Client, version 12.0.3
329
331
  192.168.33.10 resolving cookbooks for run list: []
@@ -342,7 +344,7 @@ $ ./bin/knife zero chef_client "name:vagrant.vm" -x vagrant -i ./.vagrant/machin
342
344
  For example, you can use ipv4 of eth1(or others) like below.
343
345
 
344
346
  ```
345
- $ knife zero chef_client "name:*" -x vagrant -i ./.vagrant/machines/default/virtualbox/private_key --sudo -a network.interfaces.eth1.addresses.keys.rotate.first
347
+ $ knife zero converge "name:*" -x vagrant -i ./.vagrant/machines/default/virtualbox/private_key --sudo -a network.interfaces.eth1.addresses.keys.rotate.first
346
348
 
347
349
  192.168.33.10 Starting Chef Client, version 12.0.3
348
350
  192.168.33.10 resolving cookbooks for run list: []
@@ -11,57 +11,6 @@ class Chef
11
11
  Chef::Knife::Ssh.load_deps
12
12
  end
13
13
 
14
- ## Just ported from chef
15
- option :ssh_user,
16
- :short => "-x USERNAME",
17
- :long => "--ssh-user USERNAME",
18
- :description => "The ssh username",
19
- :default => "root"
20
-
21
- option :ssh_password,
22
- :short => "-P PASSWORD",
23
- :long => "--ssh-password PASSWORD",
24
- :description => "The ssh password"
25
-
26
- option :identity_file,
27
- :short => "-i IDENTITY_FILE",
28
- :long => "--identity-file IDENTITY_FILE",
29
- :description => "The SSH identity file used for authentication"
30
-
31
- option :ssh_port,
32
- :short => "-p PORT",
33
- :long => "--ssh-port PORT",
34
- :description => "The ssh port",
35
- :proc => Proc.new { |key| Chef::Config[:knife][:ssh_port] = key }
36
-
37
- option :ssh_gateway,
38
- :short => "-G GATEWAY",
39
- :long => "--ssh-gateway GATEWAY",
40
- :description => "The ssh gateway",
41
- :proc => Proc.new { |key| Chef::Config[:knife][:ssh_gateway] = key }
42
-
43
- option :forward_agent,
44
- :short => "-A",
45
- :long => "--forward-agent",
46
- :description => "Enable SSH agent forwarding",
47
- :boolean => true
48
-
49
- option :host_key_verify,
50
- :long => "--[no-]host-key-verify",
51
- :description => "Verify host key, enabled by default.",
52
- :boolean => true,
53
- :default => true
54
-
55
- option :use_sudo,
56
- :long => "--sudo",
57
- :description => "execute the chef-client via sudo",
58
- :boolean => true
59
-
60
- option :use_sudo_password,
61
- :long => "--use-sudo-password",
62
- :description => "Execute the bootstrap via sudo with password",
63
- :boolean => false
64
-
65
14
  ## Added by Knife-Zero
66
15
  option :why_run,
67
16
  :short => '-W',
@@ -14,123 +14,10 @@ class Chef
14
14
 
15
15
  banner "knife zero bootstrap FQDN (options)"
16
16
 
17
- ## Just ported from chef bootstrap
18
- option :chef_node_name,
19
- :short => "-N NAME",
20
- :long => "--node-name NAME",
21
- :description => "The Chef node name for your new node"
22
-
23
- option :prerelease,
24
- :long => "--prerelease",
25
- :description => "Install the pre-release chef gems"
26
-
27
- option :bootstrap_version,
28
- :long => "--bootstrap-version VERSION",
29
- :description => "The version of Chef to install",
30
- :proc => lambda { |v| Chef::Config[:knife][:bootstrap_version] = v }
31
-
32
- option :bootstrap_proxy,
33
- :long => "--bootstrap-proxy PROXY_URL",
34
- :description => "The proxy server for the node being bootstrapped",
35
- :proc => Proc.new { |p| Chef::Config[:knife][:bootstrap_proxy] = p }
36
-
37
- option :bootstrap_no_proxy,
38
- :long => "--bootstrap-no-proxy [NO_PROXY_URL|NO_PROXY_IP]",
39
- :description => "Do not proxy locations for the node being bootstrapped; this option is used internally by Opscode",
40
- :proc => Proc.new { |np| Chef::Config[:knife][:bootstrap_no_proxy] = np }
41
-
42
- # DEPR: Remove this option in Chef 13
43
- option :distro,
44
- :short => "-d DISTRO",
45
- :long => "--distro DISTRO",
46
- :description => "Bootstrap a distro using a template",
47
- :default => "chef-full"
48
-
49
- option :bootstrap_template,
50
- :short => "-t TEMPLATE",
51
- :long => "--bootstrap-template TEMPLATE",
52
- :description => "Bootstrap Chef using a built-in or custom template. Set to the full path of an erb template or use one of the built-in templates."
53
-
54
- # DEPR: Remove this option in Chef 13
55
- option :template_file,
56
- :long => "--template-file TEMPLATE",
57
- :description => "Full path to location of template to use",
58
- :default => false
59
-
60
- option :run_list,
61
- :short => "-r RUN_LIST",
62
- :long => "--run-list RUN_LIST",
63
- :description => "Comma separated list of roles/recipes to apply",
64
- :proc => lambda { |o| o.split(/[\s,]+/) },
65
- :default => []
66
-
67
- option :first_boot_attributes,
68
- :short => "-j JSON_ATTRIBS",
69
- :long => "--json-attributes",
70
- :description => "A JSON string to be added to the first run of chef-client",
71
- :proc => lambda { |o| Chef::JSONCompat.parse(o) },
72
- :default => {}
73
-
74
- option :hint,
75
- :long => "--hint HINT_NAME[=HINT_FILE]",
76
- :description => "Specify Ohai Hint to be set on the bootstrap target. Use multiple --hint options to specify multiple hints.",
77
- :proc => Proc.new { |h|
78
- Chef::Config[:knife][:hints] ||= Hash.new
79
- name, path = h.split("=")
80
- Chef::Config[:knife][:hints][name] = path ? Chef::JSONCompat.parse(::File.read(path)) : Hash.new }
81
-
82
- option :secret,
83
- :short => "-s SECRET",
84
- :long => "--secret ",
85
- :description => "The secret key to use to encrypt data bag item values",
86
- :proc => Proc.new { |s| Chef::Config[:knife][:secret] = s }
87
-
88
- option :secret_file,
89
- :long => "--secret-file SECRET_FILE",
90
- :description => "A file containing the secret key to use to encrypt data bag item values",
91
- :proc => Proc.new { |sf| Chef::Config[:knife][:secret_file] = sf }
92
-
93
- option :bootstrap_url,
94
- :long => "--bootstrap-url URL",
95
- :description => "URL to a custom installation script",
96
- :proc => Proc.new { |u| Chef::Config[:knife][:bootstrap_url] = u }
97
-
98
- option :bootstrap_install_command,
99
- :long => "--bootstrap-install-command COMMANDS",
100
- :description => "Custom command to install chef-client",
101
- :proc => Proc.new { |ic| Chef::Config[:knife][:bootstrap_install_command] = ic }
102
-
103
- option :bootstrap_wget_options,
104
- :long => "--bootstrap-wget-options OPTIONS",
105
- :description => "Add options to wget when installing chef-client",
106
- :proc => Proc.new { |wo| Chef::Config[:knife][:bootstrap_wget_options] = wo }
107
-
108
- option :bootstrap_curl_options,
109
- :long => "--bootstrap-curl-options OPTIONS",
110
- :description => "Add options to curl when install chef-client",
111
- :proc => Proc.new { |co| Chef::Config[:knife][:bootstrap_curl_options] = co }
112
-
113
-
114
- ## experimental: vault support
115
- option :bootstrap_vault_file,
116
- :long => '--bootstrap-vault-file VAULT_FILE',
117
- :description => 'A JSON file with a list of vault(s) and item(s) to be updated'
118
-
119
- option :bootstrap_vault_json,
120
- :long => '--bootstrap-vault-json VAULT_JSON',
121
- :description => 'A JSON string with the vault(s) and item(s) to be updated'
122
-
123
- option :bootstrap_vault_item,
124
- :long => '--bootstrap-vault-item VAULT_ITEM',
125
- :description => 'A single vault and item to update as "vault:item"',
126
- :proc => Proc.new { |i|
127
- (vault, item) = i.split(/:/)
128
- Chef::Config[:knife][:bootstrap_vault_item] ||= {}
129
- Chef::Config[:knife][:bootstrap_vault_item][vault] ||= []
130
- Chef::Config[:knife][:bootstrap_vault_item][vault].push(item)
131
- Chef::Config[:knife][:bootstrap_vault_item]
132
- }
133
-
17
+ ## Import from knife bootstrap except exclusions
18
+ self.options = Bootstrap.options.merge(self.options)
19
+ self.options.delete :node_ssl_verify_mode
20
+ self.options.delete :node_verify_api_cert
134
21
 
135
22
  def knife_ssh
136
23
  begin
@@ -12,20 +12,11 @@ class Chef
12
12
  require "knife-zero/helper"
13
13
  end
14
14
 
15
- banner "knife zero chef_client QUERY (options)"
15
+ banner "knife zero chef_client QUERY (options) | It's same as converge"
16
16
 
17
- option :concurrency,
18
- :short => "-C NUM",
19
- :long => "--concurrency NUM",
20
- :description => "The number of concurrent connections",
21
- :default => nil,
22
- :proc => lambda { |o| o.to_i }
23
-
24
- option :attribute,
25
- :short => "-a ATTR",
26
- :long => "--attribute ATTR",
27
- :description => "The attribute to use for opening the connection - default depends on the context",
28
- :proc => Proc.new { |key| Chef::Config[:knife][:ssh_attribute] = key.strip }
17
+ self.options = Ssh.options.merge(self.options)
18
+ self.options[:use_sudo] = Bootstrap.options[:use_sudo]
19
+ self.options[:use_sudo_password] = Bootstrap.options[:use_sudo_password]
29
20
 
30
21
  option :override_runlist,
31
22
  :short => "-o RunlistItem,RunlistItem...",
@@ -0,0 +1,15 @@
1
+ require 'chef/knife'
2
+ require 'chef/knife/zero_chef_client'
3
+
4
+ class Chef
5
+ class Knife
6
+ class ZeroConverge < Chef::Knife::ZeroChefClient
7
+ deps do
8
+ Chef::Knife::ZeroChefClient.load_deps
9
+ end
10
+
11
+ banner "knife zero converge QUERY (options)"
12
+ self.options = ZeroChefClient.options
13
+ end
14
+ end
15
+ end
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module Zero
3
- VERSION = "1.5.1"
3
+ VERSION = "1.6.0"
4
4
  MAJOR, MINOR, TINY = VERSION.split('.')
5
5
  end
6
6
  end
@@ -13,8 +13,8 @@ class TC_ZeroBootstrap < Test::Unit::TestCase
13
13
  assert_true(Chef::Config[:knife_zero])
14
14
  end
15
15
 
16
- test "returns changed value from core" do
17
- assert_equal("chef-full", @app.config[:distro])
16
+ test "returns expected bootstrap template(for notice changes of core to me)" do
17
+ assert_equal("chef-full", @app.default_bootstrap_template)
18
18
  end
19
19
 
20
20
  test "returns BootstrapSsh via knife_ssh" do
@@ -5,14 +5,4 @@ class TC_BootstrapSsh < Test::Unit::TestCase
5
5
  @app = Chef::Knife::BootstrapSsh.new
6
6
  @app.merge_configs
7
7
  end
8
-
9
- test "RR" do
10
- assert_rr do
11
- subject = Hash.new
12
- mock(subject).to_json("hoge") {
13
- "mogemoge"
14
- }
15
- assert_equal("mogemoge", subject.to_json("hoge"))
16
- end
17
- end
18
8
  end
@@ -2,6 +2,6 @@ require "knife-zero/version"
2
2
 
3
3
  class TC_Version < Test::Unit::TestCase
4
4
  test "returns version correctly" do
5
- assert_equal("1.5.1", Knife::Zero::VERSION)
5
+ assert_equal("1.6.0", Knife::Zero::VERSION)
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sawanoboly
@@ -174,6 +174,7 @@ files:
174
174
  - lib/chef/knife/zero_base.rb
175
175
  - lib/chef/knife/zero_bootstrap.rb
176
176
  - lib/chef/knife/zero_chef_client.rb
177
+ - lib/chef/knife/zero_converge.rb
177
178
  - lib/chef/knife/zero_diagnose.rb
178
179
  - lib/knife-zero/bootstrap_ssh.rb
179
180
  - lib/knife-zero/core/bootstrap_context.rb