kitchen-puppet 0.0.26 → 0.0.27
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +2 -0
- data/kitchen-puppet.gemspec +2 -3
- data/lib/kitchen-puppet/version.rb +1 -1
- data/lib/kitchen/provisioner/puppet_agent.rb +2 -2
- data/lib/kitchen/provisioner/puppet_apply.rb +141 -112
- data/provisioner_options.md +26 -4
- metadata +16 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b8382ef035bf6ae265058c0b93fd30050fd5358c
|
4
|
+
data.tar.gz: 9b2fbd62a52a3dbbcae027578b01da659b5cf3a9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 248f01585db42e2130a5f72a1d56a8d44dd7ee06c007528f931f411db239e09b9d13e792a868a5b21e459820d9b1f83cc6e794bbcbd38ca22d0820de75a7abeb
|
7
|
+
data.tar.gz: eb449b9835f2b033dd755f31b7d21c63535e553765783f1586598b71c46ccbb504c08133f10edca0bf179708c261814202fc2a27fe627808c6d4acf3de8cba82
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Kitchen Puppet
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/kitchen-puppet.svg)](http://badge.fury.io/rb/kitchen-puppet)
|
4
|
+
[![Gem Downloads](http://ruby-gem-downloads-badge.herokuapp.com/kitchen-puppet?type=total&color=brightgreen)](https://rubygems.org/gems/kitchen-puppet)
|
5
|
+
[![Build Status](https://travis-ci.org/neillturner/kitchen-puppet.png)](https://travis-ci.org/neillturner/kitchen-puppet)
|
4
6
|
|
5
7
|
# kitchen-puppet
|
6
8
|
A Test Kitchen Provisioner for Puppet
|
data/kitchen-puppet.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ['neillwturner@gmail.com']
|
11
11
|
s.homepage = 'https://github.com/neillturner/kitchen-puppet'
|
12
12
|
s.summary = 'puppet provisioner for test-kitchen'
|
13
|
-
candidates = Dir.glob('{lib}/**/*') +
|
13
|
+
candidates = Dir.glob('{lib}/**/*') + ['README.md', 'provisioner_options.md', 'kitchen-puppet.gemspec']
|
14
14
|
s.files = candidates.sort
|
15
15
|
s.platform = Gem::Platform::RUBY
|
16
16
|
s.require_paths = ['lib']
|
@@ -22,7 +22,6 @@ Puppet Provisioner for Test Kitchen
|
|
22
22
|
|
23
23
|
== FEATURES:
|
24
24
|
|
25
|
-
Supports puppet apply, puppet agent, hiera, hiera-eyaml, custom facts, librarian-puppet, puppet collections (v4)
|
26
|
-
|
25
|
+
Supports puppet apply, puppet agent, hiera, hiera-eyaml, custom facts, librarian-puppet, puppet collections (v4)
|
27
26
|
EOF
|
28
27
|
end
|
@@ -356,11 +356,11 @@ module Kitchen
|
|
356
356
|
end
|
357
357
|
|
358
358
|
def gem_proxy_parm
|
359
|
-
http_proxy ?
|
359
|
+
http_proxy ? "--http-proxy #{http_proxy}" : nil
|
360
360
|
end
|
361
361
|
|
362
362
|
def wget_proxy_parm
|
363
|
-
http_proxy ?
|
363
|
+
http_proxy ? "-e use_proxy=yes -e http_proxy=#{http_proxy}" : nil
|
364
364
|
end
|
365
365
|
|
366
366
|
def http_proxy
|
@@ -145,16 +145,16 @@ module Kitchen
|
|
145
145
|
type == :directory ? File.directory?(c) : File.file?(c)
|
146
146
|
end
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
# TODO: refactor for smaller cyclomatic complexity and perceived complexity
|
150
150
|
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
151
151
|
def install_command
|
152
152
|
return unless config[:require_puppet_collections] || config[:require_puppet_repo]
|
153
153
|
if config[:require_puppet_collections]
|
154
|
-
|
154
|
+
install_command_collections
|
155
155
|
else
|
156
|
-
|
157
|
-
|
156
|
+
case puppet_platform
|
157
|
+
when 'debian', 'ubuntu'
|
158
158
|
info("Installing puppet on #{puppet_platform}")
|
159
159
|
<<-INSTALL
|
160
160
|
if [ ! $(which puppet) ]; then
|
@@ -171,29 +171,23 @@ module Kitchen
|
|
171
171
|
INSTALL
|
172
172
|
when 'redhat', 'centos', 'fedora', 'oracle', 'amazon'
|
173
173
|
info("Installing puppet from yum on #{puppet_platform}")
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
#{install_busser}
|
183
|
-
INSTALL
|
174
|
+
<<-INSTALL
|
175
|
+
if [ ! $(which puppet) ]; then
|
176
|
+
#{install_puppet_yum_repo}
|
177
|
+
fi
|
178
|
+
#{install_eyaml}
|
179
|
+
#{install_deep_merge}
|
180
|
+
#{install_busser}
|
181
|
+
INSTALL
|
184
182
|
else
|
185
183
|
info('Installing puppet, will try to determine platform os')
|
186
184
|
<<-INSTALL
|
187
185
|
if [ ! $(which puppet) ]; then
|
188
186
|
if [ -f /etc/centos-release ] || [ -f /etc/redhat-release ] || [ -f /etc/oracle-release ]; then
|
189
|
-
#{
|
190
|
-
#{update_packages_redhat_cmd}
|
191
|
-
#{sudo_env('yum')} -y install puppet#{puppet_redhat_version}
|
187
|
+
#{install_puppet_yum_repo}
|
192
188
|
else
|
193
189
|
if [ -f /etc/system-release ] || [ grep -q 'Amazon Linux' /etc/system-release ]; then
|
194
|
-
#{
|
195
|
-
#{update_packages_redhat_cmd}
|
196
|
-
#{sudo_env('yum')} -y install puppet#{puppet_redhat_version}
|
190
|
+
#{install_puppet_yum_repo}
|
197
191
|
else
|
198
192
|
#{sudo('apt-get')} -y install wget
|
199
193
|
#{sudo('wget')} #{wget_proxy_parm} #{puppet_apt_repo}
|
@@ -209,62 +203,64 @@ module Kitchen
|
|
209
203
|
#{install_busser}
|
210
204
|
INSTALL
|
211
205
|
end
|
212
|
-
end
|
206
|
+
end
|
213
207
|
end
|
214
|
-
|
208
|
+
|
215
209
|
def install_command_collections
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
#{sudo('apt-get')} -y install wget
|
256
|
-
#{sudo('wget')} #{wget_proxy_parm} #{config[:puppet_apt_collections_repo]}
|
257
|
-
#{sudo('dpkg')} -i #{puppet_apt_coll_repo_file}
|
210
|
+
case puppet_platform
|
211
|
+
when 'debian', 'ubuntu'
|
212
|
+
info("Installing Puppet Collections on #{puppet_platform}")
|
213
|
+
<<-INSTALL
|
214
|
+
#{sudo('apt-get')} -y install wget
|
215
|
+
#{sudo('wget')} #{wget_proxy_parm} #{config[:puppet_apt_collections_repo]}
|
216
|
+
#{sudo('dpkg')} -i #{puppet_apt_coll_repo_file}
|
217
|
+
INSTALL
|
218
|
+
when 'redhat', 'centos', 'fedora', 'oracle', 'amazon'
|
219
|
+
info("Installing Puppet Collections on #{puppet_platform}")
|
220
|
+
<<-INSTALL
|
221
|
+
#{Util.shell_helpers}
|
222
|
+
if [ ! -d "#{config[:puppet_coll_remote_path]}" ]; then
|
223
|
+
echo "-----> #{sudo_env('yum')} -y localinstall #{config[:puppet_yum_collections_repo]}"
|
224
|
+
#{sudo_env('yum')} -y localinstall #{config[:puppet_yum_collections_repo]}
|
225
|
+
#{sudo_env('yum')} -y install puppet
|
226
|
+
fi
|
227
|
+
#{install_eyaml("#{config[:puppet_coll_remote_path]}/puppet/bin/gem")}
|
228
|
+
#{install_deep_merge}
|
229
|
+
#{install_busser}
|
230
|
+
INSTALL
|
231
|
+
else
|
232
|
+
info('Installing Puppet Collections, will try to determine platform os')
|
233
|
+
<<-INSTALL
|
234
|
+
if [ ! -d "#{config[:puppet_coll_remote_path]}" ]; then
|
235
|
+
if [ -f /etc/centos-release ] || [ -f /etc/redhat-release ] || [ -f /etc/oracle-release ]; then
|
236
|
+
#{Util.shell_helpers}
|
237
|
+
if [ ! -d "#{config[:puppet_coll_remote_path]}" ]; then
|
238
|
+
echo "-----> #{sudo_env('yum')} -y localinstall #{config[:puppet_yum_collections_repo]}"
|
239
|
+
#{sudo_env('yum')} -y localinstall #{config[:puppet_yum_collections_repo]}
|
240
|
+
#{sudo_env('yum')} -y install puppet
|
241
|
+
fi
|
242
|
+
else
|
243
|
+
if [ -f /etc/system-release ] || [ grep -q 'Amazon Linux' /etc/system-release ]; then
|
244
|
+
#{Util.shell_helpers}
|
245
|
+
if [ ! -d "#{config[:puppet_coll_remote_path]}" ]; then
|
246
|
+
echo "-----> #{sudo_env('yum')} -y localinstall #{config[:puppet_yum_collections_repo]}"
|
247
|
+
#{sudo_env('yum')} -y localinstall #{config[:puppet_yum_collections_repo]}
|
248
|
+
#{sudo_env('yum')} -y install puppet
|
258
249
|
fi
|
250
|
+
else
|
251
|
+
#{sudo('apt-get')} -y install wget
|
252
|
+
#{sudo('wget')} #{wget_proxy_parm} #{config[:puppet_apt_collections_repo]}
|
253
|
+
#{sudo('dpkg')} -i #{puppet_apt_coll_repo_file}
|
259
254
|
fi
|
260
255
|
fi
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
256
|
+
fi
|
257
|
+
#{install_eyaml("#{config[:puppet_coll_remote_path]}/puppet/bin/gem")}
|
258
|
+
#{install_deep_merge}
|
259
|
+
#{install_busser}
|
260
|
+
INSTALL
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
268
264
|
def install_deep_merge
|
269
265
|
return unless config[:hiera_deep_merge]
|
270
266
|
<<-INSTALL
|
@@ -276,7 +272,7 @@ module Kitchen
|
|
276
272
|
INSTALL
|
277
273
|
end
|
278
274
|
|
279
|
-
def install_eyaml(gem_cmd='gem')
|
275
|
+
def install_eyaml(gem_cmd = 'gem')
|
280
276
|
return unless config[:hiera_eyaml]
|
281
277
|
<<-INSTALL
|
282
278
|
# A backend for Hiera that provides per-value asymmetric encryption of sensitive data
|
@@ -305,6 +301,40 @@ module Kitchen
|
|
305
301
|
INSTALL
|
306
302
|
end
|
307
303
|
|
304
|
+
# /bin/wget -P /etc/pki/rpm-gpg/ http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
|
305
|
+
# changed to curl
|
306
|
+
|
307
|
+
def install_puppet_yum_repo
|
308
|
+
<<-INSTALL
|
309
|
+
rhelversion=$(cat /etc/redhat-release | grep release\ 7)
|
310
|
+
# For CentOS7/RHEL7 the rdo release contains puppetlabs repo, creating conflict. Create temp-repo
|
311
|
+
#{sudo_env('curl')} -o /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
|
312
|
+
if [ -n "$rhelversion" ]; then
|
313
|
+
echo '[puppettemp-products]
|
314
|
+
name=Puppet Labs Products - \$basearch
|
315
|
+
baseurl=http://yum.puppetlabs.com/el/7/products/\$basearch
|
316
|
+
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
|
317
|
+
enabled=0
|
318
|
+
gpgcheck=1
|
319
|
+
[puppettemp-deps]
|
320
|
+
name=Puppet Labs Dependencies - \$basearch
|
321
|
+
baseurl=http://yum.puppetlabs.com/el/7/dependencies/\$basearch
|
322
|
+
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
|
323
|
+
enabled=0
|
324
|
+
gpgcheck=1' >> /etc/yum.repos.d/puppettemp.repo
|
325
|
+
#{update_packages_redhat_cmd}
|
326
|
+
#{sudo_env('yum')} -y --enablerepo=puppettemp-products --enablerepo=puppettemp-deps install puppet#{puppet_redhat_version}
|
327
|
+
# Clean up temporary puppet repo
|
328
|
+
rm -rf /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
|
329
|
+
rm -rf /etc/yum.repos.d/puppettemp.repo
|
330
|
+
else
|
331
|
+
#{sudo('rpm')} -ivh #{proxy_parm} #{puppet_yum_repo}
|
332
|
+
#{update_packages_redhat_cmd}
|
333
|
+
#{sudo_env('yum')} -y install puppet#{puppet_redhat_version}
|
334
|
+
fi
|
335
|
+
INSTALL
|
336
|
+
end
|
337
|
+
|
308
338
|
def init_command
|
309
339
|
dirs = %w(modules manifests files hiera hiera.yaml)
|
310
340
|
.map { |dir| File.join(config[:root_path], dir) }.join(' ')
|
@@ -350,19 +380,18 @@ module Kitchen
|
|
350
380
|
end
|
351
381
|
|
352
382
|
if puppet_git_pr
|
353
|
-
commands << [
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
commands << [
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
].join(' ')
|
383
|
+
commands << [sudo('git'),
|
384
|
+
'--git-dir=/etc/puppet/.git/',
|
385
|
+
'fetch -f',
|
386
|
+
'origin',
|
387
|
+
"pull/#{puppet_git_pr}/head:pr_#{puppet_git_pr}"
|
388
|
+
].join(' ')
|
389
|
+
|
390
|
+
commands << [sudo('git'), '--git-dir=/etc/puppet/.git/',
|
391
|
+
'--work-tree=/etc/puppet/',
|
392
|
+
'checkout',
|
393
|
+
"pr_#{puppet_git_pr}"
|
394
|
+
].join(' ')
|
366
395
|
end
|
367
396
|
|
368
397
|
if puppet_config
|
@@ -419,8 +448,8 @@ module Kitchen
|
|
419
448
|
commands << [
|
420
449
|
sudo('ln -s '), config[:root_path], File.join(puppet_dir, config[:puppet_environment])
|
421
450
|
].join(' ')
|
422
|
-
end
|
423
|
-
|
451
|
+
end
|
452
|
+
|
424
453
|
command = commands.join(' && ')
|
425
454
|
debug(command)
|
426
455
|
command
|
@@ -544,22 +573,22 @@ module Kitchen
|
|
544
573
|
config[:librarian_puppet_ssl_file]
|
545
574
|
end
|
546
575
|
|
547
|
-
def puppet_cmd
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
end
|
554
|
-
|
555
|
-
def puppet_dir
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
end
|
562
|
-
|
576
|
+
def puppet_cmd
|
577
|
+
if config[:require_puppet_collections]
|
578
|
+
sudo_env("#{config[:puppet_coll_remote_path]}/bin/puppet")
|
579
|
+
else
|
580
|
+
sudo_env('puppet')
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
def puppet_dir
|
585
|
+
if config[:require_puppet_collections]
|
586
|
+
'/etc/puppetlabs/puppet'
|
587
|
+
else
|
588
|
+
'/etc/puppet'
|
589
|
+
end
|
590
|
+
end
|
591
|
+
|
563
592
|
def puppet_debian_version
|
564
593
|
config[:puppet_version] ? "=#{config[:puppet_version]}" : nil
|
565
594
|
end
|
@@ -568,7 +597,7 @@ module Kitchen
|
|
568
597
|
config[:puppet_version] ? "-#{config[:puppet_version]}" : nil
|
569
598
|
end
|
570
599
|
|
571
|
-
def puppet_environment_flag
|
600
|
+
def puppet_environment_flag
|
572
601
|
config[:puppet_environment] ? "--environment=#{config[:puppet_environment]} --environmentpath=#{puppet_dir}" : nil
|
573
602
|
end
|
574
603
|
|
@@ -624,7 +653,7 @@ module Kitchen
|
|
624
653
|
def sudo_env(pm)
|
625
654
|
s = https_proxy ? "https_proxy=#{https_proxy}" : nil
|
626
655
|
p = http_proxy ? "http_proxy=#{http_proxy}" : nil
|
627
|
-
p || s
|
656
|
+
p || s ? "#{sudo('env')} #{p} #{s} #{pm}" : "#{sudo(pm)}"
|
628
657
|
end
|
629
658
|
|
630
659
|
def remove_puppet_repo
|
@@ -654,33 +683,33 @@ module Kitchen
|
|
654
683
|
def puppet_apt_repo_file
|
655
684
|
config[:puppet_apt_repo].split('/').last
|
656
685
|
end
|
657
|
-
|
686
|
+
|
658
687
|
def puppet_apt_coll_repo_file
|
659
688
|
config[:puppet_apt_collections_repo].split('/').last
|
660
|
-
end
|
689
|
+
end
|
661
690
|
|
662
691
|
def puppet_yum_repo
|
663
692
|
config[:puppet_yum_repo]
|
664
693
|
end
|
665
694
|
|
666
695
|
def proxy_parm
|
667
|
-
http_proxy ?
|
696
|
+
http_proxy ? "--httpproxy #{URI.parse(http_proxy).host.downcase} --httpport #{URI.parse(http_proxy).port} " : nil
|
668
697
|
end
|
669
698
|
|
670
699
|
def gem_proxy_parm
|
671
|
-
http_proxy ?
|
700
|
+
http_proxy ? "--http-proxy #{http_proxy}" : nil
|
672
701
|
end
|
673
702
|
|
674
703
|
def wget_proxy_parm
|
675
|
-
p = http_proxy ?
|
704
|
+
p = http_proxy ? "-e http_proxy=#{http_proxy}" : nil
|
676
705
|
s = https_proxy ? "-e http_proxy=#{http_proxy}" : nil
|
677
|
-
p || s
|
706
|
+
p || s ? "-e use_proxy=yes #{p} #{s}" : nil
|
678
707
|
end
|
679
708
|
|
680
709
|
def http_proxy
|
681
710
|
config[:http_proxy]
|
682
711
|
end
|
683
|
-
|
712
|
+
|
684
713
|
def https_proxy
|
685
714
|
config[:https_proxy]
|
686
715
|
end
|
data/provisioner_options.md
CHANGED
@@ -29,7 +29,7 @@ puppet_git_pr | nil | checkout specific Pull Request from repository specified i
|
|
29
29
|
update_package_repos| true| update OS repository metadata
|
30
30
|
custom_facts| Hash.new | Hash to set the puppet facts before running puppet apply
|
31
31
|
install_custom_facts| false | Install custom facts to yaml file at "/tmp/kitchen/facter/kitchen.yaml"
|
32
|
-
chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed for busser to run tests)
|
32
|
+
chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed for busser to run tests) NOTE: kitchen 1.4 only requires ruby to run busser so this is not required.
|
33
33
|
puppetfile_path | | Path to Puppetfile
|
34
34
|
puppet_apply_command | nil | Overwrite the puppet apply command. Needs "sudo -E puppet apply" as a prefix.
|
35
35
|
require_chef_for_busser | true | Install chef as currently needed by busser to run tests
|
@@ -52,6 +52,7 @@ puppet_logdest | nil | _Array_ of log destinations. Include 'console' if wanted
|
|
52
52
|
|
53
53
|
The provisioner can be configured globally or per suite, global settings act as defaults for all suites, you can then customise per suite, for example:
|
54
54
|
|
55
|
+
```yaml
|
55
56
|
---
|
56
57
|
driver:
|
57
58
|
name: vagrant
|
@@ -71,16 +72,26 @@ The provisioner can be configured globally or per suite, global settings act as
|
|
71
72
|
|
72
73
|
suites:
|
73
74
|
- name: default
|
75
|
+
```
|
76
|
+
|
77
|
+
**NOTE:** With Test-Kitchen 1.4 you not longer need chef install to run the tests. You just need ruby installed version 1.9 or higher and also add to the .kitchen.yml file
|
74
78
|
|
79
|
+
```yaml
|
80
|
+
verifier:
|
81
|
+
ruby_bindir: '/usr/bin'
|
82
|
+
```
|
83
|
+
where /usr/bin is the location of the ruby command.
|
75
84
|
|
76
|
-
in this example, vagrant will download a box for ubuntu 1204 with no configuration management installed, then install the
|
85
|
+
in this example, vagrant will download a box for ubuntu 1204 with no configuration management installed, then install the
|
86
|
+
latest puppet and puppet apply against a puppet repo from the /repository/puppet_repo directory using the defailt manifest site.pp
|
77
87
|
|
78
88
|
To override a setting at the suite-level, specify the setting name under the suite:
|
79
89
|
|
90
|
+
```yaml
|
80
91
|
suites:
|
81
92
|
- name: default
|
82
93
|
manifest: foobar.pp
|
83
|
-
|
94
|
+
```
|
84
95
|
### Per-suite Structure
|
85
96
|
|
86
97
|
It can be beneficial to keep different Puppet layouts for different suites. Rather than having to specify the manifest, modules, etc for each suite, you can create the following directory structure and they will automatically be found:
|
@@ -126,7 +137,7 @@ update_package_repos| true| update OS repository metadata
|
|
126
137
|
custom_facts| Hash.new | Hash to set the puppet facts before running puppet apply
|
127
138
|
chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed for busser to run tests)
|
128
139
|
puppet_agent_command | nil | Overwrite the puppet agent command. Needs "sudo -E puppet agent" as a prefix.
|
129
|
-
require_chef_for_busser | true | Install chef as currently needed by busser to run tests
|
140
|
+
require_chef_for_busser | true | Install chef as currently needed by busser to run tests. NOTE: kitchen 1.4 only requires ruby to run busser so this is not required.
|
130
141
|
puppet_config_path | | path of custom puppet.conf file
|
131
142
|
http_proxy | nil | use http proxy when installing puppet and packages
|
132
143
|
|
@@ -137,6 +148,7 @@ NOTE: Puppet Collections Support not in puppet agent yet
|
|
137
148
|
|
138
149
|
The provisioner can be configured globally or per suite, global settings act as defaults for all suites, you can then customise per suite, for example:
|
139
150
|
|
151
|
+
```yaml
|
140
152
|
---
|
141
153
|
driver:
|
142
154
|
name: vagrant
|
@@ -156,7 +168,15 @@ The provisioner can be configured globally or per suite, global settings act as
|
|
156
168
|
|
157
169
|
suites:
|
158
170
|
- name: default
|
171
|
+
```
|
172
|
+
|
173
|
+
**NOTE:** With Test-Kitchen 1.4 you not longer need chef install to run the tests. You just need ruby installed version 1.9 or higher and also add to the .kitchen.yml file
|
159
174
|
|
175
|
+
```yaml
|
176
|
+
verifier:
|
177
|
+
ruby_bindir: '/usr/bin'
|
178
|
+
```
|
179
|
+
where /usr/bin is the location of the ruby command.
|
160
180
|
|
161
181
|
In this example, vagrant will download a box for ubuntu 1204 with no configuration management installed, then install the latest puppet and run puppet agent against a puppet master at puppetmaster-nocm-ubuntu-1204
|
162
182
|
|
@@ -169,6 +189,8 @@ NOTE: For testing it is possible to set the puppetmaster to autosign the certifi
|
|
169
189
|
|
170
190
|
To override a setting at the suite-level, specify the setting name under the suite:
|
171
191
|
|
192
|
+
```yaml
|
172
193
|
suites:
|
173
194
|
- name: default
|
174
195
|
manifest: foobar.pp
|
196
|
+
```
|
metadata
CHANGED
@@ -1,19 +1,23 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.27
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Neill Turner
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2015-
|
11
|
+
date: 2015-05-11 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
|
-
description:
|
15
|
-
|
16
|
-
|
13
|
+
description: |
|
14
|
+
== DESCRIPTION:
|
15
|
+
|
16
|
+
Puppet Provisioner for Test Kitchen
|
17
|
+
|
18
|
+
== FEATURES:
|
19
|
+
|
20
|
+
Supports puppet apply, puppet agent, hiera, hiera-eyaml, custom facts, librarian-puppet, puppet collections (v4)
|
17
21
|
email:
|
18
22
|
- neillwturner@gmail.com
|
19
23
|
executables: []
|
@@ -30,26 +34,25 @@ files:
|
|
30
34
|
- provisioner_options.md
|
31
35
|
homepage: https://github.com/neillturner/kitchen-puppet
|
32
36
|
licenses: []
|
37
|
+
metadata: {}
|
33
38
|
post_install_message:
|
34
39
|
rdoc_options: []
|
35
40
|
require_paths:
|
36
41
|
- lib
|
37
42
|
required_ruby_version: !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
43
|
requirements:
|
40
|
-
- -
|
44
|
+
- - ">="
|
41
45
|
- !ruby/object:Gem::Version
|
42
46
|
version: '0'
|
43
47
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
48
|
requirements:
|
46
|
-
- -
|
49
|
+
- - ">="
|
47
50
|
- !ruby/object:Gem::Version
|
48
51
|
version: '0'
|
49
52
|
requirements: []
|
50
|
-
rubyforge_project:
|
51
|
-
rubygems_version:
|
53
|
+
rubyforge_project: "[none]"
|
54
|
+
rubygems_version: 2.2.2
|
52
55
|
signing_key:
|
53
|
-
specification_version:
|
56
|
+
specification_version: 4
|
54
57
|
summary: puppet provisioner for test-kitchen
|
55
58
|
test_files: []
|