chef 10.16.6 → 10.18.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. data/distro/common/html/chef-client.8.html +4 -4
  2. data/distro/common/html/chef-expander.8.html +4 -4
  3. data/distro/common/html/chef-expanderctl.8.html +4 -4
  4. data/distro/common/html/chef-server-webui.8.html +4 -4
  5. data/distro/common/html/chef-server.8.html +4 -4
  6. data/distro/common/html/chef-solo.8.html +4 -4
  7. data/distro/common/html/chef-solr.8.html +4 -4
  8. data/distro/common/html/knife-bootstrap.1.html +4 -4
  9. data/distro/common/html/knife-client.1.html +4 -4
  10. data/distro/common/html/knife-configure.1.html +4 -4
  11. data/distro/common/html/knife-cookbook-site.1.html +4 -4
  12. data/distro/common/html/knife-cookbook.1.html +4 -4
  13. data/distro/common/html/knife-data-bag.1.html +4 -4
  14. data/distro/common/html/knife-environment.1.html +4 -4
  15. data/distro/common/html/knife-exec.1.html +4 -4
  16. data/distro/common/html/knife-index.1.html +4 -4
  17. data/distro/common/html/knife-node.1.html +4 -4
  18. data/distro/common/html/knife-role.1.html +4 -4
  19. data/distro/common/html/knife-search.1.html +4 -4
  20. data/distro/common/html/knife-ssh.1.html +4 -4
  21. data/distro/common/html/knife-status.1.html +4 -4
  22. data/distro/common/html/knife-tag.1.html +4 -4
  23. data/distro/common/html/knife.1.html +4 -4
  24. data/distro/common/html/shef.1.html +4 -4
  25. data/distro/common/man/man1/knife-bootstrap.1 +1 -1
  26. data/distro/common/man/man1/knife-client.1 +1 -1
  27. data/distro/common/man/man1/knife-configure.1 +1 -1
  28. data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
  29. data/distro/common/man/man1/knife-cookbook.1 +1 -1
  30. data/distro/common/man/man1/knife-data-bag.1 +1 -1
  31. data/distro/common/man/man1/knife-environment.1 +1 -1
  32. data/distro/common/man/man1/knife-exec.1 +1 -1
  33. data/distro/common/man/man1/knife-index.1 +1 -1
  34. data/distro/common/man/man1/knife-node.1 +1 -1
  35. data/distro/common/man/man1/knife-role.1 +1 -1
  36. data/distro/common/man/man1/knife-search.1 +1 -1
  37. data/distro/common/man/man1/knife-ssh.1 +1 -1
  38. data/distro/common/man/man1/knife-status.1 +1 -1
  39. data/distro/common/man/man1/knife-tag.1 +1 -1
  40. data/distro/common/man/man1/knife.1 +1 -1
  41. data/distro/common/man/man1/shef.1 +1 -1
  42. data/distro/common/man/man8/chef-client.8 +1 -1
  43. data/distro/common/man/man8/chef-expander.8 +1 -1
  44. data/distro/common/man/man8/chef-expanderctl.8 +1 -1
  45. data/distro/common/man/man8/chef-server-webui.8 +1 -1
  46. data/distro/common/man/man8/chef-server.8 +1 -1
  47. data/distro/common/man/man8/chef-solo.8 +1 -1
  48. data/distro/common/man/man8/chef-solr.8 +1 -1
  49. data/lib/chef/api_client.rb +22 -0
  50. data/lib/chef/cookbook/chefignore.rb +1 -1
  51. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -3
  52. data/lib/chef/encrypted_data_bag_item.rb +135 -6
  53. data/lib/chef/formatters/doc.rb +2 -2
  54. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -0
  55. data/lib/chef/knife/bootstrap/archlinux-gems.erb +6 -19
  56. data/lib/chef/knife/bootstrap/centos5-gems.erb +15 -24
  57. data/lib/chef/knife/bootstrap/chef-full.erb +9 -22
  58. data/lib/chef/knife/bootstrap/fedora13-gems.erb +5 -19
  59. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +4 -16
  60. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +7 -24
  61. data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +5 -19
  62. data/lib/chef/knife/bootstrap.rb +3 -3
  63. data/lib/chef/knife/client_reregister.rb +5 -4
  64. data/lib/chef/knife/cookbook_create.rb +178 -28
  65. data/lib/chef/knife/cookbook_site_install.rb +1 -1
  66. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  67. data/lib/chef/knife/ssh.rb +31 -15
  68. data/lib/chef/mixin/recipe_definition_dsl_core.rb +1 -1
  69. data/lib/chef/platform.rb +8 -0
  70. data/lib/chef/provider/log.rb +1 -1
  71. data/lib/chef/provider/package/yum-dump.py +20 -0
  72. data/lib/chef/provider/package/yum.rb +41 -0
  73. data/lib/chef/resource/log.rb +10 -1
  74. data/lib/chef/resource.rb +3 -2
  75. data/lib/chef/rest.rb +10 -5
  76. data/lib/chef/version.rb +1 -1
  77. data/spec/data/cookbooks/chefignore +2 -0
  78. data/spec/functional/knife/ssh_spec.rb +59 -1
  79. data/spec/stress/win32/security_spec.rb +4 -4
  80. data/spec/support/matchers/leak.rb +1 -1
  81. data/spec/unit/api_client_spec.rb +90 -17
  82. data/spec/unit/cookbook/chefignore_spec.rb +2 -1
  83. data/spec/unit/encrypted_data_bag_item_spec.rb +177 -6
  84. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +20 -0
  85. data/spec/unit/knife/bootstrap_spec.rb +69 -28
  86. data/spec/unit/knife/client_reregister_spec.rb +23 -22
  87. data/spec/unit/knife/cookbook_site_install_spec.rb +12 -2
  88. data/spec/unit/knife/core/bootstrap_context_spec.rb +7 -0
  89. data/spec/unit/knife/data_bag_create_spec.rb +5 -0
  90. data/spec/unit/knife/data_bag_edit_spec.rb +13 -0
  91. data/spec/unit/knife/data_bag_from_file_spec.rb +15 -1
  92. data/spec/unit/knife/ssh_spec.rb +93 -1
  93. data/spec/unit/provider/package/yum_spec.rb +79 -11
  94. data/spec/unit/resource/log_spec.rb +9 -0
  95. metadata +854 -850
