knife-zero 1.8.7 → 1.9.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +7 -265
- data/lib/chef/knife/zero_bootstrap.rb +15 -9
- data/lib/knife-zero/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2c620c6d5a45dcd31d20e1ad79a5aad1bef3eb3
|
4
|
+
data.tar.gz: 5025abfbbab7bb134613ee7322853db13661b777
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca4447936565588d7d77c6b21db8bd23295af94e2622116aad2a74154efb2ebd4fc4bd14dc373b303b6ccd3d57923699b6f9eacaec406a8b3f2e1c1bebc701e4
|
7
|
+
data.tar.gz: 2a5f49c88167802ffc2321ae3bbe539734b73237e39fa5634ba63776745eced1a7e71a39f0fe91820fdb0edaafd5d9f5e4b194463467bb5aeca7771c28d3ff61
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## v1.9.0
|
6
|
+
|
7
|
+
- Change: use nil to ssh_user on bootstraping by default.
|
8
|
+
- compatibility for 12.5 and ssh/config
|
9
|
+
- Remove: add new attribute knife_zero.ssh_url at bootstrap.
|
10
|
+
|
5
11
|
## v1.8.7
|
6
12
|
|
7
13
|
- Follow master: environment _default is not set by default since 12.5
|
data/README.md
CHANGED
@@ -40,283 +40,25 @@ knife zero diagnose # show configuration from file
|
|
40
40
|
|
41
41
|
### Configuration file
|
42
42
|
|
43
|
-
|
43
|
+
Relocated: [Configration | Knife-Zero Document](http://knife-zero.github.io/40_configration/)
|
44
44
|
|
45
|
-
|
46
|
-
```
|
47
|
-
chef_repo_path File.expand_path('../../' , __FILE__)
|
48
|
-
cookbook_path [File.expand_path('../../cookbooks' , __FILE__), File.expand_path('../../site-cookbooks' , __FILE__)]
|
49
|
-
```
|
50
|
-
|
51
|
-
If you used knife serve or knife zero, this makes sure chef-zero is started with the contents of the chef-repo directory instead of as an empty server.
|
52
|
-
|
53
|
-
### knife zero bootstrap
|
54
|
-
|
55
|
-
Install Chef to remote node and run chef-client under chef-zero via tcp-forward.
|
56
|
-
|
57
|
-
Supported options are mostly the same as `knife bootstrap`.
|
58
|
-
And it supports why-run(`-W, --why-run`)and Bootstrap without first Chef-Client Run.(--no-converge).
|
59
|
-
|
60
|
-
#### Example
|
61
|
-
|
62
|
-
Bootstrap with run-list.
|
63
|
-
|
64
|
-
```
|
65
|
-
$ bundle exec knife zero bootstrap host.example.com -r hogehoge::default --no-host-key-verify
|
66
|
-
Connecting to host.example.com
|
67
|
-
host.example.com Installing Chef Client...
|
68
|
-
-- snip --
|
69
|
-
host.example.com Thank you for installing Chef!
|
45
|
+
### knife zero bootstrap | converge | diagnose
|
70
46
|
|
71
|
-
|
72
|
-
host.example.com Starting Chef Client, version 11.14.6
|
73
|
-
host.example.com Creating a new client identity for host.example.com using the validator key.
|
47
|
+
Relocated
|
74
48
|
|
49
|
+
- [Getting Started | Knife-Zero Document](http://knife-zero.github.io/20_getting_started/)
|
50
|
+
- [Subcommands | Knife-Zero Document](http://knife-zero.github.io/30_subcommands/)
|
75
51
|
|
76
|
-
## Resolve and sync cookbook via http over ssh tcp-forward by run-list.
|
77
|
-
host.example.com resolving cookbooks for run list: ["hogehoge::default"]
|
78
|
-
host.example.com Synchronizing Cookbooks:
|
79
|
-
host.example.com - hogehoge
|
80
|
-
host.example.com Compiling Cookbooks...
|
81
|
-
host.example.com Converging 0 resources
|
82
|
-
host.example.com
|
83
|
-
host.example.com Running handlers:
|
84
|
-
host.example.com Running handlers complete
|
85
|
-
host.example.com Chef Client finished, 0/0 resources updated in 4.895561879 seconds
|
86
|
-
|
87
|
-
|
88
|
-
## Creates node object into local.
|
89
|
-
$ ls nodes/host.example.com.json
|
90
|
-
nodes/host.example.com.json
|
91
|
-
host.example.com
|
92
|
-
|
93
|
-
## Search by knife with --local--mode option.
|
94
|
-
$ bundle exec knife search node --local-mode
|
95
|
-
1 items found
|
96
|
-
|
97
|
-
Node Name: host.example.com
|
98
|
-
Environment: _default
|
99
|
-
FQDN:
|
100
|
-
IP: xxx.xxx.xxx.xxx
|
101
|
-
Run List: recipe[hogehoge::default]
|
102
|
-
Roles:
|
103
|
-
Recipes: hogehoge::default
|
104
|
-
Platform: ubuntu 12.04
|
105
|
-
Tags:
|
106
|
-
```
|
107
|
-
|
108
|
-
Search and execute command via ssh by knife ssh.
|
109
|
-
|
110
|
-
```
|
111
|
-
$ knife ssh 'hostname:*' --local-mode uptime --attribute ipaddress
|
112
|
-
xxx.xxx.xxx.xxx 08:41:36 up 1:03, 1 user, load average: 0.00, 0.01, 0.01
|
113
|
-
xxx.xxx.xxx.xxx 08:41:37 up 143 days, 2:32, 4 users, load average: 0.00, 0.01, 0.05
|
114
|
-
```
|
115
|
-
|
116
|
-
Bootstrap multi-nodes via GNU Parallel
|
117
|
-
|
118
|
-
```
|
119
|
-
$ parallel -j 5 ./bin/knife zero bootstrap ::: nodeA nodeB nodeC...
|
120
|
-
```
|
121
52
|
|
122
53
|
#### (Hint)Supress Automatic Attributes
|
123
54
|
|
124
|
-
|
125
|
-
|
126
|
-
For example, set array to `knife.rb`.
|
127
|
-
|
128
|
-
```
|
129
|
-
knife[:automatic_attribute_whitelist] = [
|
130
|
-
"fqdn/",
|
131
|
-
"ipaddress/",
|
132
|
-
"roles/",
|
133
|
-
"recipes/",
|
134
|
-
"ipaddress/",
|
135
|
-
"platform/",
|
136
|
-
"platform_version/",
|
137
|
-
"cloud/",
|
138
|
-
"cloud_v2/"
|
139
|
-
]
|
140
|
-
```
|
141
|
-
|
142
|
-
It setting will append to client.rb of node via bootstrap.
|
143
|
-
|
144
|
-
```
|
145
|
-
...
|
146
|
-
|
147
|
-
automatic_attribute_whitelist ["fqdn/", "ipaddress/", "roles/", "recipes/", "ipaddress/", "platform/", "platform_version/", "cloud/", "cloud_v2/"]
|
148
|
-
```
|
149
|
-
|
150
|
-
It means knife-zero will collects and updates only listed attributes to local file.
|
151
|
-
|
152
|
-
```
|
153
|
-
{
|
154
|
-
"name": "knife-zero.example.com",
|
155
|
-
"normal": {
|
156
|
-
"knife_zero" : {
|
157
|
-
"host" : "xxx.xxx.xxx.xxx(bootstraped_target)"
|
158
|
-
},
|
159
|
-
"tags": [
|
160
|
-
|
161
|
-
]
|
162
|
-
},
|
163
|
-
"automatic": {
|
164
|
-
"ipaddress": "xxx.xxx.xxx.xxx",
|
165
|
-
"roles": [
|
166
|
-
|
167
|
-
],
|
168
|
-
"recipes": [
|
169
|
-
|
170
|
-
],
|
171
|
-
"platform": "ubuntu",
|
172
|
-
"platform_version": "14.04",
|
173
|
-
"cloud_v2": null
|
174
|
-
}
|
175
|
-
}
|
176
|
-
```
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
### knife zero converge/chef_client (for update)
|
181
|
-
|
182
|
-
`knife zero converge QUERY (options)`
|
183
|
-
`knife zero chef_client QUERY (options) | It's same as converge`
|
184
|
-
|
185
|
-
Search nodes from local chef-repo directory, and run chef-client at remote node.
|
186
|
-
|
187
|
-
Supported options are mostly the same as `knife ssh`.
|
188
|
-
And it supports below.
|
189
|
-
|
190
|
-
- why-run(`-W, --why-run`)
|
191
|
-
- Override run-list(`-o RunlistItem,RunlistItem, --override-runlist`). It skips save node.json on workstation.
|
192
|
-
|
193
|
-
#### Example
|
194
|
-
|
195
|
-
```
|
196
|
-
## Chef-Repo has two nodes
|
197
|
-
$ knife node list --local-mode
|
198
|
-
host.example.com
|
199
|
-
host2.example.com
|
200
|
-
|
201
|
-
## add recipe to run_list of host.example.com
|
202
|
-
$ knife node run_list add host.example.com hogehoge::default --local-mode
|
203
|
-
host.example.com:
|
204
|
-
run_list: recipe[hogehoge::default]
|
205
|
-
|
206
|
-
|
207
|
-
$ knife zero converge 'name:*' --attribute ipaddress
|
208
|
-
|
209
|
-
## host.example.com was converged by run_list.
|
210
|
-
host.example.com Starting Chef Client, version 11.14.6
|
211
|
-
host.example.com resolving cookbooks for run list: ["hogehoge::default"]
|
212
|
-
host.example.com Synchronizing Cookbooks:
|
213
|
-
host.example.com - hogehoge
|
214
|
-
host.example.com Compiling Cookbooks...
|
215
|
-
host.example.com Converging 0 resources
|
216
|
-
host.example.com
|
217
|
-
host.example.com Running handlers:
|
218
|
-
host.example.com Running handlers complete
|
219
|
-
host.example.com Chef Client finished, 0/0 resources updated in 3.112708185 seconds
|
220
|
-
|
221
|
-
|
222
|
-
## host2.example.com has no run_list.
|
223
|
-
host2.example.com Starting Chef Client, version 11.14.2
|
224
|
-
host2.example.com resolving cookbooks for run list: []
|
225
|
-
host2.example.com Synchronizing Cookbooks:
|
226
|
-
host2.example.com Compiling Cookbooks...
|
227
|
-
host2.example.com [2014-08-24T11:52:15+00:00] WARN: Node ngrok01.xenzai.net has an empty run list.
|
228
|
-
host2.example.com Converging 0 resources
|
229
|
-
host2.example.com
|
230
|
-
host2.example.com Running handlers:
|
231
|
-
host2.example.com Running handlers complete
|
232
|
-
host2.example.com Chef Client finished, 0/0 resources updated in 3.729471856 seconds
|
233
|
-
```
|
234
|
-
|
235
|
-
|
236
|
-
## Sample Workflow
|
237
|
-
|
238
|
-
1. create chef-repo directory.
|
239
|
-
1. bundle init and add below.
|
240
|
-
- `gem 'chef' `
|
241
|
-
- `gem 'knife-zero'`
|
242
|
-
- and cookbook management tool such as `Berkshelf` or `Librarian-Chef`.
|
243
|
-
1. bundle
|
244
|
-
e.g.) `bundle install --path vendor/bundle --binstubs`
|
245
|
-
1. install cookbooks to `./cookbooks`. (if you need run recipe.)
|
246
|
-
1. bootstrap on remote node.
|
247
|
-
`./bin/knife zero bootstrap host.example.com [-r "${your-run-list}"]`
|
248
|
-
1. chef-client will run using resources on local chef-repo.
|
249
|
-
|
250
|
-
### Need test on Vagrant ?
|
251
|
-
|
252
|
-
Relocated: [Practice with Vagrant | Knife-Zero Document](https://knife-zero.github.io/tips/practice_with_vagrant/)
|
253
|
-
|
254
|
-
|
255
|
-
## Debug for Configuration
|
256
|
-
|
257
|
-
`knife zero diagnose` shows configuration from file(Such as knife.rb).
|
258
|
-
|
259
|
-
```
|
260
|
-
$ knife zero diagnose
|
261
|
-
|
262
|
-
Chef::Config
|
263
|
-
====================
|
264
|
-
---
|
265
|
-
:local_mode: true
|
266
|
-
:verbosity:
|
267
|
-
:config_file: "/Users/sawanoboriyu/github/higanworks/knife-zero_playground/knife.rb"
|
268
|
-
:color: true
|
269
|
-
:log_level: :error
|
270
|
-
:chef_repo_path: "/Users/sawanoboriyu/github/higanworks/knife-zero_playground"
|
271
|
-
:log_location: !ruby/object:IO {}
|
272
|
-
:chef_server_url: http://localhost:8889
|
273
|
-
:repo_mode: everything
|
274
|
-
|
275
|
-
Knife::Config
|
276
|
-
====================
|
277
|
-
---
|
278
|
-
:verbosity: 0
|
279
|
-
:color: true
|
280
|
-
:editor: vim
|
281
|
-
:disable_editing: false
|
282
|
-
:format: summary
|
283
|
-
:ssh_user: root
|
284
|
-
:host_key_verify: true
|
285
|
-
:config_file: "/Users/sawanoboriyu/github/higanworks/knife-zero_playground/knife.rb"
|
286
|
-
|
287
|
-
Zero Bootstrap Config
|
288
|
-
====================
|
289
|
-
---
|
290
|
-
:ssh_user: root
|
291
|
-
:host_key_verify: true
|
292
|
-
:distro: chef-full-localmode
|
293
|
-
:template_file: false
|
294
|
-
:run_list: []
|
295
|
-
:first_boot_attributes: {}
|
296
|
-
|
297
|
-
Zero ChefClient Config
|
298
|
-
====================
|
299
|
-
---
|
300
|
-
:ssh_user: root
|
301
|
-
:host_key_verify: true
|
302
|
-
:concurrency:
|
303
|
-
:override_runlist:
|
304
|
-
```
|
55
|
+
Relocated: [Configration | Knife-Zero Document](http://knife-zero.github.io/40_configration/)
|
305
56
|
|
306
57
|
|
307
58
|
## To include from other knife plugins
|
308
59
|
|
309
|
-
|
310
|
-
|
311
|
-
```
|
312
|
-
deps do
|
313
|
-
require 'chef/knife/zerobootstrap'
|
314
|
-
Chef::Knife::ZeroBootstrap.load_deps
|
315
|
-
self.options = Chef::Knife::ZeroBootstrap.options.merge(self.options)
|
316
|
-
end
|
317
|
-
```
|
60
|
+
Relocated: [To include from other knife plugins | Knife-Zero Document](http://knife-zero.github.io/tips/include_from_other_knife_plugins/)
|
318
61
|
|
319
|
-
For example, [knife-digital_ocean](https://github.com/higanworks/knife-digital_ocean/blob/79_merge_zero_bootstrap_options/lib/chef/knife/digital_ocean_droplet_create.rb)
|
320
62
|
|
321
63
|
## Contributing
|
322
64
|
|
@@ -19,6 +19,11 @@ class Chef
|
|
19
19
|
self.options.delete :node_ssl_verify_mode
|
20
20
|
self.options.delete :node_verify_api_cert
|
21
21
|
|
22
|
+
## Override to use nil by default
|
23
|
+
option :ssh_user,
|
24
|
+
:short => "-x USERNAME",
|
25
|
+
:long => "--ssh-user USERNAME"
|
26
|
+
|
22
27
|
option :bootstrap_converge,
|
23
28
|
:long => "--[no-]converge",
|
24
29
|
:description => "Bootstrap without Chef-Client Run.(for only update client.rb)",
|
@@ -80,17 +85,18 @@ class Chef
|
|
80
85
|
end
|
81
86
|
|
82
87
|
def build_knifezero_attributes_for_node
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
## Return to Pending.
|
89
|
+
# ssh_url = String.new("ssh://")
|
90
|
+
# ssh_url << config[:ssh_user] || Chef::Config[:knife][:ssh_user]
|
91
|
+
# ssh_url << "@"
|
92
|
+
# ssh_url << server_name
|
93
|
+
# ssh_url << ":"
|
94
|
+
# port = config[:ssh_port] || Chef::Config[:knife][:ssh_port] || 22
|
95
|
+
# ssh_url << port.to_s
|
90
96
|
attr = Mash.new
|
91
97
|
attr[:knife_zero] = {
|
92
|
-
host: server_name
|
93
|
-
|
98
|
+
host: server_name
|
99
|
+
# ssh_url: ssh_url
|
94
100
|
}
|
95
101
|
attr
|
96
102
|
end
|
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: 1.
|
4
|
+
version: 1.9.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sawanoboly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -186,9 +186,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
186
|
version: '0'
|
187
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
|
-
- - "
|
189
|
+
- - ">"
|
190
190
|
- !ruby/object:Gem::Version
|
191
|
-
version:
|
191
|
+
version: 1.3.1
|
192
192
|
requirements: []
|
193
193
|
rubyforge_project:
|
194
194
|
rubygems_version: 2.4.8
|