knife-stackbuilder 0.5.7 → 0.5.8
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.
- checksums.yaml +4 -4
- data/lib/stackbuilder/chef/repo.rb +3 -1
- data/lib/stackbuilder/chef/stack_container_node.rb +8 -1
- data/lib/stackbuilder/chef/stack_generic_node.rb +2 -0
- data/lib/stackbuilder/chef/stack_node_manager.rb +5 -3
- data/lib/stackbuilder/chef/stack_provider.rb +6 -0
- data/lib/stackbuilder/resources/Environment.rb.erb +5 -3
- data/lib/stackbuilder/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aedb4132378ee68d7c8e56a485173de58d61a428
|
4
|
+
data.tar.gz: 9fa027941863f5f08a5bdc41944256fbf728a348
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db532af7b3a449f18f47724bc7c098440cfd0f0aeda34eb6434701db013603295e3445168f9124cea1b49fc6ec21ae821275275d62b19f40f366101368d5c879
|
7
|
+
data.tar.gz: 72b4d0c1b30a929468d089d8530cd1063904eee27e4bb58b300a64d76fa1bbaa2787305229a79664a9bbfa624fb466e3643eacce75e5f6c403fabc0d7dd23f7c
|
@@ -42,7 +42,7 @@ module StackBuilder::Chef
|
|
42
42
|
|
43
43
|
@environments = [ ]
|
44
44
|
Dir["#{@repo_path}/environments/**/*.rb"].each do |envfile|
|
45
|
-
@environments << envfile
|
45
|
+
@environments << File.basename(envfile, ".rb")
|
46
46
|
end
|
47
47
|
|
48
48
|
@logger.debug("Found stack environments #{@environments}")
|
@@ -119,6 +119,8 @@ module StackBuilder::Chef
|
|
119
119
|
knife_cmd = Chef::Knife::DataBagList.new
|
120
120
|
data_bag_list = run_knife(knife_cmd).split
|
121
121
|
|
122
|
+
environments = (environment.nil? ? @environments : [ environment ])
|
123
|
+
|
122
124
|
# Create environment specific data bags to hold certificates
|
123
125
|
@environments.each do |env_name|
|
124
126
|
|
@@ -30,7 +30,14 @@ module StackBuilder::Chef
|
|
30
30
|
|
31
31
|
target_node_instance = "#{target.node_id}-#{index}"
|
32
32
|
node = Chef::Node.load(target_node_instance)
|
33
|
-
|
33
|
+
|
34
|
+
if @knife_config.has_key?('ip_attribute')
|
35
|
+
|
36
|
+
v = lambda { |h,k| k.size>1 ? v.call(h[k.shift],k) : h[k.shift] }
|
37
|
+
ipaddress = v.call(node.attributes, @knife_config['ip_attribute'].split('.'))
|
38
|
+
else
|
39
|
+
ipaddress = node.attributes['ipaddress']
|
40
|
+
end
|
34
41
|
|
35
42
|
ssh = ssh_create(ipaddress, target.ssh_user,
|
36
43
|
target.ssh_password.nil? ? target.ssh_identity_file : target.ssh_password)
|
@@ -54,6 +54,8 @@ module StackBuilder::Chef
|
|
54
54
|
config_knife(knife_cmd, knife_config['delete']['options'] || { })
|
55
55
|
config_knife(knife_cmd, knife_config['options'] || { })
|
56
56
|
|
57
|
+
knife_cmd.config[:yes] = true
|
58
|
+
|
57
59
|
if knife_config['delete']['synchronized']
|
58
60
|
@@sync ||= Mutex.new
|
59
61
|
@@sync.synchronize {
|
@@ -213,7 +213,9 @@ module StackBuilder::Chef
|
|
213
213
|
|
214
214
|
def knife_ssh(name, cmd)
|
215
215
|
|
216
|
-
|
216
|
+
knife_config_options = @knife_config['options'] || { }
|
217
|
+
|
218
|
+
sudo = knife_config_options['sudo'] ? 'sudo -i su -c ' : ''
|
217
219
|
|
218
220
|
ssh_cmd = "TMPFILE=`mktemp` && " +
|
219
221
|
"echo -e \"#{cmd.gsub(/\"/, "\\\"").gsub(/\$/, "\\$").gsub(/\`/, '\\' + '\`')}\" > $TMPFILE && " +
|
@@ -223,9 +225,9 @@ module StackBuilder::Chef
|
|
223
225
|
|
224
226
|
knife_cmd = Chef::Knife::Ssh.new
|
225
227
|
knife_cmd.name_args = [ "name:#{name}", ssh_cmd ]
|
226
|
-
knife_cmd.config[:attribute] = 'ipaddress'
|
228
|
+
knife_cmd.config[:attribute] = knife_config_options['ip_attribute'] || 'ipaddress'
|
227
229
|
|
228
|
-
config_knife(knife_cmd,
|
230
|
+
config_knife(knife_cmd, knife_config_options)
|
229
231
|
|
230
232
|
if @logger.info? || @logger.debug?
|
231
233
|
|
@@ -40,6 +40,12 @@ module StackBuilder::Chef
|
|
40
40
|
raise ArgmentError, "Stack file is fixed to the environment '#{stack_environment}', " +
|
41
41
|
" which it does not match the environment '#{@environment}' provided." \
|
42
42
|
unless stack_environment.nil? || stack_environment==@environment
|
43
|
+
|
44
|
+
unless stack['chef'].nil?
|
45
|
+
|
46
|
+
stack['chef']['knife_config'].each { |k,v| Chef::Config[:knife][k.to_sym] = v } \
|
47
|
+
if stack['chef'].has_key?('knife_config')
|
48
|
+
end
|
43
49
|
end
|
44
50
|
|
45
51
|
def get_env_vars
|
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
description "Chef '<%= @environment %>' environment."
|
1
|
+
env_name = File.basename( __FILE__, ".rb")
|
3
2
|
|
4
|
-
|
3
|
+
name env_name
|
4
|
+
description "Chef '#{env_name}' environment."
|
5
|
+
|
6
|
+
env = YAML.load_file(File.expand_path("../../etc/#{env_name}.yml", __FILE__))
|
5
7
|
|
6
8
|
override_attributes(
|
7
9
|
|
data/lib/stackbuilder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-stackbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mevan Samaratunga
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|