@@ -10,23 +10,16 @@ if [ ! -f /usr/bin/chef-client ]; then
10
10
  fi
11
11
 
12
12
  mkdir -p /etc/chef
13
- (
14
- cat <<'EOP'
13
+
14
+ awk NF > /etc/chef/validation.pem <<'EOP'
15
15
  <%= validation_key %>
16
16
  EOP
17
- ) > /tmp/validation.pem
18
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
19
- rm /tmp/validation.pem
20
17
  chmod 0600 /etc/chef/validation.pem
21
18
 
22
19
  <% if @chef_config[:encrypted_data_bag_secret] -%>
23
- (
24
- cat <<'EOP'
20
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
25
21
  <%= encrypted_data_bag_secret %>
26
22
  EOP
27
- ) > /tmp/encrypted_data_bag_secret
28
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
29
- rm /tmp/encrypted_data_bag_secret
30
23
  chmod 0600 /etc/chef/encrypted_data_bag_secret
31
24
  <% end -%>
32
25
 
@@ -35,16 +28,13 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
35
28
  mkdir -p /etc/chef/ohai/hints
36
29
 
37
30
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
38
- (
39
- cat <<'EOP'
31
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
40
32
  <%= hash.to_json %>
41
33
  EOP
42
- ) > /etc/chef/ohai/hints/<%= name %>.json
43
34
  <% end -%>
44
35
  <% end -%>
45
36
 
46
- (
47
- cat <<'EOP'
37
+ cat > /etc/chef/client.rb <<'EOP'
48
38
  log_level :info
49
39
  log_location STDOUT
50
40
  chef_server_url "<%= @chef_config[:chef_server_url] %>"
@@ -64,12 +54,9 @@ http_proxy "<%= knife_config[:bootstrap_proxy] %>"
64
54
  https_proxy "<%= knife_config[:bootstrap_proxy] %>"
65
55
  <% end -%>
66
56
  EOP
67
- ) > /etc/chef/client.rb
68
57
 
