kitchen-puppet 0.0.17 → 0.0.18
Sign up to get free protection for your applications and to get access to all the features.
@@ -51,6 +51,8 @@ module Kitchen
|
|
51
51
|
default_config :chef_bootstrap_url, 'https://www.getchef.com/chef/install.sh'
|
52
52
|
|
53
53
|
default_config :puppet_agent_command, nil
|
54
|
+
|
55
|
+
default_config :http_proxy, nil
|
54
56
|
|
55
57
|
default_config :puppet_config_path do |provisioner|
|
56
58
|
provisioner.calculate_path('puppet.conf', :file)
|
@@ -114,7 +116,7 @@ module Kitchen
|
|
114
116
|
info("Installing puppet on #{puppet_platform}")
|
115
117
|
<<-INSTALL
|
116
118
|
if [ ! $(which puppet) ]; then
|
117
|
-
#{sudo('wget')} #{puppet_apt_repo}
|
119
|
+
#{sudo('wget')} #{wget_proxy_parm} #{puppet_apt_repo}
|
118
120
|
#{sudo('dpkg')} -i #{puppet_apt_repo_file}
|
119
121
|
#{update_packages_debian_cmd}
|
120
122
|
#{sudo('apt-get')} -y install puppet-common#{puppet_debian_version}
|
@@ -122,11 +124,11 @@ module Kitchen
|
|
122
124
|
fi
|
123
125
|
#{install_busser}
|
124
126
|
INSTALL
|
125
|
-
when 'redhat', 'centos', 'fedora'
|
127
|
+
when 'redhat', 'centos', 'fedora', 'oracle', 'amazon'
|
126
128
|
info("Installing puppet on #{puppet_platform}")
|
127
129
|
<<-INSTALL
|
128
130
|
if [ ! $(which puppet) ]; then
|
129
|
-
#{sudo('rpm')} -ivh #{puppet_yum_repo}
|
131
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
130
132
|
#{update_packages_redhat_cmd}
|
131
133
|
#{sudo('yum')} -y install puppet#{puppet_redhat_version}
|
132
134
|
fi
|
@@ -137,16 +139,16 @@ module Kitchen
|
|
137
139
|
<<-INSTALL
|
138
140
|
if [ ! $(which puppet) ]; then
|
139
141
|
if [ -f /etc/centos-release ] || [ -f /etc/redhat-release ] || [ -f /etc/oracle-release ]; then
|
140
|
-
#{sudo('rpm')} -ivh #{puppet_yum_repo}
|
142
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
141
143
|
#{update_packages_redhat_cmd}
|
142
144
|
#{sudo('yum')} -y install puppet#{puppet_redhat_version}
|
143
145
|
else
|
144
146
|
if [ -f /etc/system-release ] || grep -q 'Amazon Linux' /etc/system-release; then
|
145
|
-
#{sudo('rpm')} -ivh #{puppet_yum_repo}
|
147
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
146
148
|
#{update_packages_redhat_cmd}
|
147
149
|
#{sudo('yum')} -y install puppet#{puppet_redhat_version}
|
148
150
|
else
|
149
|
-
#{sudo('wget')} #{puppet_apt_repo}
|
151
|
+
#{sudo('wget')} #{wget_proxy_parm} #{puppet_apt_repo}
|
150
152
|
#{sudo('dpkg')} -i #{puppet_apt_repo_file}
|
151
153
|
#{update_packages_debian_cmd}
|
152
154
|
#{sudo('apt-get')} -y install puppet-common#{puppet_debian_version}
|
@@ -219,7 +221,7 @@ module Kitchen
|
|
219
221
|
else
|
220
222
|
[
|
221
223
|
custom_facts,
|
222
|
-
|
224
|
+
sudo_env('puppet'),
|
223
225
|
'agent',
|
224
226
|
puppet_server_flag,
|
225
227
|
"--waitforcert=#{config[:puppet_waitforcert]}",
|
@@ -272,12 +274,16 @@ module Kitchen
|
|
272
274
|
end
|
273
275
|
|
274
276
|
def update_packages_debian_cmd
|
275
|
-
config[:update_package_repos] ? "#{
|
277
|
+
config[:update_package_repos] ? "#{sudo_env('apt-get')} update" : nil
|
276
278
|
end
|
277
279
|
|
278
280
|
def update_packages_redhat_cmd
|
279
|
-
config[:update_package_repos] ? "#{
|
281
|
+
config[:update_package_repos] ? "#{sudo_env('yum')} makecache" : nil
|
280
282
|
end
|
283
|
+
|
284
|
+
def sudo_env(pm)
|
285
|
+
http_proxy ? "#{sudo('env')} http_proxy=#{http_proxy} #{pm}" : "#{sudo(pm)}"
|
286
|
+
end
|
281
287
|
|
282
288
|
def custom_facts
|
283
289
|
return nil if config[:custom_facts].none?
|
@@ -342,6 +348,22 @@ module Kitchen
|
|
342
348
|
def puppet_yum_repo
|
343
349
|
config[:puppet_yum_repo]
|
344
350
|
end
|
351
|
+
|
352
|
+
def proxy_parm
|
353
|
+
http_proxy ? "--httpproxy #{URI.parse(http_proxy).host.downcase} --httpport #{URI.parse(http_proxy).port} " : nil
|
354
|
+
end
|
355
|
+
|
356
|
+
def gem_proxy_parm
|
357
|
+
http_proxy ? "--http-proxy #{http_proxy}" : nil
|
358
|
+
end
|
359
|
+
|
360
|
+
def wget_proxy_parm
|
361
|
+
http_proxy ? "-e use_proxy=yes -e http_proxy=#{http_proxy}" : nil
|
362
|
+
end
|
363
|
+
|
364
|
+
def http_proxy
|
365
|
+
config[:http_proxy]
|
366
|
+
end
|
345
367
|
|
346
368
|
def chef_url
|
347
369
|
config[:chef_bootstrap_url]
|
@@ -20,6 +20,7 @@
|
|
20
20
|
# for documentation configuration parameters with puppet_apply provisioner.
|
21
21
|
#
|
22
22
|
|
23
|
+
require 'uri'
|
23
24
|
require 'json'
|
24
25
|
require 'kitchen/provisioner/base'
|
25
26
|
require 'kitchen/provisioner/puppet/librarian'
|
@@ -52,6 +53,8 @@ module Kitchen
|
|
52
53
|
default_config :chef_bootstrap_url, 'https://www.getchef.com/chef/install.sh'
|
53
54
|
|
54
55
|
default_config :puppet_apply_command, nil
|
56
|
+
|
57
|
+
default_config :http_proxy, nil
|
55
58
|
|
56
59
|
default_config :hiera_data_remote_path, '/var/lib/hiera'
|
57
60
|
default_config :manifest, 'site.pp'
|
@@ -162,21 +165,21 @@ module Kitchen
|
|
162
165
|
info("Installing puppet on #{puppet_platform}")
|
163
166
|
<<-INSTALL
|
164
167
|
if [ ! $(which puppet) ]; then
|
165
|
-
#{sudo('wget')} #{puppet_apt_repo}
|
168
|
+
#{sudo('wget')} #{wget_proxy_parm} #{puppet_apt_repo}
|
166
169
|
#{sudo('dpkg')} -i #{puppet_apt_repo_file}
|
167
170
|
#{update_packages_debian_cmd}
|
168
|
-
#{
|
169
|
-
#{
|
171
|
+
#{sudo_env('apt-get')} -y install puppet-common#{puppet_debian_version}
|
172
|
+
#{sudo_env('apt-get')} -y install puppet#{puppet_debian_version}
|
170
173
|
fi
|
171
174
|
#{install_busser}
|
172
175
|
INSTALL
|
173
|
-
when 'redhat', 'centos', 'fedora'
|
176
|
+
when 'redhat', 'centos', 'fedora', 'oracle', 'amazon'
|
174
177
|
info("Installing puppet on #{puppet_platform}")
|
175
178
|
<<-INSTALL
|
176
179
|
if [ ! $(which puppet) ]; then
|
177
|
-
#{sudo('rpm')} -ivh #{puppet_yum_repo}
|
180
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
178
181
|
#{update_packages_redhat_cmd}
|
179
|
-
#{
|
182
|
+
#{sudo_env('yum')} -y install puppet#{puppet_redhat_version}
|
180
183
|
fi
|
181
184
|
#{install_busser}
|
182
185
|
INSTALL
|
@@ -185,20 +188,20 @@ module Kitchen
|
|
185
188
|
<<-INSTALL
|
186
189
|
if [ ! $(which puppet) ]; then
|
187
190
|
if [ -f /etc/centos-release ] || [ -f /etc/redhat-release ] || [ -f /etc/oracle-release ]; then
|
188
|
-
#{sudo('rpm')} -ivh #{puppet_yum_repo}
|
191
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
189
192
|
#{update_packages_redhat_cmd}
|
190
|
-
#{
|
193
|
+
#{sudo_env('yum')} -y install puppet#{puppet_redhat_version}
|
191
194
|
else
|
192
195
|
if [ -f /etc/system-release ] || [ grep -q 'Amazon Linux' /etc/system-release ]; then
|
193
|
-
#{sudo('rpm')} -ivh #{puppet_yum_repo}
|
196
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
194
197
|
#{update_packages_redhat_cmd}
|
195
|
-
#{
|
198
|
+
#{sudo_env('yum')} -y install puppet#{puppet_redhat_version}
|
196
199
|
else
|
197
|
-
#{sudo('wget')} #{puppet_apt_repo}
|
200
|
+
#{sudo('wget')} #{wget_proxy_parm} #{puppet_apt_repo}
|
198
201
|
#{sudo('dpkg')} -i #{puppet_apt_repo_file}
|
199
202
|
#{update_packages_debian_cmd}
|
200
|
-
#{
|
201
|
-
#{
|
203
|
+
#{sudo_env('apt-get')} -y install puppet-common#{puppet_debian_version}
|
204
|
+
#{sudo_env('apt-get')} -y install puppet#{puppet_debian_version}
|
202
205
|
fi
|
203
206
|
fi
|
204
207
|
fi
|
@@ -216,7 +219,7 @@ module Kitchen
|
|
216
219
|
# A backend for Hiera that provides per-value asymmetric encryption of sensitive data
|
217
220
|
if [[ $(#{sudo('gem')} list hiera-eyaml -i) == 'false' ]]; then
|
218
221
|
echo "-----> Installing hiera-eyaml to provide encryption of hiera data"
|
219
|
-
#{sudo('gem')} install --no-ri --no-rdoc hiera-eyaml
|
222
|
+
#{sudo('gem')} install #{gem_proxy_parm} --no-ri --no-rdoc hiera-eyaml
|
220
223
|
fi
|
221
224
|
INSTALL
|
222
225
|
end
|
@@ -333,7 +336,7 @@ module Kitchen
|
|
333
336
|
[
|
334
337
|
custom_facts,
|
335
338
|
facter_facts,
|
336
|
-
|
339
|
+
sudo_env('puppet'),
|
337
340
|
'apply',
|
338
341
|
File.join(config[:root_path], 'manifests', manifest),
|
339
342
|
"--modulepath=#{File.join(config[:root_path], 'modules')}",
|
@@ -469,12 +472,17 @@ module Kitchen
|
|
469
472
|
end
|
470
473
|
|
471
474
|
def update_packages_debian_cmd
|
472
|
-
config[:update_package_repos] ? "#{
|
475
|
+
config[:update_package_repos] ? "#{sudo_env('apt-get')} update" : nil
|
473
476
|
end
|
474
477
|
|
475
478
|
def update_packages_redhat_cmd
|
476
|
-
|
479
|
+
# #{sudo('yum')}
|
480
|
+
config[:update_package_repos] ? "#{sudo_env('yum')} makecache" : nil
|
477
481
|
end
|
482
|
+
|
483
|
+
def sudo_env(pm)
|
484
|
+
http_proxy ? "#{sudo('env')} http_proxy=#{http_proxy} #{pm}" : "#{sudo(pm)}"
|
485
|
+
end
|
478
486
|
|
479
487
|
def remove_puppet_repo
|
480
488
|
config[:remove_puppet_repo]
|
@@ -489,11 +497,7 @@ module Kitchen
|
|
489
497
|
end
|
490
498
|
|
491
499
|
def remove_repo
|
492
|
-
|
493
|
-
"; #{sudo('rm')} -rf /tmp/kitchen #{hiera_data_remote_path} #{hiera_eyaml_key_remote_path} /etc/puppet/* "
|
494
|
-
else
|
495
|
-
nil
|
496
|
-
end
|
500
|
+
remove_puppet_repo ? "; #{sudo('rm')} -rf /tmp/kitchen #{hiera_data_remote_path} #{hiera_eyaml_key_remote_path} /etc/puppet/* " : nil
|
497
501
|
end
|
498
502
|
|
499
503
|
def puppet_apt_repo
|
@@ -507,6 +511,22 @@ module Kitchen
|
|
507
511
|
def puppet_yum_repo
|
508
512
|
config[:puppet_yum_repo]
|
509
513
|
end
|
514
|
+
|
515
|
+
def proxy_parm
|
516
|
+
http_proxy ? "--httpproxy #{URI.parse(http_proxy).host.downcase} --httpport #{URI.parse(http_proxy).port} " : nil
|
517
|
+
end
|
518
|
+
|
519
|
+
def gem_proxy_parm
|
520
|
+
http_proxy ? "--http-proxy #{http_proxy}" : nil
|
521
|
+
end
|
522
|
+
|
523
|
+
def wget_proxy_parm
|
524
|
+
http_proxy ? "-e use_proxy=yes -e http_proxy=#{http_proxy}" : nil
|
525
|
+
end
|
526
|
+
|
527
|
+
def http_proxy
|
528
|
+
config[:http_proxy]
|
529
|
+
end
|
510
530
|
|
511
531
|
def chef_url
|
512
532
|
config[:chef_bootstrap_url]
|
data/provisioner_options.md
CHANGED
@@ -37,6 +37,7 @@ hiera_eyaml | false | use hiera-eyaml to encrypt hiera data
|
|
37
37
|
hiera_eyaml_key_remote_path | "/etc/puppet/secure/keys" | directory of hiera-eyaml keys on server
|
38
38
|
hiera_eyaml_key_path | "hiera_keys" | directory of hiera-eyaml keys on workstation
|
39
39
|
facter_file | nil | yaml file of custom facter_files to be provided to the puppet-apply command
|
40
|
+
http_proxy | nil | use http proxy when installing puppet and packages
|
40
41
|
|
41
42
|
## Puppet Apply Configuring Provisioner Options
|
42
43
|
|
@@ -118,6 +119,7 @@ chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed
|
|
118
119
|
puppet_agent_command | nil | Overwrite the puppet agent command. Needs "sudo -E puppet agent" as a prefix.
|
119
120
|
require_chef_for_busser | true | Install chef as currently needed by busser to run tests
|
120
121
|
puppet_config_path | | path of custom puppet.conf file
|
122
|
+
http_proxy | nil | use http proxy when installing puppet and packages
|
121
123
|
|
122
124
|
|
123
125
|
## Puppet Agent Configuring Provisioner Options
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
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: 2014-
|
12
|
+
date: 2014-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! '== DESCRIPTION:
|
15
15
|
|