chef 0.9.18 → 0.10.0.beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +0 -3
- data/distro/arch/etc/rc.d/chef-server +0 -4
- data/distro/arch/etc/rc.d/chef-server-webui +0 -4
- data/distro/arch/etc/rc.d/chef-solr +0 -4
- data/distro/arch/etc/rc.d/chef-solr-indexer +0 -4
- data/lib/chef.rb +3 -3
- data/lib/chef/api_client.rb +1 -1
- data/lib/chef/application.rb +11 -1
- data/lib/chef/application/client.rb +18 -22
- data/lib/chef/application/knife.rb +28 -29
- data/lib/chef/application/solo.rb +14 -12
- data/lib/chef/client.rb +112 -54
- data/lib/chef/config.rb +4 -0
- data/lib/chef/cookbook/chefignore.rb +66 -0
- data/lib/chef/cookbook/cookbook_collection.rb +6 -5
- data/lib/chef/cookbook/cookbook_version_loader.rb +151 -0
- data/lib/chef/cookbook/file_system_file_vendor.rb +10 -8
- data/lib/chef/cookbook/metadata.rb +200 -108
- data/lib/chef/cookbook_loader.rb +39 -163
- data/lib/chef/cookbook_uploader.rb +100 -78
- data/lib/chef/cookbook_version.rb +92 -47
- data/lib/chef/cookbook_version_selector.rb +163 -0
- data/lib/chef/couchdb.rb +9 -1
- data/lib/chef/data_bag.rb +1 -1
- data/lib/chef/data_bag_item.rb +1 -1
- data/lib/chef/encrypted_data_bag_item.rb +126 -0
- data/lib/chef/environment.rb +386 -0
- data/lib/chef/exceptions.rb +82 -1
- data/lib/chef/index_queue/amqp_client.rb +15 -12
- data/lib/chef/index_queue/indexable.rb +38 -4
- data/lib/chef/json_compat.rb +3 -3
- data/lib/chef/knife.rb +97 -202
- data/lib/chef/knife/bootstrap.rb +27 -61
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +4 -2
- data/lib/chef/knife/bootstrap/centos5-gems.erb +6 -15
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +3 -4
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +6 -5
- data/lib/chef/knife/client_bulk_delete.rb +6 -3
- data/lib/chef/knife/client_create.rb +13 -10
- data/lib/chef/knife/client_delete.rb +10 -7
- data/lib/chef/knife/client_edit.rb +9 -6
- data/lib/chef/knife/client_list.rb +8 -5
- data/lib/chef/knife/client_reregister.rb +9 -6
- data/lib/chef/knife/client_show.rb +9 -6
- data/lib/chef/knife/configure.rb +15 -19
- data/lib/chef/knife/configure_client.rb +4 -4
- data/lib/chef/knife/cookbook_bulk_delete.rb +11 -8
- data/lib/chef/knife/cookbook_create.rb +120 -55
- data/lib/chef/knife/cookbook_delete.rb +18 -12
- data/lib/chef/knife/cookbook_download.rb +10 -6
- data/lib/chef/knife/cookbook_list.rb +15 -6
- data/lib/chef/knife/cookbook_metadata.rb +41 -21
- data/lib/chef/knife/cookbook_metadata_from_file.rb +4 -0
- data/lib/chef/knife/cookbook_show.rb +16 -5
- data/lib/chef/knife/cookbook_site_download.rb +2 -2
- data/lib/chef/knife/cookbook_site_share.rb +18 -13
- data/lib/chef/knife/cookbook_site_unshare.rb +7 -4
- data/lib/chef/knife/cookbook_site_vendor.rb +21 -18
- data/lib/chef/knife/cookbook_test.rb +14 -14
- data/lib/chef/knife/cookbook_upload.rb +91 -40
- data/lib/chef/knife/data_bag_create.rb +41 -6
- data/lib/chef/knife/data_bag_delete.rb +5 -3
- data/lib/chef/knife/data_bag_edit.rb +55 -11
- data/lib/chef/knife/data_bag_from_file.rb +47 -7
- data/lib/chef/knife/data_bag_list.rb +4 -1
- data/lib/chef/knife/data_bag_show.rb +44 -4
- data/lib/chef/knife/environment_create.rb +53 -0
- data/lib/chef/knife/environment_delete.rb +45 -0
- data/lib/chef/knife/environment_edit.rb +45 -0
- data/lib/chef/knife/environment_from_file.rb +39 -0
- data/lib/chef/knife/environment_list.rb +42 -0
- data/lib/chef/knife/environment_show.rb +46 -0
- data/lib/chef/knife/exec.rb +1 -1
- data/lib/chef/knife/index_rebuild.rb +8 -9
- data/lib/chef/knife/node_bulk_delete.rb +9 -6
- data/lib/chef/knife/node_create.rb +9 -6
- data/lib/chef/knife/node_delete.rb +10 -7
- data/lib/chef/knife/node_edit.rb +129 -10
- data/lib/chef/knife/node_from_file.rb +10 -7
- data/lib/chef/knife/node_list.rb +11 -6
- data/lib/chef/knife/node_run_list_add.rb +10 -7
- data/lib/chef/knife/node_run_list_remove.rb +9 -6
- data/lib/chef/knife/node_show.rb +15 -7
- data/lib/chef/knife/recipe_list.rb +4 -3
- data/lib/chef/knife/role_bulk_delete.rb +9 -6
- data/lib/chef/knife/role_create.rb +9 -6
- data/lib/chef/knife/role_delete.rb +10 -7
- data/lib/chef/knife/role_edit.rb +11 -8
- data/lib/chef/knife/role_from_file.rb +10 -7
- data/lib/chef/knife/role_list.rb +8 -5
- data/lib/chef/knife/role_show.rb +11 -8
- data/lib/chef/knife/search.rb +33 -10
- data/lib/chef/knife/ssh.rb +33 -61
- data/lib/chef/knife/status.rb +7 -4
- data/lib/chef/knife/subcommand_loader.rb +101 -0
- data/lib/chef/knife/tag_create.rb +31 -0
- data/lib/chef/knife/tag_delete.rb +31 -0
- data/lib/chef/knife/tag_list.rb +29 -0
- data/lib/chef/knife/ui.rb +229 -0
- data/lib/chef/knife/windows_bootstrap.rb +8 -5
- data/lib/chef/log.rb +5 -59
- data/lib/chef/mash.rb +211 -0
- data/lib/chef/mixins.rb +1 -2
- data/lib/chef/nil_argument.rb +3 -0
- data/lib/chef/node.rb +96 -34
- data/lib/chef/platform.rb +27 -0
- data/lib/chef/provider/cookbook_file.rb +21 -20
- data/lib/chef/provider/deploy/revision.rb +3 -0
- data/lib/chef/provider/file.rb +20 -11
- data/lib/chef/provider/git.rb +26 -26
- data/lib/chef/provider/group/aix.rb +70 -0
- data/lib/chef/provider/group/groupadd.rb +7 -4
- data/lib/chef/provider/group/usermod.rb +1 -1
- data/lib/chef/provider/package.rb +28 -28
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/portage.rb +50 -39
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +3 -20
- data/lib/chef/provider/remote_directory.rb +0 -2
- data/lib/chef/provider/remote_file.rb +2 -3
- data/lib/chef/provider/service/arch.rb +28 -35
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/subversion.rb +22 -22
- data/lib/chef/providers.rb +1 -0
- data/lib/chef/recipe.rb +10 -12
- data/lib/chef/resource.rb +49 -42
- data/lib/chef/resource/gem_package.rb +7 -3
- data/lib/chef/resource/git.rb +5 -5
- data/lib/chef/resource/package.rb +7 -7
- data/lib/chef/resource/scm.rb +2 -1
- data/lib/chef/resource/solaris_package.rb +0 -1
- data/lib/chef/resource/yum_package.rb +0 -1
- data/lib/chef/rest.rb +7 -16
- data/lib/chef/rest/rest_request.rb +0 -16
- data/lib/chef/role.rb +67 -13
- data/lib/chef/run_context.rb +37 -21
- data/lib/chef/run_list.rb +30 -15
- data/lib/chef/run_list/run_list_expansion.rb +41 -20
- data/lib/chef/run_list/run_list_item.rb +20 -6
- data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
- data/lib/chef/runner.rb +7 -15
- data/lib/chef/search/query.rb +12 -7
- data/lib/chef/shef.rb +6 -7
- data/lib/chef/shef/shef_session.rb +40 -35
- data/lib/chef/shell_out.rb +22 -201
- data/lib/chef/shell_out/unix.rb +224 -0
- data/lib/chef/shell_out/windows.rb +95 -0
- data/lib/chef/solr_query.rb +187 -0
- data/lib/chef/solr_query/lucene.treetop +145 -0
- data/lib/chef/solr_query/lucene_nodes.rb +285 -0
- data/lib/chef/solr_query/query_transform.rb +65 -0
- data/lib/chef/solr_query/solr_http_request.rb +118 -0
- data/lib/chef/version.rb +4 -2
- data/lib/chef/version_class.rb +70 -0
- data/lib/chef/version_constraint.rb +116 -0
- metadata +68 -37
- data/lib/chef/cookbook/metadata/version.rb +0 -87
- data/lib/chef/knife/bluebox_images_list.rb +0 -54
- data/lib/chef/knife/bluebox_server_create.rb +0 -157
- data/lib/chef/knife/bluebox_server_delete.rb +0 -63
- data/lib/chef/knife/bluebox_server_list.rb +0 -59
- data/lib/chef/knife/ec2_instance_data.rb +0 -46
- data/lib/chef/knife/ec2_server_create.rb +0 -218
- data/lib/chef/knife/ec2_server_delete.rb +0 -87
- data/lib/chef/knife/ec2_server_list.rb +0 -89
- data/lib/chef/knife/rackspace_server_create.rb +0 -184
- data/lib/chef/knife/rackspace_server_delete.rb +0 -57
- data/lib/chef/knife/rackspace_server_list.rb +0 -59
- data/lib/chef/knife/slicehost_images_list.rb +0 -53
- data/lib/chef/knife/slicehost_server_create.rb +0 -103
- data/lib/chef/knife/slicehost_server_delete.rb +0 -61
- data/lib/chef/knife/slicehost_server_list.rb +0 -64
- data/lib/chef/knife/terremark_server_create.rb +0 -152
- data/lib/chef/knife/terremark_server_delete.rb +0 -87
- data/lib/chef/knife/terremark_server_list.rb +0 -77
- data/lib/chef/mixin/find_preferred_file.rb +0 -92
data/lib/chef/knife/bootstrap.rb
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
# you may not use this file except in compliance with the License.
|
|
8
8
|
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
9
|
+
#
|
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
11
|
+
#
|
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@@ -17,34 +17,30 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require 'chef/knife'
|
|
20
|
-
require 'chef/json_compat'
|
|
21
|
-
require 'tempfile'
|
|
22
|
-
require 'erubis'
|
|
23
20
|
|
|
24
21
|
class Chef
|
|
25
22
|
class Knife
|
|
26
23
|
class Bootstrap < Knife
|
|
27
24
|
|
|
25
|
+
deps do
|
|
26
|
+
require 'chef/json_compat'
|
|
27
|
+
require 'tempfile'
|
|
28
|
+
require 'erubis'
|
|
29
|
+
end
|
|
30
|
+
|
|
28
31
|
banner "knife bootstrap FQDN [RUN LIST...] (options)"
|
|
29
32
|
|
|
30
33
|
option :ssh_user,
|
|
31
34
|
:short => "-x USERNAME",
|
|
32
35
|
:long => "--ssh-user USERNAME",
|
|
33
36
|
:description => "The ssh username",
|
|
34
|
-
:default => "root"
|
|
37
|
+
:default => "root"
|
|
35
38
|
|
|
36
39
|
option :ssh_password,
|
|
37
40
|
:short => "-P PASSWORD",
|
|
38
41
|
:long => "--ssh-password PASSWORD",
|
|
39
42
|
:description => "The ssh password"
|
|
40
43
|
|
|
41
|
-
option :ssh_port,
|
|
42
|
-
:short => "-p PORT",
|
|
43
|
-
:long => "--ssh-port PORT",
|
|
44
|
-
:description => "The ssh port",
|
|
45
|
-
:default => "22",
|
|
46
|
-
:proc => Proc.new { |key| Chef::Config[:knife][:ssh_port] = key }
|
|
47
|
-
|
|
48
44
|
option :identity_file,
|
|
49
45
|
:short => "-i IDENTITY_FILE",
|
|
50
46
|
:long => "--identity-file IDENTITY_FILE",
|
|
@@ -59,11 +55,6 @@ class Chef
|
|
|
59
55
|
:long => "--prerelease",
|
|
60
56
|
:description => "Install the pre-release chef gems"
|
|
61
57
|
|
|
62
|
-
option :bootstrap_version,
|
|
63
|
-
:long => "--bootstrap-version",
|
|
64
|
-
:description => "The version of Chef to install",
|
|
65
|
-
:proc => lambda { |v| Chef::Config[:bootstrap_version] = v }
|
|
66
|
-
|
|
67
58
|
option :distro,
|
|
68
59
|
:short => "-d DISTRO",
|
|
69
60
|
:long => "--distro DISTRO",
|
|
@@ -84,12 +75,14 @@ class Chef
|
|
|
84
75
|
:short => "-r RUN_LIST",
|
|
85
76
|
:long => "--run-list RUN_LIST",
|
|
86
77
|
:description => "Comma separated list of roles/recipes to apply",
|
|
87
|
-
:proc => lambda { |o| o.split(
|
|
78
|
+
:proc => lambda { |o| o.split(/[\s,]+/) },
|
|
88
79
|
:default => []
|
|
89
80
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
81
|
+
option :no_host_key_verify,
|
|
82
|
+
:long => "--no-host-key-verify",
|
|
83
|
+
:description => "Disable host key verification",
|
|
84
|
+
:boolean => true,
|
|
85
|
+
:default => false
|
|
93
86
|
|
|
94
87
|
def load_template(template=nil)
|
|
95
88
|
# Are we bootstrapping using an already shipped template?
|
|
@@ -108,12 +101,12 @@ class Chef
|
|
|
108
101
|
end
|
|
109
102
|
|
|
110
103
|
unless template
|
|
111
|
-
|
|
104
|
+
ui.info("Can not find bootstrap definition for #{config[:distro]}")
|
|
112
105
|
raise Errno::ENOENT
|
|
113
106
|
end
|
|
114
107
|
|
|
115
108
|
Chef::Log.debug("Found bootstrap template in #{File.dirname(template)}")
|
|
116
|
-
|
|
109
|
+
|
|
117
110
|
IO.read(template).chomp
|
|
118
111
|
end
|
|
119
112
|
|
|
@@ -124,16 +117,18 @@ class Chef
|
|
|
124
117
|
Erubis::Eruby.new(template).evaluate(context)
|
|
125
118
|
end
|
|
126
119
|
|
|
127
|
-
def run
|
|
120
|
+
def run
|
|
128
121
|
require 'highline'
|
|
122
|
+
require 'net/ssh'
|
|
129
123
|
|
|
130
124
|
validate_name_args!
|
|
125
|
+
@node_name = Array(@name_args).first
|
|
126
|
+
# back compat--templates may use this setting:
|
|
127
|
+
config[:server_name] = @node_name
|
|
131
128
|
|
|
132
129
|
$stdout.sync = true
|
|
133
130
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
knife_ssh.load_late_dependencies
|
|
131
|
+
ui.info("Bootstrapping Chef on #{ui.color(@node_name, :bold)}")
|
|
137
132
|
|
|
138
133
|
begin
|
|
139
134
|
knife_ssh.run
|
|
@@ -147,7 +142,7 @@ class Chef
|
|
|
147
142
|
|
|
148
143
|
def validate_name_args!
|
|
149
144
|
if Array(@name_args).first.nil?
|
|
150
|
-
|
|
145
|
+
ui.error("Must pass an FQDN or ip to bootstrap")
|
|
151
146
|
exit 1
|
|
152
147
|
end
|
|
153
148
|
end
|
|
@@ -159,11 +154,11 @@ class Chef
|
|
|
159
154
|
def knife_ssh
|
|
160
155
|
ssh = Chef::Knife::Ssh.new
|
|
161
156
|
ssh.name_args = [ server_name, ssh_command ]
|
|
162
|
-
ssh.config[:ssh_user] = config[:ssh_user]
|
|
157
|
+
ssh.config[:ssh_user] = config[:ssh_user]
|
|
163
158
|
ssh.config[:ssh_password] = config[:ssh_password]
|
|
164
|
-
ssh.config[:ssh_port] = Chef::Config[:knife][:ssh_port] || config[:ssh_port]
|
|
165
159
|
ssh.config[:identity_file] = config[:identity_file]
|
|
166
160
|
ssh.config[:manual] = true
|
|
161
|
+
ssh.config[:no_host_key_verify] = config[:no_host_key_verify]
|
|
167
162
|
ssh
|
|
168
163
|
end
|
|
169
164
|
|
|
@@ -184,36 +179,7 @@ class Chef
|
|
|
184
179
|
command
|
|
185
180
|
end
|
|
186
181
|
|
|
187
|
-
module TemplateHelper
|
|
188
|
-
|
|
189
|
-
#
|
|
190
|
-
# == Chef::Knife::Bootstrap::TemplateHelper
|
|
191
|
-
#
|
|
192
|
-
# The methods in the TemplateHelper module expect to have access to
|
|
193
|
-
# the instance varialbles set above as part of the context in the
|
|
194
|
-
# Chef::Knife::Bootstrap#render_context method. Those instance
|
|
195
|
-
# variables are:
|
|
196
|
-
#
|
|
197
|
-
# * @config - a hash of knife's config values
|
|
198
|
-
# * @run_list - the run list for the node to boostrap
|
|
199
|
-
#
|
|
200
|
-
|
|
201
|
-
::Erubis::Context.send(:include, Chef::Knife::Bootstrap::TemplateHelper)
|
|
202
|
-
|
|
203
|
-
def bootstrap_version_string(type=nil)
|
|
204
|
-
version = Chef::Config[:bootstrap_version] || Chef::VERSION
|
|
205
|
-
case type
|
|
206
|
-
when :gems
|
|
207
|
-
if @config[:prerelease]
|
|
208
|
-
"--prerelease"
|
|
209
|
-
else
|
|
210
|
-
"--version #{version}"
|
|
211
|
-
end
|
|
212
|
-
else
|
|
213
|
-
version
|
|
214
|
-
end
|
|
215
|
-
end
|
|
216
|
-
end
|
|
217
182
|
end
|
|
218
183
|
end
|
|
219
184
|
end
|
|
185
|
+
|
|
@@ -3,8 +3,7 @@ if [ ! -f /usr/bin/chef-client ]; then
|
|
|
3
3
|
pacman -Syy
|
|
4
4
|
pacman -S --noconfirm ruby ntp base-devel
|
|
5
5
|
ntpdate -u pool.ntp.org
|
|
6
|
-
gem install ohai --no-rdoc --no-ri --verbose
|
|
7
|
-
gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
|
|
6
|
+
gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
|
|
8
7
|
fi
|
|
9
8
|
|
|
10
9
|
mkdir -p /etc/chef
|
|
@@ -27,6 +26,9 @@ validation_client_name "<%= Chef::Config[:validation_client_name] %>"
|
|
|
27
26
|
<% else %>
|
|
28
27
|
node_name "<%= @config[:chef_node_name] %>"
|
|
29
28
|
<% end %>
|
|
29
|
+
<% if Chef::Config[:environment] != nil %>
|
|
30
|
+
environment "<%= Chef::Config[:environment]%>"
|
|
31
|
+
<% end %>
|
|
30
32
|
# ArchLinux follows the Filesystem Hierarchy Standard
|
|
31
33
|
file_cache_path "/var/cache/chef"
|
|
32
34
|
file_backup_path "/var/lib/chef/backup"
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
bash -c '
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
rpm -Uvh http://download.elff.bravenet.com/5/i386/elff-release-5-3.noarch.rpm
|
|
2
|
+
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
|
|
3
|
+
rpm -Uvh http://download.elff.bravenet.com/5/i386/elff-release-5-3.noarch.rpm
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
cd /tmp
|
|
9
|
-
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
|
|
10
|
-
tar zxf rubygems-1.3.7.tgz
|
|
11
|
-
cd rubygems-1.3.7
|
|
12
|
-
ruby setup.rb --no-format-executable
|
|
13
|
-
fi
|
|
5
|
+
yum install -q -y ruby ruby-devel gcc gcc-c++ automake autoconf rubygems make
|
|
14
6
|
|
|
15
7
|
gem update --system
|
|
16
8
|
gem update
|
|
17
|
-
gem install ohai --no-rdoc --no-ri --verbose
|
|
18
|
-
gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
|
|
9
|
+
gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
|
|
19
10
|
|
|
20
11
|
mkdir -p /etc/chef
|
|
21
12
|
|
|
@@ -34,10 +25,10 @@ log_location STDOUT
|
|
|
34
25
|
chef_server_url "<%= Chef::Config[:chef_server_url] %>"
|
|
35
26
|
validation_client_name "<%= Chef::Config[:validation_client_name] %>"
|
|
36
27
|
<% if @config[:chef_node_name] == nil %>
|
|
37
|
-
# Using default node name
|
|
28
|
+
# Using default node name"
|
|
38
29
|
<% else %>
|
|
39
30
|
node_name "<%= @config[:chef_node_name] %>"
|
|
40
|
-
<% end %>
|
|
31
|
+
<% end %>
|
|
41
32
|
EOP
|
|
42
33
|
) > /etc/chef/client.rb
|
|
43
34
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
bash -c '
|
|
2
|
-
yum install -y ruby ruby-devel gcc gcc-c++ automake autoconf rubygems make
|
|
2
|
+
yum install -q -y ruby ruby-devel gcc gcc-c++ automake autoconf rubygems make
|
|
3
3
|
|
|
4
4
|
gem update --system
|
|
5
5
|
gem update
|
|
6
|
-
gem install ohai --no-rdoc --no-ri --verbose
|
|
7
|
-
gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
|
|
6
|
+
gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
|
|
8
7
|
|
|
9
8
|
mkdir -p /etc/chef
|
|
10
9
|
|
|
@@ -26,7 +25,7 @@ validation_client_name "<%= Chef::Config[:validation_client_name] %>"
|
|
|
26
25
|
# Using default node name"
|
|
27
26
|
<% else %>
|
|
28
27
|
node_name "<%= @config[:chef_node_name] %>"
|
|
29
|
-
<% end %>
|
|
28
|
+
<% end %>
|
|
30
29
|
EOP
|
|
31
30
|
) > /etc/chef/client.rb
|
|
32
31
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
bash -c '
|
|
2
2
|
if [ ! -f /usr/bin/chef-client ]; then
|
|
3
|
-
echo "chef chef/chef_server_url string <%= Chef::Config[:chef_server_url] %>" | debconf-set-selections
|
|
3
|
+
echo "chef chef/chef_server_url string <%= Chef::Config[:chef_server_url] %>" | debconf-set-selections
|
|
4
4
|
[ -f /etc/apt/sources.list.d/opscode.list ] || echo "deb http://apt.opscode.com lucid main" > /etc/apt/sources.list.d/opscode.list
|
|
5
5
|
wget -O- http://apt.opscode.com/packages@opscode.com.gpg.key | apt-key add -
|
|
6
6
|
fi
|
|
@@ -21,7 +21,7 @@ rm /tmp/validation.pem
|
|
|
21
21
|
|
|
22
22
|
<% if @config[:chef_node_name] %>
|
|
23
23
|
[ `grep -qx "node_name \"<%= @config[:chef_node_name] %>\"" /etc/chef/client.rb` ] || echo "node_name \"<%= @config[:chef_node_name] %>\"" >> /etc/chef/client.rb
|
|
24
|
-
<% end -%>
|
|
24
|
+
<% end -%>
|
|
25
25
|
|
|
26
26
|
(
|
|
27
27
|
cat <<'EOP'
|
|
@@ -8,9 +8,7 @@ if [ ! -f /usr/bin/chef-client ]; then
|
|
|
8
8
|
cd rubygems-1.3.7
|
|
9
9
|
ruby setup.rb --no-format-executable
|
|
10
10
|
fi
|
|
11
|
-
|
|
12
|
-
gem install ohai --no-rdoc --no-ri --verbose
|
|
13
|
-
gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string(:gems) %>
|
|
11
|
+
gem install ohai chef --no-rdoc --no-ri --verbose <%= '--prerelease' if @config[:prerelease] %>
|
|
14
12
|
|
|
15
13
|
mkdir -p /etc/chef
|
|
16
14
|
|
|
@@ -29,10 +27,13 @@ log_location STDOUT
|
|
|
29
27
|
chef_server_url "<%= Chef::Config[:chef_server_url] %>"
|
|
30
28
|
validation_client_name "<%= Chef::Config[:validation_client_name] %>"
|
|
31
29
|
<% if @config[:chef_node_name] == nil %>
|
|
32
|
-
# Using default node name
|
|
30
|
+
# Using default node name"
|
|
33
31
|
<% else %>
|
|
34
32
|
node_name "<%= @config[:chef_node_name] %>"
|
|
35
|
-
<% end %>
|
|
33
|
+
<% end %>
|
|
34
|
+
<% if Chef::Config[:environment] != nil %>
|
|
35
|
+
environment "<%= Chef::Config[:environment]%>"
|
|
36
|
+
<% end %>
|
|
36
37
|
EOP
|
|
37
38
|
) > /etc/chef/client.rb
|
|
38
39
|
|
|
@@ -17,18 +17,21 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require 'chef/knife'
|
|
20
|
-
require 'chef/api_client'
|
|
21
|
-
require 'chef/json_compat'
|
|
22
20
|
|
|
23
21
|
class Chef
|
|
24
22
|
class Knife
|
|
25
23
|
class ClientBulkDelete < Knife
|
|
26
24
|
|
|
25
|
+
deps do
|
|
26
|
+
require 'chef/api_client'
|
|
27
|
+
require 'chef/json_compat'
|
|
28
|
+
end
|
|
29
|
+
|
|
27
30
|
banner "knife client bulk delete REGEX (options)"
|
|
28
31
|
|
|
29
32
|
def run
|
|
30
33
|
if @name_args.length < 1
|
|
31
|
-
|
|
34
|
+
ui.fatal("You must supply a regular expression to match the results against")
|
|
32
35
|
exit 42
|
|
33
36
|
else
|
|
34
37
|
bulk_delete(Chef::ApiClient, "client", nil, nil, @name_args[0])
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
# you may not use this file except in compliance with the License.
|
|
8
8
|
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
9
|
+
#
|
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
11
|
+
#
|
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@@ -17,18 +17,21 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require 'chef/knife'
|
|
20
|
-
require 'chef/api_client'
|
|
21
|
-
require 'chef/json_compat'
|
|
22
20
|
|
|
23
21
|
class Chef
|
|
24
22
|
class Knife
|
|
25
23
|
class ClientCreate < Knife
|
|
26
24
|
|
|
25
|
+
deps do
|
|
26
|
+
require 'chef/api_client'
|
|
27
|
+
require 'chef/json_compat'
|
|
28
|
+
end
|
|
29
|
+
|
|
27
30
|
option :file,
|
|
28
31
|
:short => "-f FILE",
|
|
29
32
|
:long => "--file FILE",
|
|
30
33
|
:description => "Write the key to a file"
|
|
31
|
-
|
|
34
|
+
|
|
32
35
|
option :admin,
|
|
33
36
|
:short => "-a",
|
|
34
37
|
:long => "--admin",
|
|
@@ -42,20 +45,20 @@ class Chef
|
|
|
42
45
|
|
|
43
46
|
if @client_name.nil?
|
|
44
47
|
show_usage
|
|
45
|
-
|
|
48
|
+
ui.fatal("You must specify a client name")
|
|
46
49
|
exit 1
|
|
47
50
|
end
|
|
48
|
-
|
|
51
|
+
|
|
49
52
|
client = Chef::ApiClient.new
|
|
50
53
|
client.name(@client_name)
|
|
51
54
|
client.admin(config[:admin])
|
|
52
|
-
|
|
55
|
+
|
|
53
56
|
output = edit_data(client)
|
|
54
57
|
|
|
55
58
|
key = output.save
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
ui.info("Created (or updated) #{output}")
|
|
61
|
+
|
|
59
62
|
if config[:file]
|
|
60
63
|
File.open(config[:file], "w") do |f|
|
|
61
64
|
f.print(key['private_key'])
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
# you may not use this file except in compliance with the License.
|
|
8
8
|
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
9
|
+
#
|
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
11
|
+
#
|
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@@ -17,24 +17,27 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require 'chef/knife'
|
|
20
|
-
require 'chef/api_client'
|
|
21
|
-
require 'chef/json_compat'
|
|
22
20
|
|
|
23
21
|
class Chef
|
|
24
22
|
class Knife
|
|
25
23
|
class ClientDelete < Knife
|
|
26
24
|
|
|
25
|
+
deps do
|
|
26
|
+
require 'chef/api_client'
|
|
27
|
+
require 'chef/json_compat'
|
|
28
|
+
end
|
|
29
|
+
|
|
27
30
|
banner "knife client delete CLIENT (options)"
|
|
28
31
|
|
|
29
|
-
def run
|
|
32
|
+
def run
|
|
30
33
|
@client_name = @name_args[0]
|
|
31
34
|
|
|
32
35
|
if @client_name.nil?
|
|
33
36
|
show_usage
|
|
34
|
-
|
|
37
|
+
ui.fatal("You must specify a client name")
|
|
35
38
|
exit 1
|
|
36
39
|
end
|
|
37
|
-
|
|
40
|
+
|
|
38
41
|
delete_object(Chef::ApiClient, @client_name)
|
|
39
42
|
end
|
|
40
43
|
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
# you may not use this file except in compliance with the License.
|
|
8
8
|
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
9
|
+
#
|
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
11
|
+
#
|
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@@ -17,13 +17,16 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require 'chef/knife'
|
|
20
|
-
require 'chef/api_client'
|
|
21
|
-
require 'chef/json_compat'
|
|
22
20
|
|
|
23
21
|
class Chef
|
|
24
22
|
class Knife
|
|
25
23
|
class ClientEdit < Knife
|
|
26
24
|
|
|
25
|
+
deps do
|
|
26
|
+
require 'chef/api_client'
|
|
27
|
+
require 'chef/json_compat'
|
|
28
|
+
end
|
|
29
|
+
|
|
27
30
|
banner "knife client edit CLIENT (options)"
|
|
28
31
|
|
|
29
32
|
def run
|
|
@@ -31,10 +34,10 @@ class Chef
|
|
|
31
34
|
|
|
32
35
|
if @client_name.nil?
|
|
33
36
|
show_usage
|
|
34
|
-
|
|
37
|
+
ui.fatal("You must specify a client name")
|
|
35
38
|
exit 1
|
|
36
39
|
end
|
|
37
|
-
|
|
40
|
+
|
|
38
41
|
edit_object(Chef::ApiClient, @client_name)
|
|
39
42
|
end
|
|
40
43
|
end
|