69
- (
70
- cat <<'EOP'
58
+ cat > /etc/chef/first-boot.json <<'EOP'
71
59
  <%= first_boot.to_json %>
72
60
  EOP
73
- ) > /etc/chef/first-boot.json
74
61
 
75
62
  <%= start_chef %>'
@@ -2,6 +2,11 @@ bash -c '
2
2
  <%= "export http_proxy=\"#{knife_config[:bootstrap_proxy]}\"" if knife_config[:bootstrap_proxy] -%>
3
3
 
4
4
  if [ ! -f /usr/bin/chef-client ]; then
5
+ tmp_dir=$(mktemp -d) || exit 1
6
+ pushd "$tmp_dir"
7
+
8
+ yum install -y wget
9
+
5
10
  wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
6
11
  rpm -Uvh epel-release-5-4.noarch.rpm
7
12
  wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://rpm.aegisco.com/aegisco/rhel/aegisco-rhel.rpm
@@ -9,11 +14,11 @@ if [ ! -f /usr/bin/chef-client ]; then
9
14
 
10
15
  yum install -y ruby ruby-devel gcc gcc-c++ automake autoconf make
11
16
 
12
- cd /tmp
13
- wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz
14
- tar zxf rubygems-1.6.2.tgz
15
- cd rubygems-1.6.2
16
- ruby setup.rb --no-format-executable
17
+ wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz -O - | tar zxf -
18
+ (cd rubygems-1.6.2 && ruby setup.rb --no-format-executable)
19
+
20
+ popd
21
+ rm -r "$tmp_dir"
17
22
  fi
18
23
 
19
24
  gem update --system
@@ -23,23 +28,15 @@ gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string %>
23
28
 
24
29
  mkdir -p /etc/chef
25
30
 
26
- (
27
- cat <<'EOP'
31
+ awk NF > /etc/chef/validation.pem <<'EOP'
28
32
  <%= validation_key %>
29
33
  EOP
30
- ) > /tmp/validation.pem
31
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
32
- rm /tmp/validation.pem
33
34
  chmod 0600 /etc/chef/validation.pem
34
35
 
35
36
  <% if @chef_config[:encrypted_data_bag_secret] -%>
36
- (
37
- cat <<'EOP'
37
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
38
38
  <%= encrypted_data_bag_secret %>
39
39
  EOP
40
- ) > /tmp/encrypted_data_bag_secret
41
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
42
- rm /tmp/encrypted_data_bag_secret
43
40
  chmod 0600 /etc/chef/encrypted_data_bag_secret
44
41
  <% end -%>
45
42
 
@@ -48,24 +45,18 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
48
45
  mkdir -p /etc/chef/ohai/hints
49
46
 
50
47
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
51
- (
52
- cat <<'EOP'
48
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
53
49
  <%= hash.to_json %>
54
50
  EOP
55
- ) > /etc/chef/ohai/hints/<%= name %>.json
56
51
  <% end -%>
57
52
  <% end -%>
58
53
 
59
- (
60
- cat <<'EOP'
54
+ cat > /etc/chef/client.rb <<'EOP'
61
55
  <%= config_content %>
62
56
  EOP
63
- ) > /etc/chef/client.rb
64
57
 
65
- (
66
- cat <<'EOP'
58
+ cat > /etc/chef/first-boot.json <<'EOP'
67
59
  <%= first_boot.to_json %>
68
60
  EOP
69
- ) > /etc/chef/first-boot.json
70
61
 
71
62
  <%= start_chef %>'
@@ -16,32 +16,25 @@ version_string="-v <%= chef_version %>"
16
16
  if ! exists /usr/bin/chef-client; then
17
17
  if exists wget; then
18
18
  bash <(wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %> ${install_sh} -O -) ${version_string}
19
+ elif exists curl; then
20
+ bash <(curl -L <%= "--proxy \"#{knife_config[:bootstrap_proxy]}\" " if knife_config[:bootstrap_proxy] %> ${install_sh}) ${version_string}
19
21
  else
