chef 12.10.24 → 12.11.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (523) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +3 -38
  3. data/Gemfile +6 -11
  4. data/LICENSE +201 -201
  5. data/README.md +11 -1
  6. data/VERSION +1 -1
  7. data/acceptance/.bundle/config +2 -0
  8. data/acceptance/Gemfile.lock +27 -26
  9. data/acceptance/basics/.kitchen/logs/chef-current-install-ubuntu-1404.log +2 -0
  10. data/acceptance/basics/.kitchen/logs/kitchen.log +3 -0
  11. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +2 -0
  12. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +3 -0
  13. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +2 -0
  14. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +2 -0
  15. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +2 -0
  16. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +16 -0
  17. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +3 -0
  18. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +85 -0
  19. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +3 -0
  20. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +4 -0
  21. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +4 -0
  22. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +2 -0
  23. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +4 -0
  24. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +2 -0
  25. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +7 -0
  26. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +38 -0
  27. data/acceptance/data-collector/.kitchen.yml +9 -0
  28. data/acceptance/data-collector/Berksfile +3 -0
  29. data/acceptance/data-collector/Berksfile.lock +6 -0
  30. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +251 -0
  31. data/acceptance/fips/.kitchen/logs/fips-integration-centos-6.log +3 -0
  32. data/acceptance/fips/.kitchen/logs/fips-integration-windows-2012r2.log +3 -0
  33. data/acceptance/fips/.kitchen/logs/fips-unit-functional-centos-6.log +3 -0
  34. data/acceptance/fips/.kitchen/logs/fips-unit-functional-windows-2012r2.log +3 -0
  35. data/acceptance/fips/.kitchen/logs/kitchen.log +6 -0
  36. data/acceptance/fips/test/integration/fips-integration/serverspec/fips-integration_spec.rb +2 -1
  37. data/acceptance/top-cookbooks/.kitchen.docker.yml +1 -4
  38. data/acceptance/trivial/.kitchen/logs/chef-current-install-windows-2012r2.log +2 -0
  39. data/acceptance/trivial/.kitchen/logs/kitchen.log +3 -0
  40. data/acceptance/windows-service/.kitchen/logs/chef-windows-service-windows-2012r2.log +2 -0
  41. data/acceptance/windows-service/.kitchen/logs/kitchen.log +3 -0
  42. data/bin/chef-apply +0 -0
  43. data/bin/chef-client +0 -0
  44. data/bin/chef-shell +0 -0
  45. data/bin/chef-solo +0 -0
  46. data/bin/knife +0 -0
  47. data/chef.gemspec +1 -0
  48. data/distro/common/html/_sources/ctl_chef_client.txt +35 -35
  49. data/distro/common/html/_sources/ctl_chef_server.txt +341 -341
  50. data/distro/common/html/_sources/ctl_chef_shell.txt +15 -15
  51. data/distro/common/html/_sources/ctl_chef_solo.txt +25 -25
  52. data/distro/common/html/_sources/index.txt +135 -135
  53. data/distro/common/html/_sources/knife.txt +74 -74
  54. data/distro/common/html/_sources/knife_bootstrap.txt +56 -56
  55. data/distro/common/html/_sources/knife_client.txt +150 -150
  56. data/distro/common/html/_sources/knife_common_options.txt +6 -6
  57. data/distro/common/html/_sources/knife_configure.txt +29 -29
  58. data/distro/common/html/_sources/knife_cookbook.txt +236 -236
  59. data/distro/common/html/_sources/knife_cookbook_site.txt +157 -157
  60. data/distro/common/html/_sources/knife_data_bag.txt +159 -159
  61. data/distro/common/html/_sources/knife_delete.txt +26 -26
  62. data/distro/common/html/_sources/knife_deps.txt +61 -61
  63. data/distro/common/html/_sources/knife_diff.txt +34 -34
  64. data/distro/common/html/_sources/knife_download.txt +44 -44
  65. data/distro/common/html/_sources/knife_edit.txt +26 -26
  66. data/distro/common/html/_sources/knife_environment.txt +158 -158
  67. data/distro/common/html/_sources/knife_exec.txt +47 -47
  68. data/distro/common/html/_sources/knife_index_rebuild.txt +20 -20
  69. data/distro/common/html/_sources/knife_list.txt +33 -33
  70. data/distro/common/html/_sources/knife_node.txt +250 -250
  71. data/distro/common/html/_sources/knife_raw.txt +35 -35
  72. data/distro/common/html/_sources/knife_recipe_list.txt +23 -23
  73. data/distro/common/html/_sources/knife_role.txt +157 -157
  74. data/distro/common/html/_sources/knife_search.txt +53 -53
  75. data/distro/common/html/_sources/knife_serve.txt +18 -18
  76. data/distro/common/html/_sources/knife_show.txt +26 -26
  77. data/distro/common/html/_sources/knife_ssh.txt +43 -43
  78. data/distro/common/html/_sources/knife_ssl_check.txt +41 -41
  79. data/distro/common/html/_sources/knife_ssl_fetch.txt +41 -41
  80. data/distro/common/html/_sources/knife_status.txt +37 -37
  81. data/distro/common/html/_sources/knife_tag.txt +69 -69
  82. data/distro/common/html/_sources/knife_upload.txt +49 -49
  83. data/distro/common/html/_sources/knife_user.txt +127 -127
  84. data/distro/common/html/_sources/knife_using.txt +43 -43
  85. data/distro/common/html/_sources/knife_xargs.txt +30 -30
  86. data/distro/common/html/_static/guide.css +504 -504
  87. data/distro/common/html/_static/pygments.css +61 -61
  88. data/distro/common/html/_static/underscore.js +31 -31
  89. data/distro/common/html/ctl_chef_client.html +269 -269
  90. data/distro/common/html/ctl_chef_server.html +727 -727
  91. data/distro/common/html/ctl_chef_shell.html +162 -162
  92. data/distro/common/html/ctl_chef_solo.html +193 -193
  93. data/distro/common/html/index.html +201 -201
  94. data/distro/common/html/knife.html +169 -169
  95. data/distro/common/html/knife_bootstrap.html +284 -284
  96. data/distro/common/html/knife_client.html +284 -284
  97. data/distro/common/html/knife_common_options.html +95 -95
  98. data/distro/common/html/knife_configure.html +104 -104
  99. data/distro/common/html/knife_cookbook.html +486 -486
  100. data/distro/common/html/knife_data_bag.html +373 -373
  101. data/distro/common/html/knife_delete.html +92 -92
  102. data/distro/common/html/knife_deps.html +142 -142
  103. data/distro/common/html/knife_diff.html +122 -122
  104. data/distro/common/html/knife_download.html +144 -144
  105. data/distro/common/html/knife_edit.html +88 -88
  106. data/distro/common/html/knife_environment.html +325 -325
  107. data/distro/common/html/knife_exec.html +219 -219
  108. data/distro/common/html/knife_index_rebuild.html +82 -82
  109. data/distro/common/html/knife_list.html +113 -113
  110. data/distro/common/html/knife_node.html +457 -457
  111. data/distro/common/html/knife_raw.html +109 -109
  112. data/distro/common/html/knife_recipe_list.html +90 -90
  113. data/distro/common/html/knife_role.html +294 -294
  114. data/distro/common/html/knife_search.html +202 -202
  115. data/distro/common/html/knife_serve.html +78 -78
  116. data/distro/common/html/knife_show.html +103 -103
  117. data/distro/common/html/knife_ssh.html +176 -176
  118. data/distro/common/html/knife_ssl_check.html +150 -150
  119. data/distro/common/html/knife_ssl_fetch.html +150 -150
  120. data/distro/common/html/knife_status.html +143 -143
  121. data/distro/common/html/knife_tag.html +137 -137
  122. data/distro/common/html/knife_upload.html +152 -152
  123. data/distro/common/html/knife_user.html +241 -241
  124. data/distro/common/html/knife_using.html +209 -209
  125. data/distro/common/html/knife_xargs.html +121 -121
  126. data/distro/common/html/search.html +81 -81
  127. data/distro/common/man/man1/README.md +58 -58
  128. data/distro/common/man/man1/chef-shell.1 +194 -194
  129. data/distro/common/man/man1/knife-bootstrap.1 +215 -215
  130. data/distro/common/man/man1/knife-client.1 +443 -443
  131. data/distro/common/man/man1/knife-configure.1 +161 -161
  132. data/distro/common/man/man1/knife-cookbook.1 +770 -770
  133. data/distro/common/man/man1/knife-data-bag.1 +617 -617
  134. data/distro/common/man/man1/knife-delete.1 +127 -127
  135. data/distro/common/man/man1/knife-deps.1 +246 -246
  136. data/distro/common/man/man1/knife-diff.1 +226 -226
  137. data/distro/common/man/man1/knife-download.1 +258 -258
  138. data/distro/common/man/man1/knife-edit.1 +121 -121
  139. data/distro/common/man/man1/knife-environment.1 +508 -508
  140. data/distro/common/man/man1/knife-exec.1 +362 -362
  141. data/distro/common/man/man1/knife-index-rebuild.1 +63 -63
  142. data/distro/common/man/man1/knife-list.1 +174 -174
  143. data/distro/common/man/man1/knife-node.1 +716 -716
  144. data/distro/common/man/man1/knife-raw.1 +172 -172
  145. data/distro/common/man/man1/knife-recipe-list.1 +85 -85
  146. data/distro/common/man/man1/knife-role.1 +426 -426
  147. data/distro/common/man/man1/knife-search.1 +359 -359
  148. data/distro/common/man/man1/knife-serve.1 +109 -109
  149. data/distro/common/man/man1/knife-show.1 +160 -160
  150. data/distro/common/man/man1/knife-ssh.1 +284 -284
  151. data/distro/common/man/man1/knife-ssl-check.1 +207 -207
  152. data/distro/common/man/man1/knife-ssl-fetch.1 +207 -207
  153. data/distro/common/man/man1/knife-status.1 +234 -234
  154. data/distro/common/man/man1/knife-tag.1 +189 -189
  155. data/distro/common/man/man1/knife-upload.1 +280 -280
  156. data/distro/common/man/man1/knife-user.1 +356 -356
  157. data/distro/common/man/man1/knife-xargs.1 +189 -189
  158. data/distro/common/man/man1/knife.1 +332 -332
  159. data/distro/common/man/man8/chef-apply.8 +86 -86
  160. data/distro/common/man/man8/chef-client.8 +398 -398
  161. data/distro/common/man/man8/chef-solo.8 +260 -260
  162. data/distro/common/markdown/README +3 -3
  163. data/lib/chef/application.rb +14 -9
  164. data/lib/chef/application/apply.rb +5 -5
  165. data/lib/chef/application/client.rb +3 -3
  166. data/lib/chef/application/exit_code.rb +226 -0
  167. data/lib/chef/application/solo.rb +37 -7
  168. data/lib/chef/application/windows_service.rb +3 -3
  169. data/lib/chef/chef_fs/command_line.rb +7 -0
  170. data/lib/chef/chef_fs/config.rb +1 -1
  171. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +11 -10
  172. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
  173. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
  174. data/lib/chef/chef_fs/file_system.rb +15 -13
  175. data/lib/chef/chef_fs/file_system/base_fs_object.rb +4 -0
  176. data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +1 -1
  177. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +9 -0
  178. data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +6 -0
  179. data/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb +19 -0
  180. data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +1 -1
  181. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +1 -1
  182. data/lib/chef/chef_fs/file_system/chef_server/org_entry.rb +4 -0
  183. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +4 -0
  184. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +4 -0
  185. data/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb +4 -0
  186. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +3 -3
  187. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +15 -4
  188. data/lib/chef/chef_fs/file_system/exceptions.rb +7 -0
  189. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +2 -2
  190. data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +0 -4
  191. data/lib/chef/chef_fs/file_system/repository/acl.rb +7 -0
  192. data/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb +0 -4
  193. data/lib/chef/chef_fs/file_system/repository/base_file.rb +36 -4
  194. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +4 -0
  195. data/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb +0 -4
  196. data/lib/chef/chef_fs/file_system/repository/clients_dir.rb +0 -3
  197. data/lib/chef/chef_fs/file_system/repository/containers_dir.rb +0 -4
  198. data/lib/chef/chef_fs/file_system/repository/directory.rb +4 -0
  199. data/lib/chef/chef_fs/file_system/repository/environments_dir.rb +0 -4
  200. data/lib/chef/chef_fs/file_system/repository/groups_dir.rb +0 -4
  201. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +0 -4
  202. data/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb +0 -4
  203. data/lib/chef/chef_fs/file_system/repository/roles_dir.rb +0 -4
  204. data/lib/chef/chef_fs/file_system/repository/users_dir.rb +0 -4
  205. data/lib/chef/client.rb +11 -3
  206. data/lib/chef/config_fetcher.rb +4 -4
  207. data/lib/chef/cookbook/gem_installer.rb +1 -0
  208. data/lib/chef/cookbook/synchronizer.rb +1 -1
  209. data/lib/chef/data_bag.rb +2 -2
  210. data/lib/chef/data_bag_item.rb +1 -1
  211. data/lib/chef/data_collector.rb +345 -0
  212. data/lib/chef/data_collector/messages.rb +125 -0
  213. data/lib/chef/data_collector/messages/helpers.rb +161 -0
  214. data/lib/chef/data_collector/resource_report.rb +84 -0
  215. data/lib/chef/decorator.rb +81 -0
  216. data/lib/chef/decorator/lazy.rb +60 -0
  217. data/lib/chef/decorator/lazy_array.rb +59 -0
  218. data/lib/chef/deprecation/provider/remote_file.rb +1 -1
  219. data/lib/chef/dsl/core.rb +19 -11
  220. data/lib/chef/dsl/platform_introspection.rb +16 -0
  221. data/lib/chef/dsl/recipe.rb +15 -9
  222. data/lib/chef/dsl/universal.rb +50 -0
  223. data/lib/chef/environment.rb +2 -2
  224. data/lib/chef/exceptions.rb +19 -4
  225. data/lib/chef/handler.rb +33 -0
  226. data/lib/chef/knife/cookbook_show.rb +6 -10
  227. data/lib/chef/knife/cookbook_site_install.rb +7 -2
  228. data/lib/chef/knife/help_topics.rb +4 -4
  229. data/lib/chef/knife/list.rb +1 -2
  230. data/lib/chef/knife/ssl_check.rb +2 -1
  231. data/lib/chef/monkey_patches/win32/registry.rb +11 -0
  232. data/lib/chef/nil_argument.rb +3 -3
  233. data/lib/chef/node.rb +2 -2
  234. data/lib/chef/platform/rebooter.rb +13 -2
  235. data/lib/chef/policy_builder/dynamic.rb +1 -1
  236. data/lib/chef/policy_builder/expand_node_object.rb +3 -3
  237. data/lib/chef/policy_builder/policyfile.rb +1 -1
  238. data/lib/chef/provider/git.rb +43 -41
  239. data/lib/chef/provider/lwrp_base.rb +0 -1
  240. data/lib/chef/provider/osx_profile.rb +2 -3
  241. data/lib/chef/provider/package.rb +51 -13
  242. data/lib/chef/provider/package/apt.rb +97 -103
  243. data/lib/chef/provider/package/chocolatey.rb +9 -10
  244. data/lib/chef/provider/package/dpkg.rb +2 -2
  245. data/lib/chef/provider/package/portage.rb +1 -1
  246. data/lib/chef/provider/package/rubygems.rb +8 -12
  247. data/lib/chef/provider/package/yum.rb +4 -959
  248. data/lib/chef/provider/package/yum/rpm_utils.rb +642 -0
  249. data/lib/chef/provider/package/{yum-dump.py → yum/yum-dump.py} +0 -0
  250. data/lib/chef/provider/package/yum/yum_cache.rb +376 -0
  251. data/lib/chef/provider/resource_update.rb +52 -52
  252. data/lib/chef/provider/systemd_unit.rb +238 -0
  253. data/lib/chef/providers.rb +1 -0
  254. data/lib/chef/reserved_names.rb +9 -9
  255. data/lib/chef/resource.rb +2 -7
  256. data/lib/chef/resource/file.rb +6 -1
  257. data/lib/chef/resource/systemd_unit.rb +63 -0
  258. data/lib/chef/resources.rb +1 -0
  259. data/lib/chef/sandbox.rb +20 -20
  260. data/lib/chef/shell/shell_session.rb +3 -3
  261. data/lib/chef/version.rb +1 -1
  262. data/lib/chef/win32/system.rb +0 -0
  263. data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -5
  264. data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -1
  265. data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -13
  266. data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -1
  267. data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -13
  268. data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -1
  269. data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -11
  270. data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -1
  271. data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -13
  272. data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -1
  273. data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -13
  274. data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -1
  275. data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
  276. data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -22
  277. data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -22
  278. data/spec/data/apt/var/www/apt/conf/distributions +7 -7
  279. data/spec/data/apt/var/www/apt/conf/incoming +4 -4
  280. data/spec/data/apt/var/www/apt/conf/pulls +3 -3
  281. data/spec/data/apt/var/www/apt/db/version +4 -4
  282. data/spec/data/apt/var/www/apt/dists/sid/Release +19 -19
  283. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -16
  284. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -5
  285. data/spec/data/bootstrap/encrypted_data_bag_secret +1 -1
  286. data/spec/data/bootstrap/no_proxy.erb +2 -2
  287. data/spec/data/bootstrap/secret.erb +9 -9
  288. data/spec/data/bootstrap/test-hints.erb +12 -12
  289. data/spec/data/bootstrap/test.erb +1 -1
  290. data/spec/data/cb_version_cookbooks/tatft/README.rdoc +2 -2
  291. data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -1
  292. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -1
  293. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -1
  294. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -1
  295. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -1
  296. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -1
  297. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -1
  298. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -1
  299. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -1
  300. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -1
  301. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -1
  302. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -1
  303. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -1
  304. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -1
  305. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -1
  306. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -1
  307. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -1
  308. data/spec/data/config.rb +6 -6
  309. data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
  310. data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
  311. data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
  312. data/spec/data/cookbooks/apache2/metadata.rb +2 -2
  313. data/spec/data/cookbooks/apache2/recipes/default.rb +2 -2
  314. data/spec/data/cookbooks/borken/metadata.rb +2 -2
  315. data/spec/data/cookbooks/borken/recipes/default.rb +1 -1
  316. data/spec/data/cookbooks/borken/templates/default/borken.erb +1 -1
  317. data/spec/data/cookbooks/chefignore +8 -8
  318. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -2
  319. data/spec/data/cookbooks/ignorken/metadata.rb +2 -2
  320. data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +1 -1
  321. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -2
  322. data/spec/data/cookbooks/java/files/default/java.response +1 -1
  323. data/spec/data/cookbooks/java/metadata.rb +2 -2
  324. data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -4
  325. data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -8
  326. data/spec/data/cookbooks/openldap/attributes/default.rb +16 -16
  327. data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
  328. data/spec/data/cookbooks/openldap/definitions/client.rb +5 -5
  329. data/spec/data/cookbooks/openldap/definitions/server.rb +5 -5
  330. data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -1
  331. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -1
  332. data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -2
  333. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +2 -2
  334. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +2 -2
  335. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -1
  336. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +2 -2
  337. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +2 -2
  338. data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -3
  339. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
  340. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -3
  341. data/spec/data/cookbooks/openldap/metadata.rb +8 -8
  342. data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
  343. data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
  344. data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
  345. data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
  346. data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
  347. data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
  348. data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -4
  349. data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -1
  350. data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -1
  351. data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -1
  352. data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -4
  353. data/spec/data/cookbooks/preseed/metadata.rb +2 -2
  354. data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +1 -1
  355. data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -1
  356. data/spec/data/definitions/test.rb +4 -4
  357. data/spec/data/environment-config.rb +4 -4
  358. data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -127
  359. data/spec/data/fileedit/hosts +4 -4
  360. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -4
  361. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -13
  362. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
  363. data/spec/data/kitchen/chefignore +6 -6
  364. data/spec/data/kitchen/openldap/attributes/default.rb +3 -3
  365. data/spec/data/kitchen/openldap/attributes/robinson.rb +2 -2
  366. data/spec/data/kitchen/openldap/definitions/client.rb +3 -3
  367. data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +2 -2
  368. data/spec/data/kitchen/openldap/recipes/gigantor.rb +2 -2
  369. data/spec/data/kitchen/openldap/recipes/ignoreme.rb +2 -2
  370. data/spec/data/kitchen/openldap/recipes/woot.rb +3 -3
  371. data/spec/data/knife_subcommand/test_explicit_category.rb +6 -6
  372. data/spec/data/knife_subcommand/test_name_mapping.rb +4 -4
  373. data/spec/data/knife_subcommand/test_yourself.rb +21 -21
  374. data/spec/data/lwrp/providers/inline_compiler.rb +26 -26
  375. data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -5
  376. data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -7
  377. data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -7
  378. data/spec/data/lwrp/resources/foo.rb +4 -4
  379. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -1
  380. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
  381. data/spec/data/mac_users/10.7-8.plist.xml +559 -559
  382. data/spec/data/mac_users/10.7-8.shadow.xml +11 -11
  383. data/spec/data/mac_users/10.7.plist.xml +559 -559
  384. data/spec/data/mac_users/10.7.shadow.xml +11 -11
  385. data/spec/data/mac_users/10.8.plist.xml +559 -559
  386. data/spec/data/mac_users/10.8.shadow.xml +21 -21
  387. data/spec/data/mac_users/10.9.plist.xml +560 -560
  388. data/spec/data/mac_users/10.9.shadow.xml +21 -21
  389. data/spec/data/metadata/quick_start/metadata.rb +19 -19
  390. data/spec/data/nodes/default.rb +15 -15
  391. data/spec/data/nodes/test.example.com.rb +17 -17
  392. data/spec/data/nodes/test.rb +15 -15
  393. data/spec/data/null_config.rb +1 -1
  394. data/spec/data/object_loader/environments/test.json +7 -7
  395. data/spec/data/object_loader/environments/test.rb +2 -2
  396. data/spec/data/object_loader/environments/test_json_class.json +8 -8
  397. data/spec/data/object_loader/nodes/test.json +7 -7
  398. data/spec/data/object_loader/nodes/test.rb +2 -2
  399. data/spec/data/object_loader/nodes/test_json_class.json +8 -8
  400. data/spec/data/object_loader/roles/test.json +7 -7
  401. data/spec/data/object_loader/roles/test.rb +2 -2
  402. data/spec/data/object_loader/roles/test_json_class.json +8 -8
  403. data/spec/data/partial_one.erb +1 -1
  404. data/spec/data/recipes/test.rb +7 -7
  405. data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -4
  406. data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -1
  407. data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -2
  408. data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -2
  409. data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -1
  410. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -1
  411. data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -3
  412. data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -1
  413. data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -2
  414. data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -2
  415. data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -1
  416. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -1
  417. data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -2
  418. data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -2
  419. data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -3
  420. data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
  421. data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
  422. data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
  423. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -1
  424. data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -3
  425. data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -1
  426. data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -2
  427. data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -1
  428. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -1
  429. data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -3
  430. data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -1
  431. data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -1
  432. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -1
  433. data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -3
  434. data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -1
  435. data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -2
  436. data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -2
  437. data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -1
  438. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -1
  439. data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -3
  440. data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -1
  441. data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -1
  442. data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -3
  443. data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -1
  444. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -1
  445. data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
  446. data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -9
  447. data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -5
  448. data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -1
  449. data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -1
  450. data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -5
  451. data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -7
  452. data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -7
  453. data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -1
  454. data/spec/data/run_context/nodes/run_context.rb +5 -5
  455. data/spec/data/search_queries_to_transform.txt +98 -98
  456. data/spec/data/shef-config.rb +10 -10
  457. data/spec/data/ssl/5e707473.0 +18 -18
  458. data/spec/data/ssl/chef-rspec.cert +27 -27
  459. data/spec/data/ssl/chef-rspec.key +27 -27
  460. data/spec/data/ssl/key.pem +15 -15
  461. data/spec/data/ssl/private_key.pem +27 -27
  462. data/spec/data/ssl/private_key_with_whitespace.pem +32 -32
  463. data/spec/data/standalone_cookbook/chefignore +9 -9
  464. data/spec/data/standalone_cookbook/recipes/default.rb +2 -2
  465. data/spec/data/trusted_certs/example.crt +22 -22
  466. data/spec/data/trusted_certs/intermediate.pem +27 -27
  467. data/spec/data/trusted_certs/root.pem +22 -22
  468. data/spec/functional/assets/chefinittest +34 -34
  469. data/spec/functional/assets/testchefsubsys +10 -10
  470. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -0
  471. data/spec/functional/resource/aix_service_spec.rb +0 -0
  472. data/spec/functional/resource/aixinit_service_spec.rb +0 -0
  473. data/spec/functional/resource/chocolatey_package_spec.rb +0 -5
  474. data/spec/functional/resource/env_spec.rb +0 -0
  475. data/spec/functional/win32/registry_spec.rb +1 -0
  476. data/spec/integration/client/exit_code_spec.rb +245 -0
  477. data/spec/integration/knife/deps_spec.rb +7 -7
  478. data/spec/integration/knife/download_spec.rb +19 -0
  479. data/spec/integration/knife/list_spec.rb +0 -8
  480. data/spec/integration/knife/upload_spec.rb +21 -2
  481. data/spec/integration/solo/solo_spec.rb +1 -1
  482. data/spec/rcov.opts +2 -2
  483. data/spec/unit/application/apply_spec.rb +6 -4
  484. data/spec/unit/application/exit_code_spec.rb +231 -0
  485. data/spec/unit/application/solo_spec.rb +143 -88
  486. data/spec/unit/chef_fs/config_spec.rb +129 -0
  487. data/spec/unit/chef_fs/file_system/repository/base_file_spec.rb +8 -10
  488. data/spec/unit/client_spec.rb +1 -1
  489. data/spec/unit/config_fetcher_spec.rb +2 -2
  490. data/spec/unit/cookbook/synchronizer_spec.rb +1 -1
  491. data/spec/unit/data_bag_item_spec.rb +2 -2
  492. data/spec/unit/data_bag_spec.rb +2 -2
  493. data/spec/unit/data_collector/messages/helpers_spec.rb +190 -0
  494. data/spec/unit/data_collector/messages_spec.rb +207 -0
  495. data/spec/unit/data_collector_spec.rb +525 -0
  496. data/spec/unit/decorator/lazy_array_spec.rb +58 -0
  497. data/spec/unit/decorator/lazy_spec.rb +39 -0
  498. data/spec/unit/decorator_spec.rb +142 -0
  499. data/spec/unit/environment_spec.rb +4 -4
  500. data/spec/unit/handler_spec.rb +87 -0
  501. data/spec/unit/knife/cookbook_show_spec.rb +89 -90
  502. data/spec/unit/knife/ssl_check_spec.rb +16 -0
  503. data/spec/unit/policy_builder/dynamic_spec.rb +1 -1
  504. data/spec/unit/policy_builder/policyfile_spec.rb +1 -1
  505. data/spec/unit/provider/git_spec.rb +77 -18
  506. data/spec/unit/provider/package/apt_spec.rb +97 -34
  507. data/spec/unit/provider/package/chocolatey_spec.rb +3 -15
  508. data/spec/unit/provider/package/portage_spec.rb +6 -0
  509. data/spec/unit/provider/package/rubygems_spec.rb +38 -4
  510. data/spec/unit/provider/package/yum/yum_cache_spec.rb +27 -0
  511. data/spec/unit/provider/package_spec.rb +20 -7
  512. data/spec/unit/provider/systemd_unit_spec.rb +885 -0
  513. data/spec/unit/resource/systemd_unit_spec.rb +133 -0
  514. data/spec/unit/resource_builder_spec.rb +1 -1
  515. data/tasks/bin/bundle-platform +6 -2
  516. data/tasks/bin/bundle-platform.bat +0 -0
  517. data/tasks/bin/create-override-gemfile +0 -0
  518. data/tasks/bin/run_external_test +0 -0
  519. data/tasks/bundle_util.rb +18 -2
  520. data/tasks/changelog.rb +1 -0
  521. data/tasks/dependencies.rb +47 -57
  522. metadata +847 -7
  523. data/tasks/bin/run_chef_tests +0 -17
@@ -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>