knife-server 1.0.0 → 1.0.1
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/.travis.yml +1 -1
- data/CHANGELOG.md +49 -22
- data/README.md +1 -1
- data/knife-server.gemspec +1 -1
- data/lib/chef/knife/bootstrap/_common.sh +1 -0
- data/lib/chef/knife/bootstrap/_omnibus.sh +21 -2
- data/lib/chef/knife/bootstrap/chef10/debian.erb +6 -5
- data/lib/chef/knife/bootstrap/chef10/rhel.erb +1 -1
- data/lib/chef/knife/bootstrap/chef11/omnibus.erb +6 -2
- data/lib/chef/knife/bootstrap/chef11/rhel.erb +1 -1
- data/lib/chef/knife/server_bootstrap_base.rb +5 -0
- data/lib/chef/knife/server_bootstrap_ec2.rb +10 -6
- data/lib/chef/knife/server_bootstrap_standalone.rb +4 -2
- data/lib/knife/server/version.rb +1 -1
- data/spec/chef/knife/server_bootstrap_standalone_spec.rb +12 -1
- metadata +6 -6
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## 1.0.1 / 2013-04-11
|
2
|
+
|
3
|
+
### Bug fixes
|
4
|
+
|
5
|
+
* Pull request [#29][]: Fix README typo in ssh password argument. ([@ranjib][])
|
6
|
+
* Pull request [#34][]: Fix AMQP_PASSWORD propagation. ([@erikh][])
|
7
|
+
|
8
|
+
### Improvement
|
9
|
+
|
10
|
+
* Pull request [#35][]: Add VPC support. ([@jssjr][])
|
11
|
+
* Pull request [#34][]: Provide better information when the package can't be
|
12
|
+
downloaded. ([@erikh][])
|
13
|
+
|
14
|
+
|
1
15
|
## 1.0.0 / 2013-02-28
|
2
16
|
|
3
17
|
### Breaking Changes
|
@@ -20,7 +34,7 @@
|
|
20
34
|
Scientific, RHEL, Amazon Linux, etc. Seriously, this is huge. ([@danryan][],
|
21
35
|
[@erikh][])
|
22
36
|
* Support for installing Chef 11 (erchef) servers from Omnibus packages.
|
23
|
-
([@
|
37
|
+
([@fnichol][])
|
24
38
|
* Add --log-level flag to help debug bootstrap template output. ([@fnichol][])
|
25
39
|
* Support all relevant options from `Chef::Knife::Bootstrap` and
|
26
40
|
`Chef::Knife::Ec2ServerCreate` in the standalone and ec2 subcommands. This
|
@@ -45,39 +59,36 @@
|
|
45
59
|
|
46
60
|
### Bug fixes
|
47
61
|
|
48
|
-
* Pull request [#15]
|
49
|
-
identity-file when `nil` is passed in. ([@erikh][])
|
62
|
+
* Pull request [#15][]: Fix identity-file when `nil` is passed in. ([@erikh][])
|
50
63
|
|
51
64
|
|
52
65
|
## 0.3.2 / 2012-12-19
|
53
66
|
|
54
67
|
### Improvements
|
55
68
|
|
56
|
-
* Pull request [#13]
|
57
|
-
|
58
|
-
* Issue [#9]
|
59
|
-
|
60
|
-
* Issue [#10]
|
61
|
-
[
|
62
|
-
instructions in knife.rb setup section as using Knife may be new to many
|
63
|
-
users of this gem. ([@fnichol][])
|
69
|
+
* Pull request [#13][]: Relax version constraint on knife-ec2 gem.
|
70
|
+
([@wpeterson][])
|
71
|
+
* Issue [#9][]: Highlight the need to create set various knife.rb
|
72
|
+
configuration settings. ([@fnichol][])
|
73
|
+
* Issue [#10][], [#5][]: Add more instructions in knife.rb setup section as
|
74
|
+
using Knife may be new to many users of this gem. ([@fnichol][])
|
64
75
|
|
65
76
|
|
66
77
|
## 0.3.1 / 2012-12-12
|
67
78
|
|
68
79
|
### Bug fixes
|
69
80
|
|
70
|
-
* Pull request [#7]
|
71
|
-
|
72
|
-
* Pull request [#11]
|
73
|
-
|
74
|
-
* Pull request [#8]
|
75
|
-
|
81
|
+
* Pull request [#7][]: Fix identity-file flag for bootstrapping.
|
82
|
+
([@xdissent][])
|
83
|
+
* Pull request [#11][]: Fix identity-file flag for EC2 bootstrapping.
|
84
|
+
([@erikh][])
|
85
|
+
* Pull request [#8][]: Merge server config to Ec2ServerCreate config.
|
86
|
+
([@stormsilver][])
|
76
87
|
|
77
88
|
### Improvements
|
78
89
|
|
79
|
-
* Pull request [#3]
|
80
|
-
|
90
|
+
* Pull request [#3][]: Set server hostname even if /etc/hostname is not
|
91
|
+
present. ([@iafonov][])
|
81
92
|
* Update usage section in README.
|
82
93
|
|
83
94
|
|
@@ -114,9 +125,8 @@
|
|
114
125
|
|
115
126
|
### Bug fixes
|
116
127
|
|
117
|
-
* Issue [#2]
|
118
|
-
|
119
|
-
subcommand. ([@fnichol][])
|
128
|
+
* Issue [#2][]: Improve documentation to clarify `knife server bootstrap` is
|
129
|
+
not a proper subcommand. ([@fnichol][])
|
120
130
|
|
121
131
|
### New features
|
122
132
|
|
@@ -129,10 +139,27 @@
|
|
129
139
|
|
130
140
|
The initial release.
|
131
141
|
|
142
|
+
|
143
|
+
<!--- The following link definition list is generated by PimpMyChangelog --->
|
144
|
+
[#2]: https://github.com/fnichol/knife/issues/2
|
145
|
+
[#3]: https://github.com/fnichol/knife/issues/3
|
146
|
+
[#5]: https://github.com/fnichol/knife/issues/5
|
147
|
+
[#7]: https://github.com/fnichol/knife/issues/7
|
148
|
+
[#8]: https://github.com/fnichol/knife/issues/8
|
149
|
+
[#9]: https://github.com/fnichol/knife/issues/9
|
150
|
+
[#10]: https://github.com/fnichol/knife/issues/10
|
151
|
+
[#11]: https://github.com/fnichol/knife/issues/11
|
152
|
+
[#13]: https://github.com/fnichol/knife/issues/13
|
153
|
+
[#15]: https://github.com/fnichol/knife/issues/15
|
154
|
+
[#29]: https://github.com/fnichol/knife/issues/29
|
155
|
+
[#34]: https://github.com/fnichol/knife/issues/34
|
156
|
+
[#35]: https://github.com/fnichol/knife/issues/35
|
132
157
|
[@danryan]: https://github.com/danryan
|
133
158
|
[@erikh]: https://github.com/erikh
|
134
159
|
[@fnichol]: https://github.com/fnichol
|
135
160
|
[@iafonov]: https://github.com/iafonov
|
161
|
+
[@jssjr]: https://github.com/jssjr
|
162
|
+
[@ranjib]: https://github.com/ranjib
|
136
163
|
[@stormsilver]: https://github.com/stormsilver
|
137
164
|
[@wpeterson]: https://github.com/wpeterson
|
138
165
|
[@xdissent]: https://github.com/xdissent
|
data/README.md
CHANGED
@@ -52,7 +52,7 @@ $ knife server bootstrap standalone \
|
|
52
52
|
--node-name chefapalooza.example.com \
|
53
53
|
--host 192.168.33.10 \
|
54
54
|
--ssh-user vagrant \
|
55
|
-
--ssh
|
55
|
+
--ssh-password vagrant
|
56
56
|
```
|
57
57
|
|
58
58
|
Taking a backup of all node, role, data bag, and environment data is also a
|
data/knife-server.gemspec
CHANGED
@@ -30,6 +30,23 @@ rpm_filename() {
|
|
30
30
|
filename="chef-${version}.${machine}.rpm"
|
31
31
|
}
|
32
32
|
|
33
|
+
failed_download() {
|
34
|
+
warn "We encountered an error downloading the package."
|
35
|
+
echo
|
36
|
+
exit 5
|
37
|
+
}
|
38
|
+
|
39
|
+
perform_download() {
|
40
|
+
case "$1" in
|
41
|
+
wget)
|
42
|
+
wget -O "$2" "$3" 2>/tmp/stderr || failed_download
|
43
|
+
;;
|
44
|
+
curl)
|
45
|
+
curl -L "$3" > "$2" || failed_download
|
46
|
+
;;
|
47
|
+
esac
|
48
|
+
}
|
49
|
+
|
33
50
|
download_package() {
|
34
51
|
if [ -f "/opt/chef-server/bin/chef-server-ctl" ] ; then
|
35
52
|
info "Chef Server detected in /opt/chef-server, skipping download"
|
@@ -39,16 +56,18 @@ download_package() {
|
|
39
56
|
local url="$(package_url)"
|
40
57
|
|
41
58
|
banner "Downloading Chef Server package from $url to $tmp_dir/$filename"
|
59
|
+
|
42
60
|
if exists wget;
|
43
61
|
then
|
44
|
-
wget
|
62
|
+
perform_download wget "$tmp_dir/$filename" $url
|
45
63
|
elif exists curl;
|
46
64
|
then
|
47
|
-
curl
|
65
|
+
perform_download curl "$tmp_dir/$filename" $url
|
48
66
|
else
|
49
67
|
warn "Cannot find wget or curl - cannot install Chef Server!"
|
50
68
|
exit 5
|
51
69
|
fi
|
70
|
+
|
52
71
|
info "Download complete"
|
53
72
|
}
|
54
73
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
bash
|
1
|
+
bash <<'EOS'
|
2
2
|
<%
|
3
3
|
require 'erb'
|
4
4
|
|
@@ -45,7 +45,7 @@ add_opscode_apt_repo() {
|
|
45
45
|
apt-get update
|
46
46
|
# permanent upgradeable keyring
|
47
47
|
apt-get install -y --force-yes opscode-keyring
|
48
|
-
apt-get upgrade -y
|
48
|
+
apt-get dist-upgrade -y
|
49
49
|
}
|
50
50
|
|
51
51
|
preseed_chef_pkg() {
|
@@ -64,7 +64,8 @@ PRESEED
|
|
64
64
|
install_chef_server() {
|
65
65
|
preseed_chef_pkg
|
66
66
|
|
67
|
-
apt-get
|
67
|
+
apt-get update
|
68
|
+
apt-get install -y chef chef-server libshadow-ruby1.8
|
68
69
|
}
|
69
70
|
|
70
71
|
config_chef_solo() {
|
@@ -105,5 +106,5 @@ add_opscode_apt_repo
|
|
105
106
|
install_chef_server
|
106
107
|
enable_ssl_proxy
|
107
108
|
|
108
|
-
banner "
|
109
|
-
|
109
|
+
banner "Bootstrapping Chef Server on ${hostname} is complete."
|
110
|
+
EOS
|
@@ -25,6 +25,7 @@ export prerelease="<%= @config[:prerelease] == true %>"
|
|
25
25
|
export webui_enable="<%= @chef_config[:knife][:webui_enable] == true %>"
|
26
26
|
export webui_password="<%= ENV['WEBUI_PASSWORD'] %>"
|
27
27
|
export amqp_password="<%= ENV['AMQP_PASSWORD'] %>"
|
28
|
+
export no_test="<%= ENV['NO_TEST'] %>"
|
28
29
|
|
29
30
|
<%= render "common.sh" %>
|
30
31
|
|
@@ -57,8 +58,11 @@ install_package
|
|
57
58
|
prepare_chef_server_rb
|
58
59
|
symlink_binaries
|
59
60
|
reconfigure_chef_server
|
60
|
-
|
61
|
+
if [ ! -n "$no_test"]
|
62
|
+
then
|
63
|
+
test_chef_server
|
64
|
+
fi
|
61
65
|
configure_firewall
|
62
66
|
|
63
|
-
banner "
|
67
|
+
banner "Bootstrapping Chef Server on ${hostname} is complete."
|
64
68
|
'
|
@@ -73,6 +73,11 @@ class Chef
|
|
73
73
|
:description => "Set the log level (debug, info, warn, error, fatal)",
|
74
74
|
:proc => Proc.new { |v| Chef::Config[:knife][:log_level] = v.to_sym },
|
75
75
|
:default => :error
|
76
|
+
|
77
|
+
option :no_test,
|
78
|
+
:short => "-n",
|
79
|
+
:long => "--no-test",
|
80
|
+
:description => "Do not run opscode pedant as a part of the omnibus installation"
|
76
81
|
end
|
77
82
|
end
|
78
83
|
|
@@ -67,8 +67,9 @@ class Chef
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def ec2_bootstrap
|
70
|
-
ENV['WEBUI_PASSWORD'] =
|
71
|
-
ENV['AMQP_PASSWORD'] =
|
70
|
+
ENV['WEBUI_PASSWORD'] = config_val(:webui_password)
|
71
|
+
ENV['AMQP_PASSWORD'] = config_val(:amqp_password)
|
72
|
+
ENV['NO_TEST'] = "1" if config[:no_test]
|
72
73
|
bootstrap = Chef::Knife::Ec2ServerCreate.new
|
73
74
|
Chef::Knife::Ec2ServerCreate.options.keys.each do |attr|
|
74
75
|
bootstrap.config[attr] = config_val(attr)
|
@@ -111,10 +112,13 @@ class Chef
|
|
111
112
|
end
|
112
113
|
|
113
114
|
def config_security_group(name = nil)
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
115
|
+
if config[:security_group_ids].nil? || config[:security_group_ids].empty?
|
116
|
+
name = config_val(:security_groups).first if name.nil?
|
117
|
+
::Knife::Server::Ec2SecurityGroup.new(ec2_connection, ui).
|
118
|
+
configure_chef_server_group(name, :description => "#{name} group")
|
119
|
+
else
|
120
|
+
config[:security_groups] = nil
|
121
|
+
end
|
118
122
|
end
|
119
123
|
|
120
124
|
def bootstrap_tags
|
@@ -52,13 +52,15 @@ class Chef
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def standalone_bootstrap
|
55
|
-
ENV['WEBUI_PASSWORD'] =
|
56
|
-
ENV['AMQP_PASSWORD'] =
|
55
|
+
ENV['WEBUI_PASSWORD'] = config_val(:webui_password)
|
56
|
+
ENV['AMQP_PASSWORD'] = config_val(:amqp_password)
|
57
|
+
ENV['NO_TEST'] = "1" if config[:no_test]
|
57
58
|
bootstrap = Chef::Knife::Bootstrap.new
|
58
59
|
bootstrap.name_args = [ config[:host] ]
|
59
60
|
Chef::Knife::Bootstrap.options.keys.each do |attr|
|
60
61
|
bootstrap.config[attr] = config_val(attr)
|
61
62
|
end
|
63
|
+
bootstrap.ui = self.ui
|
62
64
|
bootstrap.config[:distro] = bootstrap_distro
|
63
65
|
bootstrap.config[:use_sudo] = true unless config_val(:ssh_user) == "root"
|
64
66
|
bootstrap
|
data/lib/knife/server/version.rb
CHANGED
@@ -107,6 +107,17 @@ describe Chef::Knife::ServerBootstrapStandalone do
|
|
107
107
|
bootstrap.should be_a(Chef::Knife::Bootstrap)
|
108
108
|
end
|
109
109
|
|
110
|
+
it "copies our UI object to the bootstrap object" do
|
111
|
+
bootstrap.ui.object_id.should eq(@knife.ui.object_id)
|
112
|
+
end
|
113
|
+
|
114
|
+
it "sets NO_TEST in the environment when the option is provided" do
|
115
|
+
@knife.config[:no_test] = true
|
116
|
+
bootstrap.should_not be_nil
|
117
|
+
ENV["NO_TEST"].should eq("1")
|
118
|
+
ENV.delete("NO_TEST")
|
119
|
+
end
|
120
|
+
|
110
121
|
it "configs the bootstrap's chef_node_name" do
|
111
122
|
bootstrap.config[:chef_node_name].should eq("shave.yak")
|
112
123
|
end
|
@@ -209,7 +220,7 @@ describe Chef::Knife::ServerBootstrapStandalone do
|
|
209
220
|
end
|
210
221
|
|
211
222
|
let(:bootstrap) do
|
212
|
-
stub(:run => true, :config => Hash.new, :name_args= => true)
|
223
|
+
stub(:run => true, :config => Hash.new, :ui= => true, :name_args= => true)
|
213
224
|
end
|
214
225
|
|
215
226
|
let(:ssh) { stub(:exec! => true) }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.3
|
117
|
+
version: '0.3'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
requirements:
|
123
123
|
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.3
|
125
|
+
version: '0.3'
|
126
126
|
description: Chef Knife plugin to bootstrap Chef Servers
|
127
127
|
email:
|
128
128
|
- fnichol@nichol.ca
|
@@ -179,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
179
179
|
version: '0'
|
180
180
|
segments:
|
181
181
|
- 0
|
182
|
-
hash:
|
182
|
+
hash: -2573931868041806838
|
183
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
184
|
none: false
|
185
185
|
requirements:
|
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
188
|
version: '0'
|
189
189
|
segments:
|
190
190
|
- 0
|
191
|
-
hash:
|
191
|
+
hash: -2573931868041806838
|
192
192
|
requirements: []
|
193
193
|
rubyforge_project:
|
194
194
|
rubygems_version: 1.8.24
|