20
- if exists curl; then
21
- bash <(curl -L <%= "--proxy=on " if knife_config[:bootstrap_proxy] %> ${install_sh}) ${version_string}
22
- fi
22
+ echo "Neither wget nor curl found. Please install one and try again." >&2
23
+ exit 1
23
24
  fi
24
25
  fi
25
26
 
26
27
  mkdir -p /etc/chef
27
28
 
28
- (
29
- cat <<'EOP'
29
+ awk NF > /etc/chef/validation.pem <<'EOP'
30
30
  <%= validation_key %>
31
31
  EOP
32
- ) > /tmp/validation.pem
33
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
34
- rm /tmp/validation.pem
35
32
  chmod 0600 /etc/chef/validation.pem
36
33
 
37
34
  <% if @chef_config[:encrypted_data_bag_secret] -%>
38
- (
39
- cat <<'EOP'
35
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
40
36
  <%= encrypted_data_bag_secret %>
41
37
  EOP
42
- ) > /tmp/encrypted_data_bag_secret
43
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
44
- rm /tmp/encrypted_data_bag_secret
45
38
  chmod 0600 /etc/chef/encrypted_data_bag_secret
46
39
  <% end -%>
47
40
 
@@ -50,24 +43,18 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
50
43
  mkdir -p /etc/chef/ohai/hints
51
44
 
52
45
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
53
- (
54
- cat <<'EOP'
46
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
55
47
  <%= hash.to_json %>
56
48
  EOP
57
- ) > /etc/chef/ohai/hints/<%= name %>.json
58
49
  <% end -%>
59
50
  <% end -%>
60
51
 
61
- (
62
- cat <<'EOP'
52
+ cat > /etc/chef/client.rb <<'EOP'
63
53
  <%= config_content %>
64
54
  EOP
65
- ) > /etc/chef/client.rb
66
55
 
67
- (
68
- cat <<'EOP'
56
+ cat > /etc/chef/first-boot.json <<'EOP'
69
57
  <%= first_boot.to_json %>
70
58
  EOP
71
- ) > /etc/chef/first-boot.json
72
59
 
73
60
  <%= start_chef %>'
@@ -10,23 +10,15 @@ gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string %>
10
10
 
11
11
  mkdir -p /etc/chef
12
12
 
13
- (
14
- cat <<'EOP'
13
+ awk NF > /etc/chef/validation.pem <<'EOP'
15
14
  <%= validation_key %>
16
15
  EOP
17
- ) > /tmp/validation.pem
18
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
19
- rm /tmp/validation.pem
20
16
  chmod 0600 /etc/chef/validation.pem
21
17
 
22
18
  <% if @chef_config[:encrypted_data_bag_secret] -%>
23
- (
24
- cat <<'EOP'
19
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
25
20
  <%= encrypted_data_bag_secret %>
26
21
  EOP
27
- ) > /tmp/encrypted_data_bag_secret
28
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
29
- rm /tmp/encrypted_data_bag_secret
30
22
  chmod 0600 /etc/chef/encrypted_data_bag_secret
31
23
  <% end -%>
32
24
 
@@ -35,24 +27,18 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
35
27
  mkdir -p /etc/chef/ohai/hints
36
28
 
37
29
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
38
- (
39
- cat <<'EOP'
30
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
40
31
  <%= hash.to_json %>
41
32
  EOP
42
- ) > /etc/chef/ohai/hints/<%= name %>.json
43
33
  <% end -%>
44
34
  <% end -%>
45
35
 
46
- (
47
- cat <<'EOP'
36
+ cat > /etc/chef/client.rb <<'EOP'
48
37
  <%= config_content %>
49
38
  EOP
50
- ) > /etc/chef/client.rb
51
39
 
52
- (
53
- cat <<'EOP'
40
+ cat > /etc/chef/first-boot.json <<'EOP'
54
41
  <%= first_boot.to_json %>
55
42
  EOP
56
- ) > /etc/chef/first-boot.json
57
43
 
58
44
  <%= start_chef %>'
@@ -10,23 +10,15 @@ fi
10
10
  apt-get update
11
11
  apt-get install -y chef
12
12
 
