chef 12.12.15-universal-mingw32 → 12.13.30-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (412) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -0
  3. data/LICENSE +201 -201
  4. data/VERSION +1 -1
  5. data/acceptance/.gitignore +2 -0
  6. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +1 -12
  7. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +29 -12
  8. data/acceptance/Gemfile +6 -3
  9. data/acceptance/Gemfile.lock +109 -67
  10. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +2 -2
  11. data/acceptance/trivial/.kitchen.yml +1 -1
  12. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
  13. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
  14. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
  15. data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +4 -4
  16. data/bin/chef-apply +0 -0
  17. data/bin/chef-client +0 -0
  18. data/bin/chef-service-manager +0 -0
  19. data/bin/chef-shell +0 -0
  20. data/bin/chef-solo +0 -0
  21. data/bin/chef-windows-service +0 -0
  22. data/bin/knife +0 -0
  23. data/chef.gemspec +4 -3
  24. data/distro/common/html/_sources/ctl_chef_client.txt +35 -35
  25. data/distro/common/html/_sources/ctl_chef_server.txt +341 -341
  26. data/distro/common/html/_sources/ctl_chef_shell.txt +15 -15
  27. data/distro/common/html/_sources/ctl_chef_solo.txt +25 -25
  28. data/distro/common/html/_sources/index.txt +135 -135
  29. data/distro/common/html/_sources/knife.txt +74 -74
  30. data/distro/common/html/_sources/knife_bootstrap.txt +56 -56
  31. data/distro/common/html/_sources/knife_client.txt +150 -150
  32. data/distro/common/html/_sources/knife_common_options.txt +6 -6
  33. data/distro/common/html/_sources/knife_configure.txt +29 -29
  34. data/distro/common/html/_sources/knife_cookbook.txt +236 -236
  35. data/distro/common/html/_sources/knife_cookbook_site.txt +157 -157
  36. data/distro/common/html/_sources/knife_data_bag.txt +159 -159
  37. data/distro/common/html/_sources/knife_delete.txt +26 -26
  38. data/distro/common/html/_sources/knife_deps.txt +61 -61
  39. data/distro/common/html/_sources/knife_diff.txt +34 -34
  40. data/distro/common/html/_sources/knife_download.txt +44 -44
  41. data/distro/common/html/_sources/knife_edit.txt +26 -26
  42. data/distro/common/html/_sources/knife_environment.txt +158 -158
  43. data/distro/common/html/_sources/knife_exec.txt +47 -47
  44. data/distro/common/html/_sources/knife_index_rebuild.txt +20 -20
  45. data/distro/common/html/_sources/knife_list.txt +33 -33
  46. data/distro/common/html/_sources/knife_node.txt +250 -250
  47. data/distro/common/html/_sources/knife_raw.txt +35 -35
  48. data/distro/common/html/_sources/knife_recipe_list.txt +23 -23
  49. data/distro/common/html/_sources/knife_role.txt +157 -157
  50. data/distro/common/html/_sources/knife_search.txt +53 -53
  51. data/distro/common/html/_sources/knife_serve.txt +18 -18
  52. data/distro/common/html/_sources/knife_show.txt +26 -26
  53. data/distro/common/html/_sources/knife_ssh.txt +43 -43
  54. data/distro/common/html/_sources/knife_ssl_check.txt +41 -41
  55. data/distro/common/html/_sources/knife_ssl_fetch.txt +41 -41
  56. data/distro/common/html/_sources/knife_status.txt +37 -37
  57. data/distro/common/html/_sources/knife_tag.txt +69 -69
  58. data/distro/common/html/_sources/knife_upload.txt +49 -49
  59. data/distro/common/html/_sources/knife_user.txt +127 -127
  60. data/distro/common/html/_sources/knife_using.txt +43 -43
  61. data/distro/common/html/_sources/knife_xargs.txt +30 -30
  62. data/distro/common/html/_static/guide.css +504 -504
  63. data/distro/common/html/_static/pygments.css +61 -61
  64. data/distro/common/html/_static/underscore.js +31 -31
  65. data/distro/common/html/ctl_chef_client.html +269 -269
  66. data/distro/common/html/ctl_chef_server.html +727 -727
  67. data/distro/common/html/ctl_chef_shell.html +162 -162
  68. data/distro/common/html/ctl_chef_solo.html +193 -193
  69. data/distro/common/html/index.html +201 -201
  70. data/distro/common/html/knife.html +169 -169
  71. data/distro/common/html/knife_bootstrap.html +284 -284
  72. data/distro/common/html/knife_client.html +284 -284
  73. data/distro/common/html/knife_common_options.html +95 -95
  74. data/distro/common/html/knife_configure.html +104 -104
  75. data/distro/common/html/knife_cookbook.html +486 -486
  76. data/distro/common/html/knife_data_bag.html +373 -373
  77. data/distro/common/html/knife_delete.html +92 -92
  78. data/distro/common/html/knife_deps.html +142 -142
  79. data/distro/common/html/knife_diff.html +122 -122
  80. data/distro/common/html/knife_download.html +144 -144
  81. data/distro/common/html/knife_edit.html +88 -88
  82. data/distro/common/html/knife_environment.html +325 -325
  83. data/distro/common/html/knife_exec.html +219 -219
  84. data/distro/common/html/knife_index_rebuild.html +82 -82
  85. data/distro/common/html/knife_list.html +113 -113
  86. data/distro/common/html/knife_node.html +457 -457
  87. data/distro/common/html/knife_raw.html +109 -109
  88. data/distro/common/html/knife_recipe_list.html +90 -90
  89. data/distro/common/html/knife_role.html +294 -294
  90. data/distro/common/html/knife_search.html +202 -202
  91. data/distro/common/html/knife_serve.html +78 -78
  92. data/distro/common/html/knife_show.html +103 -103
  93. data/distro/common/html/knife_ssh.html +176 -176
  94. data/distro/common/html/knife_ssl_check.html +150 -150
  95. data/distro/common/html/knife_ssl_fetch.html +150 -150
  96. data/distro/common/html/knife_status.html +143 -143
  97. data/distro/common/html/knife_tag.html +137 -137
  98. data/distro/common/html/knife_upload.html +152 -152
  99. data/distro/common/html/knife_user.html +241 -241
  100. data/distro/common/html/knife_using.html +209 -209
  101. data/distro/common/html/knife_xargs.html +121 -121
  102. data/distro/common/html/search.html +81 -81
  103. data/distro/common/man/man1/README.md +58 -58
  104. data/distro/common/man/man1/chef-shell.1 +194 -194
  105. data/distro/common/man/man1/knife-bootstrap.1 +215 -215
  106. data/distro/common/man/man1/knife-client.1 +443 -443
  107. data/distro/common/man/man1/knife-configure.1 +161 -161
  108. data/distro/common/man/man1/knife-cookbook.1 +770 -770
  109. data/distro/common/man/man1/knife-data-bag.1 +617 -617
  110. data/distro/common/man/man1/knife-delete.1 +127 -127
  111. data/distro/common/man/man1/knife-deps.1 +246 -246
  112. data/distro/common/man/man1/knife-diff.1 +226 -226
  113. data/distro/common/man/man1/knife-download.1 +258 -258
  114. data/distro/common/man/man1/knife-edit.1 +121 -121
  115. data/distro/common/man/man1/knife-environment.1 +508 -508
  116. data/distro/common/man/man1/knife-exec.1 +362 -362
  117. data/distro/common/man/man1/knife-index-rebuild.1 +63 -63
  118. data/distro/common/man/man1/knife-list.1 +174 -174
  119. data/distro/common/man/man1/knife-node.1 +716 -716
  120. data/distro/common/man/man1/knife-raw.1 +172 -172
  121. data/distro/common/man/man1/knife-recipe-list.1 +85 -85
  122. data/distro/common/man/man1/knife-role.1 +426 -426
  123. data/distro/common/man/man1/knife-search.1 +359 -359
  124. data/distro/common/man/man1/knife-serve.1 +109 -109
  125. data/distro/common/man/man1/knife-show.1 +160 -160
  126. data/distro/common/man/man1/knife-ssh.1 +284 -284
  127. data/distro/common/man/man1/knife-ssl-check.1 +207 -207
  128. data/distro/common/man/man1/knife-ssl-fetch.1 +207 -207
  129. data/distro/common/man/man1/knife-status.1 +234 -234
  130. data/distro/common/man/man1/knife-tag.1 +189 -189
  131. data/distro/common/man/man1/knife-upload.1 +280 -280
  132. data/distro/common/man/man1/knife-user.1 +356 -356
  133. data/distro/common/man/man1/knife-xargs.1 +189 -189
  134. data/distro/common/man/man1/knife.1 +332 -332
  135. data/distro/common/man/man8/chef-apply.8 +86 -86
  136. data/distro/common/man/man8/chef-client.8 +398 -398
  137. data/distro/common/man/man8/chef-solo.8 +260 -260
  138. data/distro/common/markdown/README +3 -3
  139. data/lib/chef/application.rb +23 -0
  140. data/lib/chef/application/client.rb +10 -2
  141. data/lib/chef/application/knife.rb +8 -0
  142. data/lib/chef/application/solo.rb +10 -2
  143. data/lib/chef/audit/audit_reporter.rb +5 -1
  144. data/lib/chef/audit/runner.rb +1 -1
  145. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -0
  146. data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +4 -2
  147. data/lib/chef/chef_fs/file_system/repository/base_file.rb +3 -0
  148. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -0
  149. data/lib/chef/chef_fs/file_system/repository/directory.rb +12 -1
  150. data/lib/chef/chef_fs/file_system_cache.rb +80 -0
  151. data/lib/chef/data_collector.rb +18 -1
  152. data/lib/chef/data_collector/resource_report.rb +1 -0
  153. data/lib/chef/decorator/unchain.rb +16 -0
  154. data/lib/chef/dsl/cheffish.rb +1 -0
  155. data/lib/chef/dsl/declare_resource.rb +9 -1
  156. data/lib/chef/file_access_control/windows.rb +3 -3
  157. data/lib/chef/knife/bootstrap.rb +9 -0
  158. data/lib/chef/knife/cookbook_site_install.rb +2 -11
  159. data/lib/chef/knife/cookbook_site_share.rb +7 -13
  160. data/lib/chef/knife/core/bootstrap_context.rb +10 -0
  161. data/lib/chef/knife/help_topics.rb +4 -4
  162. data/lib/chef/nil_argument.rb +3 -3
  163. data/lib/chef/node/attribute.rb +2 -2
  164. data/lib/chef/provider/apt_repository.rb +1 -1
  165. data/lib/chef/provider/apt_update.rb +12 -3
  166. data/lib/chef/provider/cron.rb +1 -1
  167. data/lib/chef/provider/package/aix.rb +5 -1
  168. data/lib/chef/provider/package/zypper.rb +7 -7
  169. data/lib/chef/provider/resource_update.rb +52 -52
  170. data/lib/chef/reserved_names.rb +9 -9
  171. data/lib/chef/resource.rb +13 -1
  172. data/lib/chef/resource/freebsd_package.rb +1 -1
  173. data/lib/chef/run_context.rb +15 -42
  174. data/lib/chef/sandbox.rb +20 -20
  175. data/lib/chef/version.rb +1 -1
  176. data/lib/chef/version_class.rb +7 -2
  177. data/lib/chef/win32/file.rb +4 -4
  178. data/lib/chef/win32/system.rb +0 -0
  179. data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -5
  180. data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -1
  181. data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -13
  182. data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -1
  183. data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -13
  184. data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -1
  185. data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -11
  186. data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -1
  187. data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -13
  188. data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -1
  189. data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -13
  190. data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -1
  191. data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
  192. data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -22
  193. data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -22
  194. data/spec/data/apt/var/www/apt/conf/distributions +7 -7
  195. data/spec/data/apt/var/www/apt/conf/incoming +4 -4
  196. data/spec/data/apt/var/www/apt/conf/pulls +3 -3
  197. data/spec/data/apt/var/www/apt/db/version +4 -4
  198. data/spec/data/apt/var/www/apt/dists/sid/Release +19 -19
  199. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -16
  200. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -5
  201. data/spec/data/bootstrap/encrypted_data_bag_secret +1 -1
  202. data/spec/data/bootstrap/no_proxy.erb +2 -2
  203. data/spec/data/bootstrap/secret.erb +9 -9
  204. data/spec/data/bootstrap/test-hints.erb +12 -12
  205. data/spec/data/bootstrap/test.erb +1 -1
  206. data/spec/data/cb_version_cookbooks/tatft/README.rdoc +2 -2
  207. data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -1
  208. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -1
  209. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -1
  210. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -1
  211. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -1
  212. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -1
  213. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -1
  214. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -1
  215. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -1
  216. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -1
  217. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -1
  218. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -1
  219. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -1
  220. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -1
  221. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -1
  222. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -1
  223. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -1
  224. data/spec/data/config.rb +6 -6
  225. data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
  226. data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
  227. data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
  228. data/spec/data/cookbooks/apache2/metadata.rb +2 -2
  229. data/spec/data/cookbooks/apache2/recipes/default.rb +2 -2
  230. data/spec/data/cookbooks/borken/metadata.rb +2 -2
  231. data/spec/data/cookbooks/borken/recipes/default.rb +1 -1
  232. data/spec/data/cookbooks/borken/templates/default/borken.erb +1 -1
  233. data/spec/data/cookbooks/chefignore +8 -8
  234. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -2
  235. data/spec/data/cookbooks/ignorken/metadata.rb +2 -2
  236. data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +1 -1
  237. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -2
  238. data/spec/data/cookbooks/java/files/default/java.response +1 -1
  239. data/spec/data/cookbooks/java/metadata.rb +2 -2
  240. data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -4
  241. data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -8
  242. data/spec/data/cookbooks/openldap/attributes/default.rb +16 -16
  243. data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
  244. data/spec/data/cookbooks/openldap/definitions/client.rb +5 -5
  245. data/spec/data/cookbooks/openldap/definitions/server.rb +5 -5
  246. data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -1
  247. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -1
  248. data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -2
  249. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +2 -2
  250. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +2 -2
  251. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -1
  252. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +2 -2
  253. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +2 -2
  254. data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -3
  255. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
  256. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -3
  257. data/spec/data/cookbooks/openldap/metadata.rb +8 -8
  258. data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
  259. data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
  260. data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
  261. data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
  262. data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
  263. data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
  264. data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -4
  265. data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -1
  266. data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -1
  267. data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -1
  268. data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -4
  269. data/spec/data/cookbooks/preseed/metadata.rb +2 -2
  270. data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +1 -1
  271. data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -1
  272. data/spec/data/definitions/test.rb +4 -4
  273. data/spec/data/environment-config.rb +4 -4
  274. data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -127
  275. data/spec/data/fileedit/hosts +4 -4
  276. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -4
  277. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -13
  278. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
  279. data/spec/data/kitchen/chefignore +6 -6
  280. data/spec/data/kitchen/openldap/attributes/default.rb +3 -3
  281. data/spec/data/kitchen/openldap/attributes/robinson.rb +2 -2
  282. data/spec/data/kitchen/openldap/definitions/client.rb +3 -3
  283. data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +2 -2
  284. data/spec/data/kitchen/openldap/recipes/gigantor.rb +2 -2
  285. data/spec/data/kitchen/openldap/recipes/ignoreme.rb +2 -2
  286. data/spec/data/kitchen/openldap/recipes/woot.rb +3 -3
  287. data/spec/data/knife_subcommand/test_explicit_category.rb +6 -6
  288. data/spec/data/knife_subcommand/test_name_mapping.rb +4 -4
  289. data/spec/data/knife_subcommand/test_yourself.rb +21 -21
  290. data/spec/data/lwrp/providers/inline_compiler.rb +26 -26
  291. data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -5
  292. data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -7
  293. data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -7
  294. data/spec/data/lwrp/resources/foo.rb +4 -4
  295. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -1
  296. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
  297. data/spec/data/mac_users/10.7-8.plist.xml +559 -559
  298. data/spec/data/mac_users/10.7-8.shadow.xml +11 -11
  299. data/spec/data/mac_users/10.7.plist.xml +559 -559
  300. data/spec/data/mac_users/10.7.shadow.xml +11 -11
  301. data/spec/data/mac_users/10.8.plist.xml +559 -559
  302. data/spec/data/mac_users/10.8.shadow.xml +21 -21
  303. data/spec/data/mac_users/10.9.plist.xml +560 -560
  304. data/spec/data/mac_users/10.9.shadow.xml +21 -21
  305. data/spec/data/metadata/quick_start/metadata.rb +19 -19
  306. data/spec/data/nodes/default.rb +15 -15
  307. data/spec/data/nodes/test.example.com.rb +17 -17
  308. data/spec/data/nodes/test.rb +15 -15
  309. data/spec/data/null_config.rb +1 -1
  310. data/spec/data/object_loader/environments/test.json +7 -7
  311. data/spec/data/object_loader/environments/test.rb +2 -2
  312. data/spec/data/object_loader/environments/test_json_class.json +8 -8
  313. data/spec/data/object_loader/nodes/test.json +7 -7
  314. data/spec/data/object_loader/nodes/test.rb +2 -2
  315. data/spec/data/object_loader/nodes/test_json_class.json +8 -8
  316. data/spec/data/object_loader/roles/test.json +7 -7
  317. data/spec/data/object_loader/roles/test.rb +2 -2
  318. data/spec/data/object_loader/roles/test_json_class.json +8 -8
  319. data/spec/data/partial_one.erb +1 -1
  320. data/spec/data/recipes/test.rb +7 -7
  321. data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -1
  322. data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -2
  323. data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -2
  324. data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -1
  325. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -1
  326. data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -1
  327. data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -2
  328. data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -2
  329. data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -1
  330. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -1
  331. data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
  332. data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
  333. data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
  334. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -1
  335. data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -1
  336. data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -2
  337. data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -1
  338. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -1
  339. data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -1
  340. data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -1
  341. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -1
  342. data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -1
  343. data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -2
  344. data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -2
  345. data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -1
  346. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -1
  347. data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -1
  348. data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -1
  349. data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -3
  350. data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -1
  351. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -1
  352. data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
  353. data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -9
  354. data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -5
  355. data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -1
  356. data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -1
  357. data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -5
  358. data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -7
  359. data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -7
  360. data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -1
  361. data/spec/data/run_context/nodes/run_context.rb +5 -5
  362. data/spec/data/search_queries_to_transform.txt +98 -98
  363. data/spec/data/shef-config.rb +10 -10
  364. data/spec/data/ssl/5e707473.0 +18 -18
  365. data/spec/data/ssl/chef-rspec.cert +27 -27
  366. data/spec/data/ssl/chef-rspec.key +27 -27
  367. data/spec/data/ssl/key.pem +15 -15
  368. data/spec/data/ssl/private_key.pem +27 -27
  369. data/spec/data/ssl/private_key_with_whitespace.pem +32 -32
  370. data/spec/data/standalone_cookbook/chefignore +9 -9
  371. data/spec/data/standalone_cookbook/recipes/default.rb +2 -2
  372. data/spec/data/trusted_certs/example.crt +22 -22
  373. data/spec/data/trusted_certs/intermediate.pem +27 -27
  374. data/spec/data/trusted_certs/root.pem +22 -22
  375. data/spec/functional/assets/chefinittest +34 -34
  376. data/spec/functional/assets/testchefsubsys +10 -10
  377. data/spec/functional/mixin/powershell_out_spec.rb +2 -2
  378. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -0
  379. data/spec/functional/resource/aix_service_spec.rb +0 -0
  380. data/spec/functional/resource/aixinit_service_spec.rb +0 -0
  381. data/spec/functional/resource/cron_spec.rb +8 -1
  382. data/spec/functional/resource/env_spec.rb +0 -0
  383. data/spec/functional/resource/link_spec.rb +1 -6
  384. data/spec/functional/run_lock_spec.rb +17 -10
  385. data/spec/integration/knife/diff_spec.rb +2 -2
  386. data/spec/integration/knife/download_spec.rb +4 -4
  387. data/spec/integration/knife/raw_spec.rb +2 -0
  388. data/spec/integration/knife/upload_spec.rb +3 -3
  389. data/spec/rcov.opts +2 -2
  390. data/spec/spec_helper.rb +11 -1
  391. data/spec/support/shared/integration/knife_support.rb +4 -0
  392. data/spec/unit/application/client_spec.rb +35 -0
  393. data/spec/unit/application/solo_spec.rb +6 -6
  394. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -0
  395. data/spec/unit/data_collector_spec.rb +41 -1
  396. data/spec/unit/dsl/declare_resource_spec.rb +30 -0
  397. data/spec/unit/knife/cookbook_site_install_spec.rb +2 -0
  398. data/spec/unit/knife/cookbook_site_share_spec.rb +4 -4
  399. data/spec/unit/node_spec.rb +6 -0
  400. data/spec/unit/provider/cron_spec.rb +16 -16
  401. data/spec/unit/provider/package/aix_spec.rb +13 -0
  402. data/spec/unit/provider/package/zypper_spec.rb +18 -2
  403. data/spec/unit/resource/apt_repository_spec.rb +14 -2
  404. data/spec/unit/resource/apt_update_spec.rb +14 -2
  405. data/spec/unit/resource_builder_spec.rb +1 -1
  406. data/tasks/bin/bundle-platform +0 -0
  407. data/tasks/bin/bundle-platform.bat +0 -0
  408. data/tasks/bin/create-override-gemfile +0 -0
  409. data/tasks/bin/run_external_test +0 -0
  410. data/tasks/bundle.rb +2 -2
  411. metadata +29 -15
  412. data/acceptance/data-collector/Berksfile.lock +0 -6
