knife-stackbuilder 0.5.7 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|