13
- (
14
- cat <<'EOP'
13
+ awk NF > /etc/chef/validation.pem <<'EOP'
15
14
  <%= validation_key %>
16
15
  EOP
17
- ) > /tmp/validation.pem
18
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
19
- rm /tmp/validation.pem
20
16
  chmod 0600 /etc/chef/validation.pem
21
17
 
22
18
  <% if @chef_config[:encrypted_data_bag_secret] -%>
23
- (
24
- cat <<'EOP'
19
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
25
20
  <%= encrypted_data_bag_secret %>
26
21
  EOP
27
- ) > /tmp/encrypted_data_bag_secret
28
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
29
- rm /tmp/encrypted_data_bag_secret
30
22
  chmod 0600 /etc/chef/encrypted_data_bag_secret
31
23
  <% end -%>
32
24
 
@@ -35,11 +27,9 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
35
27
  mkdir -p /etc/chef/ohai/hints
36
28
 
37
29
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
38
- (
39
- cat <<'EOP'
30
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
40
31
  <%= hash.to_json %>
41
32
  EOP
42
- ) > /etc/chef/ohai/hints/<%= name %>.json
43
33
  <% end -%>
44
34
  <% end -%>
45
35
 
@@ -56,10 +46,8 @@ echo 'http_proxy "knife_config[:bootstrap_proxy]"' >> /etc/chef/client.rb
56
46
  echo 'https_proxy "knife_config[:bootstrap_proxy]"' >> /etc/chef/client.rb
57
47
  <% end -%>
58
48
 
59
- (
60
- cat <<'EOP'
49
+ cat > /etc/chef/first-boot.json <<'EOP'
61
50
  <%= first_boot.to_json %>
62
51
  EOP
63
- ) > /etc/chef/first-boot.json
64
52
 
65
53
  <%= start_chef %>'
@@ -4,11 +4,8 @@ bash -c '
4
4
  if [ ! -f /usr/bin/chef-client ]; then
5
5
  apt-get update
6
6
  apt-get install -y ruby ruby1.8-dev build-essential wget libruby-extras libruby1.8-extras
7
- cd /tmp
8
- wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz
9
- tar zxf rubygems-1.6.2.tgz
10
- cd rubygems-1.6.2
11
- ruby setup.rb --no-format-executable
7
+ wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz -O - | tar zxf -
8
+ (cd rubygems-1.6.2 && ruby setup.rb --no-format-executable)
12
9
  fi
13
10
 
14
11
  gem update --no-rdoc --no-ri
@@ -17,23 +14,15 @@ gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string %>
17
14
 
18
15
  mkdir -p /etc/chef
19
16
 
20
- (
21
- cat <<'EOP'
17
+ awk NF > /etc/chef/validation.pem <<'EOP'
22
18
  <%= validation_key %>
23
19
  EOP
24
- ) > /tmp/validation.pem
25
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
26
- rm /tmp/validation.pem
27
20
  chmod 0600 /etc/chef/validation.pem
28
21
 
29
22
  <% if @chef_config[:encrypted_data_bag_secret] -%>
30
- (
31
- cat <<'EOP'
23
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
32
24
  <%= encrypted_data_bag_secret %>
33
25
  EOP
34
- ) > /tmp/encrypted_data_bag_secret
35
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
36
- rm /tmp/encrypted_data_bag_secret
37
26
  chmod 0600 /etc/chef/encrypted_data_bag_secret
38
27
  <% end -%>
39
28
 
@@ -42,24 +31,18 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
42
31
  mkdir -p /etc/chef/ohai/hints
43
32
 
44
33
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
45
- (
46
- cat <<'EOP'
34
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
47
35
  <%= hash.to_json %>
48
36
  EOP
49
- ) > /etc/chef/ohai/hints/<%= name %>.json
50
37
  <% end -%>
51
38
  <% end -%>
52
39
 
53
- (
54
- cat <<'EOP'
40
+ cat > /etc/chef/client.rb <<'EOP'
55
41
  <%= config_content %>
56
42
  EOP
57
- ) > /etc/chef/client.rb
58
43
 
59
- (
60
- cat <<'EOP'
44
+ cat > /etc/chef/first-boot.json <<'EOP'
61
45
  <%= first_boot.to_json %>
62
46
  EOP
63
- ) > /etc/chef/first-boot.json
64
47
 