@@ -1,285 +1,285 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml">
6
- <head>
7
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
-
9
- <title>knife bootstrap &mdash; chef-client Man Pages</title>
10
-
11
- <link rel="stylesheet" href="_static/guide.css" type="text/css" />
12
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13
-
14
- <script type="text/javascript">
15
- var DOCUMENTATION_OPTIONS = {
16
- URL_ROOT: './',
17
- VERSION: '',
18
- COLLAPSE_INDEX: false,
19
- FILE_SUFFIX: '.html',
20
- HAS_SOURCE: true
21
- };
22
- </script>
23
- <script type="text/javascript" src="_static/jquery.js"></script>
24
- <script type="text/javascript" src="_static/underscore.js"></script>
25
- <script type="text/javascript" src="_static/doctools.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div style="background-color: #212c35; text-align: left; padding: 0px 0px 0px 0px">
31
- <a href="http://docs.getchef.com/"><img src="_static/chef_html_logo.png" border="0" alt="Chef"/></a>
32
- </div>
33
-
34
-
35
-
36
-
37
- <div class="document">
38
- <div class="documentwrapper">
39
-
40
- <div class="body">
41
-
42
- <div class="section" id="knife-bootstrap">
43
- <h1>knife bootstrap<a class="headerlink" href="#knife-bootstrap" title="Permalink to this headline">¶</a></h1>
44
- <p>A bootstrap is a process that installs the chef-client on a target system so that it can run as a chef-client and communicate with a Chef server.</p>
45
- <p>The <strong>knife bootstrap</strong> subcommand is used to run a bootstrap operation that installs the chef-client on the target system. The bootstrap operation must specify the IP address or FQDN of the target system.</p>
46
- <div class="admonition note">
47
- <p class="first admonition-title">Note</p>
48
- <p class="last">To bootstrap the chef-client on Microsoft Windows machines, the <a class="reference external" href="http://docs.opscode.com/plugin_knife_windows.html">knife-windows</a> plugins is required, which includes the necessary bootstrap scripts that are used to do the actual installation.</p>
49
- </div>
50
- <div class="section" id="syntax">
51
- <h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
52
- <p>This subcommand has the following syntax:</p>
53
- <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap FQDN_or_IP_ADDRESS <span class="o">(</span>options<span class="o">)</span>
54
- </pre></div>
55
- </div>
56
- </div>
57
- <div class="section" id="options">
58
- <h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
59
- <div class="admonition note">
60
- <p class="first admonition-title">Note</p>
61
- <p class="last">Review the list of <a class="reference internal" href="knife_common_options.html"><em>common options</em></a> available to this (and all) knife subcommands and plugins.</p>
62
- </div>
63
- <p>This subcommand has the following options:</p>
64
- <dl class="docutils">
65
- <dt><tt class="docutils literal"><span class="pre">-A</span></tt>, <tt class="docutils literal"><span class="pre">--forward-agent</span></tt></dt>
66
- <dd>Use to enable SSH agent forwarding.</dd>
67
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-curl-options</span> <span class="pre">OPTIONS</span></tt></dt>
68
- <dd>Use to specify arbitrary options to be added to the bootstrap command when using cURL. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-install-command</span></tt>.</dd>
69
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-install-command</span> <span class="pre">COMMAND</span></tt></dt>
70
- <dd>Use to execute a custom installation command sequence for the chef-client. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-curl-options</span></tt>, <tt class="docutils literal"><span class="pre">--bootstrap-install-sh</span></tt>, or <tt class="docutils literal"><span class="pre">--bootstrap-wget-options</span></tt>.</dd>
71
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-install-sh</span> <span class="pre">URL</span></tt></dt>
72
- <dd>Use to fetch and execute an installation script at the specified URL. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-install-command</span></tt>.</dd>
73
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-no-proxy</span> <span class="pre">NO_PROXY_URL_or_IP</span></tt></dt>
74
- <dd><p class="first">A URL or IP address that specifies a location that should not be proxied.</p>
75
- <div class="last admonition note">
76
- <p class="first admonition-title">Note</p>
77
- <p class="last">This option is used internally by Chef to help verify bootstrap operations during testing and should never be used during an actual bootstrap operation.</p>
78
- </div>
79
- </dd>
80
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-proxy</span> <span class="pre">PROXY_URL</span></tt></dt>
81
- <dd>The proxy server for the node that is the target of a bootstrap operation.</dd>
82
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-version</span> <span class="pre">VERSION</span></tt></dt>
83
- <dd>The version of the chef-client to install.</dd>
84
- <dt><tt class="docutils literal"><span class="pre">--bootstrap-wget-options</span> <span class="pre">OPTIONS</span></tt></dt>
85
- <dd>Use to specify arbitrary options to be added to the bootstrap command when using GNU Wget. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-install-command</span></tt>.</dd>
86
- <dt><tt class="docutils literal"><span class="pre">-E</span> <span class="pre">ENVIRONMENT</span></tt>, <tt class="docutils literal"><span class="pre">--environment</span> <span class="pre">ENVIRONMENT</span></tt></dt>
87
- <dd>The name of the environment. When this option is added to a command, the command will run only against the named environment.</dd>
88
- <dt><tt class="docutils literal"><span class="pre">-G</span> <span class="pre">GATEWAY</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-gateway</span> <span class="pre">GATEWAY</span></tt></dt>
89
- <dd>The SSH tunnel or gateway that is used to run a bootstrap action on a machine that is not accessible from the workstation.</dd>
90
- <dt><tt class="docutils literal"><span class="pre">--hint</span> <span class="pre">HINT_NAME[=HINT_FILE]</span></tt></dt>
91
- <dd><p class="first">Use to specify an Ohai hint to be set on the target node.</p>
92
- <p>Ohai hints are used to tell Ohai something about the system that it is running on that it would not be able to discover itself. An Ohai hint exists if a JSON file exists in the hint directory with the same name as the hint. For example, calling <tt class="docutils literal"><span class="pre">hint?('antartica')</span></tt> in an Ohai plugin would return an empty hash if the file <tt class="docutils literal"><span class="pre">antartica.json</span></tt> existed in the hints directory, and return nil if the file does not exist.</p>
93
- <p>If the hint file contains JSON content, it will be returned as a hash from the call to <tt class="docutils literal"><span class="pre">hint?</span></tt>.</p>
94
- <div class="highlight-javascript"><div class="highlight"><pre><span class="p">{</span>
95
- <span class="s2">&quot;snow&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
96
- <span class="s2">&quot;penguins&quot;</span><span class="o">:</span> <span class="s2">&quot;many&quot;</span>
97
- <span class="p">}</span>
98
- </pre></div>
99
- </div>
100
- <div class="highlight-ruby"><div class="highlight"><pre><span class="n">arctic_hint</span> <span class="o">=</span> <span class="n">hint?</span><span class="p">(</span><span class="s1">&#39;antartica&#39;</span><span class="p">)</span>
101
- <span class="k">if</span> <span class="n">arctic_hint</span><span class="o">[</span><span class="s1">&#39;snow&#39;</span><span class="o">]</span>
102
- <span class="s2">&quot;There are </span><span class="si">#{</span><span class="n">arctic_hint</span><span class="o">[</span><span class="s1">&#39;penguins&#39;</span><span class="o">]</span><span class="si">}</span><span class="s2"> penguins here.&quot;</span>
103
- <span class="k">else</span>
104
- <span class="s2">&quot;There is no snow here, and penguins like snow.&quot;</span>
105
- <span class="k">end</span>
106
- </pre></div>
107
- </div>
108
- <p>The default directory in which hint files are located is <tt class="docutils literal"><span class="pre">/etc/chef/ohai/hints/</span></tt>. Use the <tt class="docutils literal"><span class="pre">Ohai::Config[:hints_path]</span></tt> setting in the client.rb file to customize this location.</p>
109
- <p class="last"><tt class="docutils literal"><span class="pre">HINT_FILE</span></tt> is the name of the JSON file. <tt class="docutils literal"><span class="pre">HINT_NAME</span></tt> is the name of a hint in a JSON file. Use multiple <tt class="docutils literal"><span class="pre">--hint</span></tt> options to specify multiple hints.</p>
110
- </dd>
111
- <dt><tt class="docutils literal"><span class="pre">-i</span> <span class="pre">IDENTITY_FILE</span></tt>, <tt class="docutils literal"><span class="pre">--identity-file</span> <span class="pre">IDENTITY_FILE</span></tt></dt>
112
- <dd>The SSH identity file used for authentication. Key-based authentication is recommended.</dd>
113
- <dt><tt class="docutils literal"><span class="pre">-j</span> <span class="pre">JSON_ATTRIBS</span></tt>, <tt class="docutils literal"><span class="pre">--json-attributes</span> <span class="pre">JSON_ATTRIBS</span></tt></dt>
114
- <dd>A JSON string that is added to the first run of a chef-client.</dd>
115
- <dt><tt class="docutils literal"><span class="pre">-N</span> <span class="pre">NAME</span></tt>, <tt class="docutils literal"><span class="pre">--node-name</span> <span class="pre">NAME</span></tt></dt>
116
- <dd>The name of the node.</dd>
117
- <dt><tt class="docutils literal"><span class="pre">--[no-]host-key-verify</span></tt></dt>
118
- <dd>Use <tt class="docutils literal"><span class="pre">--no-host-key-verify</span></tt> to disable host key verification. Default setting: <tt class="docutils literal"><span class="pre">--host-key-verify</span></tt>.</dd>
119
- <dt><tt class="docutils literal"><span class="pre">--[no-]node-verify-api-cert</span></tt></dt>
120
- <dd>Use <tt class="docutils literal"><span class="pre">verify_api_cert</span></tt> to only do SSL validation of the Chef server connection; may be needed if the chef-client needs to talk to other services that have broken SSL certificates. If this option is not specified, the setting for <tt class="docutils literal"><span class="pre">verify_api_cert</span></tt> in the configuration file is applied.</dd>
121
- <dt><tt class="docutils literal"><span class="pre">--node-ssl-verify-mode</span> <span class="pre">PEER_OR_NONE</span></tt></dt>
122
- <dd><p class="first">The verify mode for HTTPS requests.</p>
123
- <p>Use <tt class="docutils literal"><span class="pre">:verify_none</span></tt> to do no validation of SSL certificates.</p>
124
- <p>Use <tt class="docutils literal"><span class="pre">:verify_peer</span></tt> to do validation of all SSL certificates, including the Chef server connections, S3 connections, and any HTTPS <strong>remote_file</strong> resource URLs used in the chef-client run. This is the recommended setting.</p>
125
- <p class="last">If this option is not specified, the setting for <tt class="docutils literal"><span class="pre">ssl_verify_mode</span></tt> in the configuration file is applied.</p>
126
- </dd>
127
- <dt><tt class="docutils literal"><span class="pre">-p</span> <span class="pre">PORT</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-port</span> <span class="pre">PORT</span></tt></dt>
128
- <dd>The SSH port.</dd>
129
- <dt><tt class="docutils literal"><span class="pre">-P</span> <span class="pre">PASSWORD</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-password</span> <span class="pre">PASSWORD</span></tt></dt>
130
- <dd>The SSH password. This can be used to pass the password directly on the command line. If this option is not specified (and a password is required) knife will prompt for the password.</dd>
131
- <dt><tt class="docutils literal"><span class="pre">--prerelease</span></tt></dt>
132
- <dd>Use to install pre-release gems.</dd>
133
- <dt><tt class="docutils literal"><span class="pre">-r</span> <span class="pre">RUN_LIST</span></tt>, <tt class="docutils literal"><span class="pre">--run-list</span> <span class="pre">RUN_LIST</span></tt></dt>
134
- <dd>A comma-separated list of roles and/or recipes to be applied.</dd>
135
- <dt><tt class="docutils literal"><span class="pre">--secret</span> <span class="pre">SECRET</span></tt></dt>
136
- <dd>The encryption key that is used for values contained within a data bag item.</dd>
137
- <dt><tt class="docutils literal"><span class="pre">--secret-file</span> <span class="pre">FILE</span></tt></dt>
138
- <dd>The path to the file that contains the encryption key.</dd>
139
- <dt><tt class="docutils literal"><span class="pre">--sudo</span></tt></dt>
140
- <dd>Use to execute a bootstrap operation with sudo.</dd>
141
- <dt><tt class="docutils literal"><span class="pre">-t</span> <span class="pre">TEMPLATE</span></tt>, <tt class="docutils literal"><span class="pre">--bootstrap-template</span> <span class="pre">TEMPLATE</span></tt></dt>
142
- <dd>Use to specify the bootstrap template to use. This may specify the name of a bootstrap template&#8212;<tt class="docutils literal"><span class="pre">chef-full</span></tt>, for example&#8212;or it may specify the full path to an Embedded Ruby (ERB) template that defines a custom bootstrap. Default value: <tt class="docutils literal"><span class="pre">chef-full</span></tt>, which installs the chef-client using the omnibus installer on all supported platforms.</dd>
143
- <dt><tt class="docutils literal"><span class="pre">--use-sudo-password</span></tt></dt>
144
- <dd>Use to perform a bootstrap operation with sudo; specify the password with the <tt class="docutils literal"><span class="pre">-P</span></tt> (or <tt class="docutils literal"><span class="pre">--ssh-password</span></tt>) option.</dd>
145
- <dt><tt class="docutils literal"><span class="pre">-V</span> <span class="pre">-V</span></tt></dt>
146
- <dd>Use to run the initial chef-client run at the <tt class="docutils literal"><span class="pre">debug</span></tt> log-level (e.g. <tt class="docutils literal"><span class="pre">chef-client</span> <span class="pre">-l</span> <span class="pre">debug</span></tt>).</dd>
147
- <dt><tt class="docutils literal"><span class="pre">-x</span> <span class="pre">USERNAME</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-user</span> <span class="pre">USERNAME</span></tt></dt>
148
- <dd>The SSH user name.</dd>
149
- </dl>
150
- </div>
151
- <div class="section" id="custom-templates">
152
- <h2>Custom Templates<a class="headerlink" href="#custom-templates" title="Permalink to this headline">¶</a></h2>
153
- <p>The <tt class="docutils literal"><span class="pre">chef-full</span></tt> distribution uses the omnibus installer. For most bootstrap operations, regardless of the platform on which the target node is running, using the <tt class="docutils literal"><span class="pre">chef-full</span></tt> distribution is the best approach for installing the chef-client on a target node. In some situations, using another supported distribution is necessary. And in some situations, a custom template may be required. For example, the default bootstrap operation relies on an Internet connection to get the distribution to the target node. If a target node cannot access the Internet, then a custom template can be used to define a specific location for the distribution so that the target node may access it during the bootstrap operation.</p>
154
- <p>A custom bootstrap template file (<tt class="docutils literal"><span class="pre">template_filename.erb</span></tt>) must be located in a <tt class="docutils literal"><span class="pre">bootstrap/</span></tt> directory. Use the <tt class="docutils literal"><span class="pre">--distro</span></tt> option with the <tt class="docutils literal"><span class="pre">knife</span> <span class="pre">bootstrap</span></tt> subcommand to specify the bootstrap template file. For example, a bootstrap template file named &#8220;british_sea_power.erb&#8221;:</p>
155
- <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 123.456.7.8 -x username -P password --sudo --distro <span class="s2">&quot;british_sea_power.erb&quot;</span>
156
- </pre></div>
157
- </div>
158
- <p>The following examples show how a bootstrap template file can be customized for various platforms.</p>
159
- <div class="section" id="ubuntu-12-04">
160
- <h3>Ubuntu 12.04<a class="headerlink" href="#ubuntu-12-04" title="Permalink to this headline">¶</a></h3>
161
- <p>The following example shows how to modify the default script for Ubuntu 12.04. First, copy the bootstrap template from the default location. If the chef-client is installed from a RubyGems, the full path can be found in the gem contents:</p>
162
- <div class="highlight-bash"><div class="highlight"><pre>% gem contents chef | grep ubuntu12.04-gems
163
- /Users/jtimberman/.rvm/gems/ruby-1.9.2-p180/gems/chef-0.10.2/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb
164
- </pre></div>
165
- </div>
166
- <p>Copy the template to the chef-repo in the <tt class="docutils literal"><span class="pre">.chef/bootstrap</span></tt> directory:</p>
167
- <div class="highlight-bash"><div class="highlight"><pre>% cp /Users/jtimberman/.rvm/gems/ruby-1.9.2-p180/gems/chef-0.10.2/
168
- lib/chef/knife/bootstrap/ubuntu12.04-gems.erb ~/chef-repo/.chef/
169
- bootstrap/ubuntu12.04-gems-mine.erb
170
- </pre></div>
171
- </div>
172
- <p>Modify the template with any editor, then use it with the <tt class="docutils literal"><span class="pre">-d</span></tt> or <tt class="docutils literal"><span class="pre">--distro</span></tt> option in the <tt class="docutils literal"><span class="pre">knife</span> <span class="pre">bootstrap</span></tt> operation, or use any of the knife plug-ins that support cloud computing.</p>
173
- <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 192.168.1.100 -r <span class="s1">&#39;role[webserver]&#39;</span> -d ubuntu12.04-gems-mine
174
- </pre></div>
175
- </div>
176
- <p>Alternatively, an example bootstrap template can be found in the git source for the chef-repo: <a class="reference external" href="https://github.com/opscode/chef/tree/master/lib/chef/knife/bootstrap">https://github.com/opscode/chef/tree/master/lib/chef/knife/bootstrap</a>. Copy the template to <tt class="docutils literal"><span class="pre">~/.chef-repo/.chef/bootstrap/ubuntu12.04-apt.erb</span></tt> and modify the template appropriately.</p>
177
- </div>
178
- <div class="section" id="debian-and-apt">
179
- <h3>Debian and Apt<a class="headerlink" href="#debian-and-apt" title="Permalink to this headline">¶</a></h3>
180
- <p>The following example shows how to use the <strong>knife bootstrap</strong> sub-command to create a client configuration file (/etc/chef/client.rb) that uses Hosted Chef as the Chef server. The configuration file will look something like:</p>
181
- <div class="highlight-ruby"><div class="highlight"><pre><span class="n">log_level</span> <span class="ss">:info</span>
182
- <span class="n">log_location</span> <span class="no">STDOUT</span>
183
- <span class="n">chef_server_url</span> <span class="s1">&#39;https://api.opscode.com/organizations/ORGNAME&#39;</span>
184
- <span class="n">validation_client_name</span> <span class="s1">&#39;ORGNAME-validator&#39;</span>
185
- </pre></div>
186
- </div>
187
- <p>The <strong>knife bootstrap</strong> sub-command will look in three locations for the template that is used during the bootstrap operation. The locations are:</p>
188
- <ol class="arabic simple">
189
- <li>A bootstrap directory in the installed knife library; the actual location may vary, depending how the chef-client is installed</li>
190
- <li>A bootstrap directory in the <tt class="docutils literal"><span class="pre">$PWD/.chef</span></tt>, e.g. in <tt class="docutils literal"><span class="pre">~/chef-repo/.chef</span></tt></li>
191
- <li>A bootstrap directory in the users <tt class="docutils literal"><span class="pre">$HOME/.chef</span></tt></li>
192
- </ol>
193
- <p>If, in the example above, the second location was used, then create the <tt class="docutils literal"><span class="pre">.chef/bootstrap/</span></tt> directory in the chef-repo, and then create the Embedded Ruby (ERB) template file by running commands similar to the following:</p>
194
- <div class="highlight-bash"><div class="highlight"><pre>mkdir ~/.chef/bootstrap
195
- vi ~/.chef/bootstrap/debian5.0-apt.erb
196
- </pre></div>
197
- </div>
198
- <p>When finished creating the directory and the Embedded Ruby (ERB) template file, edit the template to run the SSH commands. Then set up the validation certificate and the client configuration file.</p>
199
- <p>Finally, run the chef-client on the node using a <strong>knife bootstrap</strong> command that specifies a run-list (the <tt class="docutils literal"><span class="pre">-r</span></tt> option). The bootstrap template can be called using a command similar to the following:</p>
200
- <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap mynode.example.com -r <span class="s1">&#39;role[webserver]&#39;</span>,<span class="s1">&#39;role[production]&#39;</span> --distro debian5.0-apt
201
- </pre></div>
202
- </div>
203
- </div>
204
- <div class="section" id="microsoft-windows">
205
- <h3>Microsoft Windows<a class="headerlink" href="#microsoft-windows" title="Permalink to this headline">¶</a></h3>
206
- <p>The following example shows how to modify the default script for Microsoft Windows and Windows PowerShell:</p>
207
- <div class="highlight-bash"><div class="highlight"><pre>@setlocal
208
-
209
- &lt;%<span class="o">=</span> <span class="s2">&quot;SETX HTTP_PROXY \&quot;#{knife_config[:bootstrap_proxy]}\&quot;&quot;</span> <span class="k">if </span>knife_config<span class="o">[</span>:bootstrap_proxy<span class="o">]</span> %&gt;
210
- @mkdir &lt;%<span class="o">=</span> bootstrap_directory %&gt;
211
-
212
- &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\w</span>get.ps1 <span class="o">(</span>
213
- &lt;%<span class="o">=</span> win_wget_ps %&gt;
214
- <span class="o">)</span>
215
-
216
- :install
217
- @rem Install Chef using chef-client MSI installer
218
-
219
- &lt;% <span class="nv">url</span><span class="o">=</span><span class="s2">&quot;http://reposerver.example.com/chef-client-11.6.0.rc.1-1.windows.msi&quot;</span> -%&gt;
220
- @set <span class="s2">&quot;REMOTE_SOURCE_MSI_URL=&lt;%= url %&gt;&quot;</span>
221
- @set <span class="s2">&quot;LOCAL_DESTINATION_MSI_PATH=&lt;%= local_download_path %&gt;&quot;</span>
222
-
223
- @powershell -ExecutionPolicy Unrestricted -NoProfile -NonInteractive <span class="s2">&quot;&amp; &#39;&lt;%= bootstrap_directory %&gt;\wget.ps1&#39; &#39;%REMOTE_SOURCE_MSI_URL%&#39; &#39;%LOCAL_DESTINATION_MSI_PATH%&#39;&quot;</span>
224
-
225
- @REM Replace install_chef from knife-windows Gem with one that has extra flags to turn on Chef service feature -- only available in Chef &gt;<span class="o">=</span> 11.6.x
226
- @REM &lt;%<span class="o">=</span> install_chef %&gt;
227
- @echo Installing Chef Client 11.6.0.rc1 with msiexec
228
- @msiexec /q /i <span class="s2">&quot;%LOCAL_DESTINATION_MSI_PATH%&quot;</span> <span class="nv">ADDLOCAL</span><span class="o">=</span><span class="s2">&quot;ChefClientFeature,ChefServiceFeature&quot;</span>
229
- @endlocal
230
-
231
- @echo Writing validation key...
232
-
233
- &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\v</span>alidation.pem <span class="o">(</span>
234
- &lt;%<span class="o">=</span> validation_key %&gt;
235
- <span class="o">)</span>
236
-
237
- @echo Validation key written.
238
-
239
- &lt;% <span class="k">if</span> @config<span class="o">[</span>:encrypted_data_bag_secret<span class="o">]</span> -%&gt;
240
- &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\e</span>ncrypted_data_bag_secret <span class="o">(</span>
241
- &lt;%<span class="o">=</span> encrypted_data_bag_secret %&gt;
242
- <span class="o">)</span>
243
- &lt;% end -%&gt;
244
-
245
- &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\c</span>lient.rb <span class="o">(</span>
246
- &lt;%<span class="o">=</span> config_content %&gt;
247
- <span class="o">)</span>
248
-
249
- &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\f</span>irst-boot.json <span class="o">(</span>
250
- &lt;%<span class="o">=</span> run_list %&gt;
251
- <span class="o">)</span>
252
-
253
- &lt;%<span class="o">=</span> start_chef %&gt;
254
- </pre></div>
255
- </div>
256
- </div>
257
- </div>
258
- <div class="section" id="examples">
259
- <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
260
- <p>The following examples show how to use this knife subcommand:</p>
261
- <p><strong>Use an SSH password</strong></p>
262
- <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 192.168.1.1 -x username -P PASSWORD --sudo
263
- </pre></div>
264
- </div>
265
- <p><strong>Use a file that contains a private key</strong></p>
266
- <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 192.168.1.1 -x username -i ~/.ssh/id_rsa --sudo
267
- </pre></div>
268
- </div>
269
- </div>
270
- </div>
271
-
272
-
273
- </div>
274
-
275
- </div>
276
-
277
-
278
- <div class="clearer"></div>
279
- </div>
280
-
281
-
282
-
283
-
284
- </body>
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml">
6
+ <head>
7
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
+
9
+ <title>knife bootstrap &mdash; chef-client Man Pages</title>
10
+
11
+ <link rel="stylesheet" href="_static/guide.css" type="text/css" />
12
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13
+
14
+ <script type="text/javascript">
15
+ var DOCUMENTATION_OPTIONS = {
16
+ URL_ROOT: './',
17
+ VERSION: '',
18
+ COLLAPSE_INDEX: false,
19
+ FILE_SUFFIX: '.html',
20
+ HAS_SOURCE: true
21
+ };
22
+ </script>
23
+ <script type="text/javascript" src="_static/jquery.js"></script>
24
+ <script type="text/javascript" src="_static/underscore.js"></script>
25
+ <script type="text/javascript" src="_static/doctools.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div style="background-color: #212c35; text-align: left; padding: 0px 0px 0px 0px">
31
+ <a href="http://docs.getchef.com/"><img src="_static/chef_html_logo.png" border="0" alt="Chef"/></a>
32
+ </div>
33
+
34
+
35
+
36
+
37
+ <div class="document">
38
+ <div class="documentwrapper">
39
+
40
+ <div class="body">
41
+
42
+ <div class="section" id="knife-bootstrap">
43
+ <h1>knife bootstrap<a class="headerlink" href="#knife-bootstrap" title="Permalink to this headline">¶</a></h1>
44
+ <p>A bootstrap is a process that installs the chef-client on a target system so that it can run as a chef-client and communicate with a Chef server.</p>
45
+ <p>The <strong>knife bootstrap</strong> subcommand is used to run a bootstrap operation that installs the chef-client on the target system. The bootstrap operation must specify the IP address or FQDN of the target system.</p>
46
+ <div class="admonition note">
47
+ <p class="first admonition-title">Note</p>
48
+ <p class="last">To bootstrap the chef-client on Microsoft Windows machines, the <a class="reference external" href="http://docs.opscode.com/plugin_knife_windows.html">knife-windows</a> plugins is required, which includes the necessary bootstrap scripts that are used to do the actual installation.</p>
49
+ </div>
50
+ <div class="section" id="syntax">
51
+ <h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
52
+ <p>This subcommand has the following syntax:</p>
53
+ <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap FQDN_or_IP_ADDRESS <span class="o">(</span>options<span class="o">)</span>
54
+ </pre></div>
55
+ </div>
56
+ </div>
57
+ <div class="section" id="options">
58
+ <h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
59
+ <div class="admonition note">
60
+ <p class="first admonition-title">Note</p>
61
+ <p class="last">Review the list of <a class="reference internal" href="knife_common_options.html"><em>common options</em></a> available to this (and all) knife subcommands and plugins.</p>
62
+ </div>
63
+ <p>This subcommand has the following options:</p>
64
+ <dl class="docutils">
65
+ <dt><tt class="docutils literal"><span class="pre">-A</span></tt>, <tt class="docutils literal"><span class="pre">--forward-agent</span></tt></dt>
66
+ <dd>Use to enable SSH agent forwarding.</dd>
67
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-curl-options</span> <span class="pre">OPTIONS</span></tt></dt>
68
+ <dd>Use to specify arbitrary options to be added to the bootstrap command when using cURL. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-install-command</span></tt>.</dd>
69
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-install-command</span> <span class="pre">COMMAND</span></tt></dt>
70
+ <dd>Use to execute a custom installation command sequence for the chef-client. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-curl-options</span></tt>, <tt class="docutils literal"><span class="pre">--bootstrap-install-sh</span></tt>, or <tt class="docutils literal"><span class="pre">--bootstrap-wget-options</span></tt>.</dd>
71
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-install-sh</span> <span class="pre">URL</span></tt></dt>
72
+ <dd>Use to fetch and execute an installation script at the specified URL. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-install-command</span></tt>.</dd>
73
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-no-proxy</span> <span class="pre">NO_PROXY_URL_or_IP</span></tt></dt>
74
+ <dd><p class="first">A URL or IP address that specifies a location that should not be proxied.</p>
75
+ <div class="last admonition note">
76
+ <p class="first admonition-title">Note</p>
77
+ <p class="last">This option is used internally by Chef to help verify bootstrap operations during testing and should never be used during an actual bootstrap operation.</p>
78
+ </div>
79
+ </dd>
80
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-proxy</span> <span class="pre">PROXY_URL</span></tt></dt>
81
+ <dd>The proxy server for the node that is the target of a bootstrap operation.</dd>
82
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-version</span> <span class="pre">VERSION</span></tt></dt>
83
+ <dd>The version of the chef-client to install.</dd>
84
+ <dt><tt class="docutils literal"><span class="pre">--bootstrap-wget-options</span> <span class="pre">OPTIONS</span></tt></dt>
85
+ <dd>Use to specify arbitrary options to be added to the bootstrap command when using GNU Wget. This option may not be used in the same command with <tt class="docutils literal"><span class="pre">--bootstrap-install-command</span></tt>.</dd>
86
+ <dt><tt class="docutils literal"><span class="pre">-E</span> <span class="pre">ENVIRONMENT</span></tt>, <tt class="docutils literal"><span class="pre">--environment</span> <span class="pre">ENVIRONMENT</span></tt></dt>
87
+ <dd>The name of the environment. When this option is added to a command, the command will run only against the named environment.</dd>
88
+ <dt><tt class="docutils literal"><span class="pre">-G</span> <span class="pre">GATEWAY</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-gateway</span> <span class="pre">GATEWAY</span></tt></dt>
89
+ <dd>The SSH tunnel or gateway that is used to run a bootstrap action on a machine that is not accessible from the workstation.</dd>
90
+ <dt><tt class="docutils literal"><span class="pre">--hint</span> <span class="pre">HINT_NAME[=HINT_FILE]</span></tt></dt>
91
+ <dd><p class="first">Use to specify an Ohai hint to be set on the target node.</p>
92
+ <p>Ohai hints are used to tell Ohai something about the system that it is running on that it would not be able to discover itself. An Ohai hint exists if a JSON file exists in the hint directory with the same name as the hint. For example, calling <tt class="docutils literal"><span class="pre">hint?('antartica')</span></tt> in an Ohai plugin would return an empty hash if the file <tt class="docutils literal"><span class="pre">antartica.json</span></tt> existed in the hints directory, and return nil if the file does not exist.</p>
93
+ <p>If the hint file contains JSON content, it will be returned as a hash from the call to <tt class="docutils literal"><span class="pre">hint?</span></tt>.</p>
94
+ <div class="highlight-javascript"><div class="highlight"><pre><span class="p">{</span>
95
+ <span class="s2">&quot;snow&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
96
+ <span class="s2">&quot;penguins&quot;</span><span class="o">:</span> <span class="s2">&quot;many&quot;</span>
97
+ <span class="p">}</span>
98
+ </pre></div>
99
+ </div>
100
+ <div class="highlight-ruby"><div class="highlight"><pre><span class="n">arctic_hint</span> <span class="o">=</span> <span class="n">hint?</span><span class="p">(</span><span class="s1">&#39;antartica&#39;</span><span class="p">)</span>
101
+ <span class="k">if</span> <span class="n">arctic_hint</span><span class="o">[</span><span class="s1">&#39;snow&#39;</span><span class="o">]</span>
102
+ <span class="s2">&quot;There are </span><span class="si">#{</span><span class="n">arctic_hint</span><span class="o">[</span><span class="s1">&#39;penguins&#39;</span><span class="o">]</span><span class="si">}</span><span class="s2"> penguins here.&quot;</span>
103
+ <span class="k">else</span>
104
+ <span class="s2">&quot;There is no snow here, and penguins like snow.&quot;</span>
105
+ <span class="k">end</span>
106
+ </pre></div>
107
+ </div>
108
+ <p>The default directory in which hint files are located is <tt class="docutils literal"><span class="pre">/etc/chef/ohai/hints/</span></tt>. Use the <tt class="docutils literal"><span class="pre">Ohai::Config[:hints_path]</span></tt> setting in the client.rb file to customize this location.</p>
109
+ <p class="last"><tt class="docutils literal"><span class="pre">HINT_FILE</span></tt> is the name of the JSON file. <tt class="docutils literal"><span class="pre">HINT_NAME</span></tt> is the name of a hint in a JSON file. Use multiple <tt class="docutils literal"><span class="pre">--hint</span></tt> options to specify multiple hints.</p>
110
+ </dd>
111
+ <dt><tt class="docutils literal"><span class="pre">-i</span> <span class="pre">IDENTITY_FILE</span></tt>, <tt class="docutils literal"><span class="pre">--identity-file</span> <span class="pre">IDENTITY_FILE</span></tt></dt>
112
+ <dd>The SSH identity file used for authentication. Key-based authentication is recommended.</dd>
113
+ <dt><tt class="docutils literal"><span class="pre">-j</span> <span class="pre">JSON_ATTRIBS</span></tt>, <tt class="docutils literal"><span class="pre">--json-attributes</span> <span class="pre">JSON_ATTRIBS</span></tt></dt>
114
+ <dd>A JSON string that is added to the first run of a chef-client.</dd>
115
+ <dt><tt class="docutils literal"><span class="pre">-N</span> <span class="pre">NAME</span></tt>, <tt class="docutils literal"><span class="pre">--node-name</span> <span class="pre">NAME</span></tt></dt>
116
+ <dd>The name of the node.</dd>
117
+ <dt><tt class="docutils literal"><span class="pre">--[no-]host-key-verify</span></tt></dt>
118
+ <dd>Use <tt class="docutils literal"><span class="pre">--no-host-key-verify</span></tt> to disable host key verification. Default setting: <tt class="docutils literal"><span class="pre">--host-key-verify</span></tt>.</dd>
119
+ <dt><tt class="docutils literal"><span class="pre">--[no-]node-verify-api-cert</span></tt></dt>
120
+ <dd>Use <tt class="docutils literal"><span class="pre">verify_api_cert</span></tt> to only do SSL validation of the Chef server connection; may be needed if the chef-client needs to talk to other services that have broken SSL certificates. If this option is not specified, the setting for <tt class="docutils literal"><span class="pre">verify_api_cert</span></tt> in the configuration file is applied.</dd>
121
+ <dt><tt class="docutils literal"><span class="pre">--node-ssl-verify-mode</span> <span class="pre">PEER_OR_NONE</span></tt></dt>
122
+ <dd><p class="first">The verify mode for HTTPS requests.</p>
123
+ <p>Use <tt class="docutils literal"><span class="pre">:verify_none</span></tt> to do no validation of SSL certificates.</p>
124
+ <p>Use <tt class="docutils literal"><span class="pre">:verify_peer</span></tt> to do validation of all SSL certificates, including the Chef server connections, S3 connections, and any HTTPS <strong>remote_file</strong> resource URLs used in the chef-client run. This is the recommended setting.</p>
125
+ <p class="last">If this option is not specified, the setting for <tt class="docutils literal"><span class="pre">ssl_verify_mode</span></tt> in the configuration file is applied.</p>
126
+ </dd>
127
+ <dt><tt class="docutils literal"><span class="pre">-p</span> <span class="pre">PORT</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-port</span> <span class="pre">PORT</span></tt></dt>
128
+ <dd>The SSH port.</dd>
129
+ <dt><tt class="docutils literal"><span class="pre">-P</span> <span class="pre">PASSWORD</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-password</span> <span class="pre">PASSWORD</span></tt></dt>
130
+ <dd>The SSH password. This can be used to pass the password directly on the command line. If this option is not specified (and a password is required) knife will prompt for the password.</dd>
131
+ <dt><tt class="docutils literal"><span class="pre">--prerelease</span></tt></dt>
132
+ <dd>Use to install pre-release gems.</dd>
133
+ <dt><tt class="docutils literal"><span class="pre">-r</span> <span class="pre">RUN_LIST</span></tt>, <tt class="docutils literal"><span class="pre">--run-list</span> <span class="pre">RUN_LIST</span></tt></dt>
134
+ <dd>A comma-separated list of roles and/or recipes to be applied.</dd>
135
+ <dt><tt class="docutils literal"><span class="pre">--secret</span> <span class="pre">SECRET</span></tt></dt>
136
+ <dd>The encryption key that is used for values contained within a data bag item.</dd>
137
+ <dt><tt class="docutils literal"><span class="pre">--secret-file</span> <span class="pre">FILE</span></tt></dt>
138
+ <dd>The path to the file that contains the encryption key.</dd>
139
+ <dt><tt class="docutils literal"><span class="pre">--sudo</span></tt></dt>
140
+ <dd>Use to execute a bootstrap operation with sudo.</dd>
141
+ <dt><tt class="docutils literal"><span class="pre">-t</span> <span class="pre">TEMPLATE</span></tt>, <tt class="docutils literal"><span class="pre">--bootstrap-template</span> <span class="pre">TEMPLATE</span></tt></dt>
142
+ <dd>Use to specify the bootstrap template to use. This may specify the name of a bootstrap template&#8212;<tt class="docutils literal"><span class="pre">chef-full</span></tt>, for example&#8212;or it may specify the full path to an Embedded Ruby (ERB) template that defines a custom bootstrap. Default value: <tt class="docutils literal"><span class="pre">chef-full</span></tt>, which installs the chef-client using the omnibus installer on all supported platforms.</dd>
143
+ <dt><tt class="docutils literal"><span class="pre">--use-sudo-password</span></tt></dt>
144
+ <dd>Use to perform a bootstrap operation with sudo; specify the password with the <tt class="docutils literal"><span class="pre">-P</span></tt> (or <tt class="docutils literal"><span class="pre">--ssh-password</span></tt>) option.</dd>
145
+ <dt><tt class="docutils literal"><span class="pre">-V</span> <span class="pre">-V</span></tt></dt>
146
+ <dd>Use to run the initial chef-client run at the <tt class="docutils literal"><span class="pre">debug</span></tt> log-level (e.g. <tt class="docutils literal"><span class="pre">chef-client</span> <span class="pre">-l</span> <span class="pre">debug</span></tt>).</dd>
147
+ <dt><tt class="docutils literal"><span class="pre">-x</span> <span class="pre">USERNAME</span></tt>, <tt class="docutils literal"><span class="pre">--ssh-user</span> <span class="pre">USERNAME</span></tt></dt>
148
+ <dd>The SSH user name.</dd>
149
+ </dl>
150
+ </div>
151
+ <div class="section" id="custom-templates">
152
+ <h2>Custom Templates<a class="headerlink" href="#custom-templates" title="Permalink to this headline">¶</a></h2>
153
+ <p>The <tt class="docutils literal"><span class="pre">chef-full</span></tt> distribution uses the omnibus installer. For most bootstrap operations, regardless of the platform on which the target node is running, using the <tt class="docutils literal"><span class="pre">chef-full</span></tt> distribution is the best approach for installing the chef-client on a target node. In some situations, using another supported distribution is necessary. And in some situations, a custom template may be required. For example, the default bootstrap operation relies on an Internet connection to get the distribution to the target node. If a target node cannot access the Internet, then a custom template can be used to define a specific location for the distribution so that the target node may access it during the bootstrap operation.</p>
154
+ <p>A custom bootstrap template file (<tt class="docutils literal"><span class="pre">template_filename.erb</span></tt>) must be located in a <tt class="docutils literal"><span class="pre">bootstrap/</span></tt> directory. Use the <tt class="docutils literal"><span class="pre">--distro</span></tt> option with the <tt class="docutils literal"><span class="pre">knife</span> <span class="pre">bootstrap</span></tt> subcommand to specify the bootstrap template file. For example, a bootstrap template file named &#8220;british_sea_power.erb&#8221;:</p>
155
+ <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 123.456.7.8 -x username -P password --sudo --distro <span class="s2">&quot;british_sea_power.erb&quot;</span>
156
+ </pre></div>
157
+ </div>
158
+ <p>The following examples show how a bootstrap template file can be customized for various platforms.</p>
159
+ <div class="section" id="ubuntu-12-04">
160
+ <h3>Ubuntu 12.04<a class="headerlink" href="#ubuntu-12-04" title="Permalink to this headline">¶</a></h3>
161
+ <p>The following example shows how to modify the default script for Ubuntu 12.04. First, copy the bootstrap template from the default location. If the chef-client is installed from a RubyGems, the full path can be found in the gem contents:</p>
162
+ <div class="highlight-bash"><div class="highlight"><pre>% gem contents chef | grep ubuntu12.04-gems
163
+ /Users/jtimberman/.rvm/gems/ruby-1.9.2-p180/gems/chef-0.10.2/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb
164
+ </pre></div>
165
+ </div>
166
+ <p>Copy the template to the chef-repo in the <tt class="docutils literal"><span class="pre">.chef/bootstrap</span></tt> directory:</p>
167
+ <div class="highlight-bash"><div class="highlight"><pre>% cp /Users/jtimberman/.rvm/gems/ruby-1.9.2-p180/gems/chef-0.10.2/
168
+ lib/chef/knife/bootstrap/ubuntu12.04-gems.erb ~/chef-repo/.chef/
169
+ bootstrap/ubuntu12.04-gems-mine.erb
170
+ </pre></div>
171
+ </div>
172
+ <p>Modify the template with any editor, then use it with the <tt class="docutils literal"><span class="pre">-d</span></tt> or <tt class="docutils literal"><span class="pre">--distro</span></tt> option in the <tt class="docutils literal"><span class="pre">knife</span> <span class="pre">bootstrap</span></tt> operation, or use any of the knife plug-ins that support cloud computing.</p>
173
+ <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 192.168.1.100 -r <span class="s1">&#39;role[webserver]&#39;</span> -d ubuntu12.04-gems-mine
174
+ </pre></div>
175
+ </div>
176
+ <p>Alternatively, an example bootstrap template can be found in the git source for the chef-repo: <a class="reference external" href="https://github.com/opscode/chef/tree/master/lib/chef/knife/bootstrap">https://github.com/opscode/chef/tree/master/lib/chef/knife/bootstrap</a>. Copy the template to <tt class="docutils literal"><span class="pre">~/.chef-repo/.chef/bootstrap/ubuntu12.04-apt.erb</span></tt> and modify the template appropriately.</p>
177
+ </div>
178
+ <div class="section" id="debian-and-apt">
179
+ <h3>Debian and Apt<a class="headerlink" href="#debian-and-apt" title="Permalink to this headline">¶</a></h3>
180
+ <p>The following example shows how to use the <strong>knife bootstrap</strong> sub-command to create a client configuration file (/etc/chef/client.rb) that uses Hosted Chef as the Chef server. The configuration file will look something like:</p>
181
+ <div class="highlight-ruby"><div class="highlight"><pre><span class="n">log_level</span> <span class="ss">:info</span>
182
+ <span class="n">log_location</span> <span class="no">STDOUT</span>
183
+ <span class="n">chef_server_url</span> <span class="s1">&#39;https://api.opscode.com/organizations/ORGNAME&#39;</span>
184
+ <span class="n">validation_client_name</span> <span class="s1">&#39;ORGNAME-validator&#39;</span>
185
+ </pre></div>
186
+ </div>
187
+ <p>The <strong>knife bootstrap</strong> sub-command will look in three locations for the template that is used during the bootstrap operation. The locations are:</p>
188
+ <ol class="arabic simple">
189
+ <li>A bootstrap directory in the installed knife library; the actual location may vary, depending how the chef-client is installed</li>
190
+ <li>A bootstrap directory in the <tt class="docutils literal"><span class="pre">$PWD/.chef</span></tt>, e.g. in <tt class="docutils literal"><span class="pre">~/chef-repo/.chef</span></tt></li>
191
+ <li>A bootstrap directory in the users <tt class="docutils literal"><span class="pre">$HOME/.chef</span></tt></li>
192
+ </ol>
193
+ <p>If, in the example above, the second location was used, then create the <tt class="docutils literal"><span class="pre">.chef/bootstrap/</span></tt> directory in the chef-repo, and then create the Embedded Ruby (ERB) template file by running commands similar to the following:</p>
194
+ <div class="highlight-bash"><div class="highlight"><pre>mkdir ~/.chef/bootstrap
195
+ vi ~/.chef/bootstrap/debian5.0-apt.erb
196
+ </pre></div>
197
+ </div>
198
+ <p>When finished creating the directory and the Embedded Ruby (ERB) template file, edit the template to run the SSH commands. Then set up the validation certificate and the client configuration file.</p>
199
+ <p>Finally, run the chef-client on the node using a <strong>knife bootstrap</strong> command that specifies a run-list (the <tt class="docutils literal"><span class="pre">-r</span></tt> option). The bootstrap template can be called using a command similar to the following:</p>
200
+ <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap mynode.example.com -r <span class="s1">&#39;role[webserver]&#39;</span>,<span class="s1">&#39;role[production]&#39;</span> --distro debian5.0-apt
201
+ </pre></div>
202
+ </div>
203
+ </div>
204
+ <div class="section" id="microsoft-windows">
205
+ <h3>Microsoft Windows<a class="headerlink" href="#microsoft-windows" title="Permalink to this headline">¶</a></h3>
206
+ <p>The following example shows how to modify the default script for Microsoft Windows and Windows PowerShell:</p>
207
+ <div class="highlight-bash"><div class="highlight"><pre>@setlocal
208
+
209
+ &lt;%<span class="o">=</span> <span class="s2">&quot;SETX HTTP_PROXY \&quot;#{knife_config[:bootstrap_proxy]}\&quot;&quot;</span> <span class="k">if </span>knife_config<span class="o">[</span>:bootstrap_proxy<span class="o">]</span> %&gt;
210
+ @mkdir &lt;%<span class="o">=</span> bootstrap_directory %&gt;
211
+
212
+ &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\w</span>get.ps1 <span class="o">(</span>
213
+ &lt;%<span class="o">=</span> win_wget_ps %&gt;
214
+ <span class="o">)</span>
215
+
216
+ :install
217
+ @rem Install Chef using chef-client MSI installer
218
+
219
+ &lt;% <span class="nv">url</span><span class="o">=</span><span class="s2">&quot;http://reposerver.example.com/chef-client-11.6.0.rc.1-1.windows.msi&quot;</span> -%&gt;
220
+ @set <span class="s2">&quot;REMOTE_SOURCE_MSI_URL=&lt;%= url %&gt;&quot;</span>
221
+ @set <span class="s2">&quot;LOCAL_DESTINATION_MSI_PATH=&lt;%= local_download_path %&gt;&quot;</span>
222
+
223
+ @powershell -ExecutionPolicy Unrestricted -NoProfile -NonInteractive <span class="s2">&quot;&amp; &#39;&lt;%= bootstrap_directory %&gt;\wget.ps1&#39; &#39;%REMOTE_SOURCE_MSI_URL%&#39; &#39;%LOCAL_DESTINATION_MSI_PATH%&#39;&quot;</span>
224
+
225
+ @REM Replace install_chef from knife-windows Gem with one that has extra flags to turn on Chef service feature -- only available in Chef &gt;<span class="o">=</span> 11.6.x
226
+ @REM &lt;%<span class="o">=</span> install_chef %&gt;
227
+ @echo Installing Chef Client 11.6.0.rc1 with msiexec
228
+ @msiexec /q /i <span class="s2">&quot;%LOCAL_DESTINATION_MSI_PATH%&quot;</span> <span class="nv">ADDLOCAL</span><span class="o">=</span><span class="s2">&quot;ChefClientFeature,ChefServiceFeature&quot;</span>
229
+ @endlocal
230
+
231
+ @echo Writing validation key...
232
+
233
+ &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\v</span>alidation.pem <span class="o">(</span>
234
+ &lt;%<span class="o">=</span> validation_key %&gt;
235
+ <span class="o">)</span>
236
+
237
+ @echo Validation key written.
238
+
239
+ &lt;% <span class="k">if</span> @config<span class="o">[</span>:encrypted_data_bag_secret<span class="o">]</span> -%&gt;
240
+ &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\e</span>ncrypted_data_bag_secret <span class="o">(</span>
241
+ &lt;%<span class="o">=</span> encrypted_data_bag_secret %&gt;
242
+ <span class="o">)</span>
243
+ &lt;% end -%&gt;
244
+
245
+ &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\c</span>lient.rb <span class="o">(</span>
246
+ &lt;%<span class="o">=</span> config_content %&gt;
247
+ <span class="o">)</span>
248
+
249
+ &gt; &lt;%<span class="o">=</span> bootstrap_directory %&gt;<span class="se">\f</span>irst-boot.json <span class="o">(</span>
250
+ &lt;%<span class="o">=</span> run_list %&gt;
251
+ <span class="o">)</span>
252
+
253
+ &lt;%<span class="o">=</span> start_chef %&gt;
254
+ </pre></div>
255
+ </div>
256
+ </div>
257
+ </div>
258
+ <div class="section" id="examples">
259
+ <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
260
+ <p>The following examples show how to use this knife subcommand:</p>
261
+ <p><strong>Use an SSH password</strong></p>
262
+ <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 192.168.1.1 -x username -P PASSWORD --sudo
263
+ </pre></div>
264
+ </div>
265
+ <p><strong>Use a file that contains a private key</strong></p>
266
+ <div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>knife bootstrap 192.168.1.1 -x username -i ~/.ssh/id_rsa --sudo
267
+ </pre></div>
268
+ </div>
269
+ </div>
270
+ </div>
271
+
272
+
273
+ </div>
274
+
275
+ </div>
276
+
277
+
278
+ <div class="clearer"></div>
279
+ </div>
280
+
281
+
282
+
283
+
284
+ </body>
285
285
  </html>