kitchen-ansiblepush 0.3.3 → 0.3.4
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/kitchen-ansible/util-inventory.rb +6 -3
- data/lib/kitchen-ansible/version.rb +1 -1
- data/lib/kitchen/provisioner/ansible_push.rb +41 -30
- 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: 791f46b92aef964ec79f5ad49b1c70dbf9314b91
|
|
4
|
+
data.tar.gz: f1c1fc8f780e5eed9c40347deb9a8c2d7c575408
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7dc39035080f59926a04488643dc53b57e531d69a31f59e0d7b82210f0b6937cd64fb3a8400482c2f2b8f5a7a028a89bc5cfaf49383474280ed5e3587cbc6f8d
|
|
7
|
+
data.tar.gz: 02645ad04663ed39f10f7e6845186e37b29c32e37258d33c2c175997ab58706a84184ad119c9715f42c16cd889178a2894cb382bb951cc9f2fa28e4defb55e2f
|
|
@@ -5,9 +5,12 @@ TEMP_GROUP_FILE = "#{TEMP_INV_DIR}/ansiblepush_groups_inventory.yml"
|
|
|
5
5
|
|
|
6
6
|
def write_instance_inventory(name, host, mygroup, instance_connection_option)
|
|
7
7
|
Dir.mkdir TEMP_INV_DIR if !File.exist?(TEMP_INV_DIR)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
|
|
9
|
+
unless instance_connection_option.nil?
|
|
10
|
+
port = instance_connection_option[:port]
|
|
11
|
+
keys = instance_connection_option[:keys]
|
|
12
|
+
user = instance_connection_option[:user]
|
|
13
|
+
end
|
|
11
14
|
|
|
12
15
|
temp_hash = Hash.new
|
|
13
16
|
temp_hash["ansible_ssh_host"] = host
|
|
@@ -43,6 +43,8 @@ module Kitchen
|
|
|
43
43
|
validate_config
|
|
44
44
|
prepare_inventory if config[:generate_inv]
|
|
45
45
|
complie_config
|
|
46
|
+
# Place holder so a string is returned. This will execute true on remote host
|
|
47
|
+
return "true"
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
def install_command
|
|
@@ -50,41 +52,42 @@ module Kitchen
|
|
|
50
52
|
info("*************** AnsiblePush install_command ***************")
|
|
51
53
|
omnibus_download_dir = config[:omnibus_cachier] ? "/tmp/vagrant-cache/omnibus_chef" : "/tmp"
|
|
52
54
|
chef_url = config[:chef_bootstrap_url]
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
echo "-----> Installing Chef Omnibus"
|
|
59
|
-
mkdir -p #{omnibus_download_dir}
|
|
60
|
-
if [ ! -x #{omnibus_download_dir}/install.sh ]
|
|
55
|
+
if chef_url
|
|
56
|
+
<<-INSTALL
|
|
57
|
+
sh -c '
|
|
58
|
+
#{Util.shell_helpers}
|
|
59
|
+
if [ ! -d "/opt/chef" ]
|
|
61
60
|
then
|
|
62
|
-
|
|
61
|
+
echo "-----> Installing Chef Omnibus"
|
|
62
|
+
mkdir -p #{omnibus_download_dir}
|
|
63
|
+
if [ ! -x #{omnibus_download_dir}/install.sh ]
|
|
64
|
+
then
|
|
65
|
+
do_download #{chef_url} #{omnibus_download_dir}/install.sh
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
sudo sh #{omnibus_download_dir}/install.sh -d #{omnibus_download_dir}
|
|
69
|
+
echo "-----> End Installing Chef Omnibus"
|
|
63
70
|
fi
|
|
64
71
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
fi
|
|
75
|
-
'
|
|
76
|
-
INSTALL
|
|
77
|
-
|
|
72
|
+
# Fix for https://github.com/test-kitchen/busser/issues/12
|
|
73
|
+
if [ -h /usr/bin/ruby ]; then
|
|
74
|
+
L=$(readlink -f /usr/bin/ruby)
|
|
75
|
+
sudo rm /usr/bin/ruby
|
|
76
|
+
sudo ln -s $L /usr/bin/ruby
|
|
77
|
+
fi
|
|
78
|
+
'
|
|
79
|
+
INSTALL
|
|
80
|
+
end
|
|
78
81
|
end
|
|
79
82
|
|
|
80
83
|
def run_command
|
|
81
84
|
info("*************** AnsiblePush run ***************")
|
|
82
|
-
|
|
85
|
+
exec_ansible_command(@command_env, @command, "ansible-playbook")
|
|
83
86
|
# idempotency test
|
|
84
87
|
if config[:idempotency_test]
|
|
85
88
|
info("*************** idempotency test ***************")
|
|
86
89
|
@command_env["ANSIBLE_CALLBACK_PLUGINS"] = "#{File.dirname(__FILE__)}/../../../callback/"
|
|
87
|
-
|
|
90
|
+
exec_ansible_command(@command_env, @command, "ansible-playbook")
|
|
88
91
|
# Check ansible callback if changes has occured in the second run
|
|
89
92
|
file_path = "/tmp/kitchen_ansible_callback/changes"
|
|
90
93
|
if File.file?(file_path)
|
|
@@ -104,12 +107,13 @@ module Kitchen
|
|
|
104
107
|
end
|
|
105
108
|
info("*************** AnsiblePush end run *******************")
|
|
106
109
|
debug("[#{name}] Converge completed (#{config[:sleep]}s).")
|
|
107
|
-
|
|
110
|
+
# Place holder so a string is returned. This will execute true on remote host
|
|
111
|
+
return "true"
|
|
108
112
|
end
|
|
109
113
|
|
|
110
114
|
protected
|
|
111
115
|
|
|
112
|
-
def
|
|
116
|
+
def exec_ansible_command(env, command, desc)
|
|
113
117
|
debug("env=%s command=%s" % [env, command] )
|
|
114
118
|
system(env, "#{command}")
|
|
115
119
|
exit_code = $?.exitstatus
|
|
@@ -121,16 +125,22 @@ module Kitchen
|
|
|
121
125
|
|
|
122
126
|
def prepare_inventory
|
|
123
127
|
@machine_name = instance.name.gsub(/[<>]/, '').split("-").drop(1).join("-")
|
|
128
|
+
debug("machine_name=" + @machine_name.to_s)
|
|
124
129
|
@instance_connection_option = instance.transport.instance_variable_get(:@connection_options)
|
|
125
|
-
hostname = @instance_connection_option[:hostname]
|
|
126
130
|
debug("instance_connection_option=" + @instance_connection_option.to_s)
|
|
131
|
+
hostname = if @instance_connection_option.nil?
|
|
132
|
+
@machine_name
|
|
133
|
+
else
|
|
134
|
+
@instance_connection_option[:hostname]
|
|
135
|
+
end
|
|
136
|
+
debug("hostname=" + hostname)
|
|
127
137
|
write_instance_inventory(@machine_name, hostname, config[:mygroup], @instance_connection_option)
|
|
128
138
|
end
|
|
129
139
|
|
|
130
140
|
def complie_config()
|
|
131
141
|
debug("compile_config")
|
|
132
142
|
options = []
|
|
133
|
-
options << "--extra-vars
|
|
143
|
+
options << "--extra-vars='#{self.get_extra_vars_argument}'" if config[:extra_vars]
|
|
134
144
|
options << "--sudo" if config[:sudo]
|
|
135
145
|
options << "--sudo-user=#{config[:sudo_user]}" if config[:sudo_user]
|
|
136
146
|
options << "--user=#{config[:remote_user]}" if self.get_remote_user
|
|
@@ -197,6 +207,7 @@ module Kitchen
|
|
|
197
207
|
raise "ansible extra_vars is in valid type: %s value: %s" % [config[:extra_vars].class.to_s, config[:extra_vars].to_s]
|
|
198
208
|
end
|
|
199
209
|
end
|
|
210
|
+
|
|
200
211
|
info("Ansible push config validated")
|
|
201
212
|
end
|
|
202
213
|
|
|
@@ -214,11 +225,11 @@ module Kitchen
|
|
|
214
225
|
def get_remote_user
|
|
215
226
|
if config[:remote_user]
|
|
216
227
|
return config[:remote_user]
|
|
217
|
-
elsif @instance_connection_option[:username]
|
|
228
|
+
elsif !@instance_connection_option.nil? and @instance_connection_option[:username]
|
|
218
229
|
config[:remote_user] = @instance_connection_option[:username]
|
|
219
230
|
return @instance_connection_option[:username]
|
|
220
231
|
else
|
|
221
|
-
return
|
|
232
|
+
return false
|
|
222
233
|
end
|
|
223
234
|
end
|
|
224
235
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-ansiblepush
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adham Helal
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-06-
|
|
11
|
+
date: 2015-06-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-kitchen
|