65
48
  <%= start_chef %>'
@@ -12,23 +12,15 @@ gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string %>
12
12
 
13
13
  mkdir -p /etc/chef
14
14
 
15
- (
16
- cat <<'EOP'
15
+ awk NF > /etc/chef/validation.pem <<'EOP'
17
16
  <%= validation_key %>
18
17
  EOP
19
- ) > /tmp/validation.pem
20
- awk NF /tmp/validation.pem > /etc/chef/validation.pem
21
- rm /tmp/validation.pem
22
18
  chmod 0600 /etc/chef/validation.pem
23
19
 
24
20
  <% if @chef_config[:encrypted_data_bag_secret] -%>
25
- (
26
- cat <<'EOP'
21
+ awk NF > /etc/chef/encrypted_data_bag_secret <<'EOP'
27
22
  <%= encrypted_data_bag_secret %>
28
23
  EOP
29
- ) > /tmp/encrypted_data_bag_secret
30
- awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret
31
- rm /tmp/encrypted_data_bag_secret
32
24
  chmod 0600 /etc/chef/encrypted_data_bag_secret
33
25
  <% end -%>
34
26
 
@@ -37,24 +29,18 @@ chmod 0600 /etc/chef/encrypted_data_bag_secret
37
29
  mkdir -p /etc/chef/ohai/hints
38
30
 
39
31
  <% @chef_config[:knife][:hints].each do |name, hash| -%>
40
- (
41
- cat <<'EOP'
32
+ cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
42
33
  <%= hash.to_json %>
43
34
  EOP
44
- ) > /etc/chef/ohai/hints/<%= name %>.json
45
35
  <% end -%>
46
36
  <% end -%>
47
37
 
48
- (
49
- cat <<'EOP'
38
+ cat > /etc/chef/client.rb <<'EOP'
50
39
  <%= config_content %>
51
40
  EOP
52
- ) > /etc/chef/client.rb
53
41
 
54
- (
55
- cat <<'EOP'
42
+ cat > /etc/chef/first-boot.json <<'EOP'
56
43
  <%= first_boot.to_json %>
57
44
  EOP
58
- ) > /etc/chef/first-boot.json
59
45
 
60
46
  <%= start_chef %>'
@@ -200,13 +200,13 @@ class Chef
200
200
  ssh = Chef::Knife::Ssh.new
201
201
  ssh.ui = ui
202
202
  ssh.name_args = [ server_name, ssh_command ]
203
- ssh.config[:ssh_user] = config[:ssh_user]
203
+ ssh.config[:ssh_user] = Chef::Config[:knife][:ssh_user] || config[:ssh_user]
204
204
  ssh.config[:ssh_password] = config[:ssh_password]
205
205
  ssh.config[:ssh_port] = Chef::Config[:knife][:ssh_port] || config[:ssh_port]
206
206
  ssh.config[:ssh_gateway] = Chef::Config[:knife][:ssh_gateway] || config[:ssh_gateway]
207
- ssh.config[:identity_file] = config[:identity_file]
207
+ ssh.config[:identity_file] = Chef::Config[:knife][:identity_file] || config[:identity_file]
208
208
  ssh.config[:manual] = true
209
- ssh.config[:host_key_verify] = config[:host_key_verify]
209
+ ssh.config[:host_key_verify] = Chef::Config[:knife][:host_key_verify] || config[:host_key_verify]
210
210
  ssh.config[:on_error] = :raise
211
211
  ssh
212
212
  end
@@ -43,14 +43,15 @@ class Chef
43
43
  exit 1
44
44
  end
45
45
 
46
- client = Chef::ApiClient.load(@client_name)
47
- key = client.save(new_key=true)
46
+ client = Chef::ApiClient.reregister(@client_name)
47
+ Chef::Log.debug("Updated client data: #{client.inspect}")
48
+ key = client.private_key
48
49
  if config[:file]
49
50
  File.open(config[:file], "w") do |f|
50
- f.print(key['private_key'])
51
+ f.print(key)
51
52
  end
52
53
  else
53
- ui.msg key['private_key']
54
+ ui.msg key
54
55
  end
55
56
  end
56
57
  end