kitchen-puppet 1.42.0 → 1.43.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/lib/kitchen-puppet/version.rb +1 -1
- data/lib/kitchen/provisioner/puppet_apply.rb +129 -45
- data/provisioner_options.md +62 -55
- 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: e913481016895e945afb71d289cfdb28f659572f
|
4
|
+
data.tar.gz: 0cd76403d1c5e7ab4c6e83954679e99400a5f3f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e962188077f822eabd2d14aaadcc8ffbb217009a1e024bc87efba2d90904a2be8bf99624259f407464d48adeb9e3adc2e7369c57beff5f001a0fb95b185cf293
|
7
|
+
data.tar.gz: 676923046eb3466948e53bc3104340261155c370f8e21368ed857680a73a83e50c0945911c516e7c55a041520423f100575902edd0795991d6a147201fc8a9ec
|
data/README.md
CHANGED
@@ -61,6 +61,16 @@ For PuppetAgent a server with a puppet master is required that can resolve the h
|
|
61
61
|
|
62
62
|
You can also use the PuppetApply driver with a docker container, provided the necessary box requirements to install puppet are included inside the container. The easiest way to do this is to supply Kitchen-Docker with a custom dockerfile to install the needed dependencies for puppet installation.
|
63
63
|
|
64
|
+
## Windows Support
|
65
|
+
|
66
|
+
There is windows/winrm support, currently not all functionality is supported.
|
67
|
+
* `require_chef_for_busser: false` (it is possible to call rspec over winrm to run the tests)
|
68
|
+
* `resolve_with_librarian_puppet: false` (librarian-puppet is not working on windows server)
|
69
|
+
|
70
|
+
Sample Puppet Repositories
|
71
|
+
* A sample hello world example puppet repository: https://github.com/neillturner/puppet_windows_repo
|
72
|
+
* A more extensive sample installing virtualbox on windows: https://github.com/red-gate/puppet-virtualbox_windows
|
73
|
+
|
64
74
|
## Test-Kitchen Serverspec
|
65
75
|
|
66
76
|
To run the verify step with the test-kitchen serverspec setup your puppet repository as follows:
|
@@ -136,7 +146,7 @@ To implement this with test-kitchen setup the puppet repository with:
|
|
136
146
|
|
137
147
|
* the spec_helper in the spec folder.
|
138
148
|
|
139
|
-
* install kitchen-verifier-serverspec on your workstation i.e. 'gem install kitchen-verifier-serverspec'
|
149
|
+
* install kitchen-verifier-serverspec on your workstation i.e. 'gem install kitchen-verifier-serverspec'
|
140
150
|
|
141
151
|
|
142
152
|
See example [https://github.com/neillturner/puppet_repo](https://github.com/neillturner/puppet_repo)
|
@@ -64,6 +64,7 @@ module Kitchen
|
|
64
64
|
default_config :puppet_logdest, nil
|
65
65
|
default_config :custom_install_command, nil
|
66
66
|
default_config :custom_pre_install_command, nil
|
67
|
+
default_config :custom_pre_apply_command, nil
|
67
68
|
default_config :puppet_whitelist_exit_code, nil
|
68
69
|
default_config :require_puppet_omnibus, false
|
69
70
|
default_config :puppet_omnibus_url, 'https://raw.githubusercontent.com/petems/puppet-install-shell/master/install_puppet.sh'
|
@@ -216,6 +217,23 @@ module Kitchen
|
|
216
217
|
#{install_busser}
|
217
218
|
#{custom_install_command}
|
218
219
|
INSTALL
|
220
|
+
when /^windows.*/
|
221
|
+
info("Installing puppet on #{puppet_platform}")
|
222
|
+
<<-INSTALL
|
223
|
+
if(Get-Command puppet -ErrorAction 0) { return; }
|
224
|
+
if( [Environment]::Is64BitOperatingSystem ) {
|
225
|
+
$MsiUrl = "https://downloads.puppetlabs.com/windows/puppet-#{puppet_windows_version}-x64.msi"
|
226
|
+
} else {
|
227
|
+
$MsiUrl = "https://downloads.puppetlabs.com/windows/puppet-#{puppet_windows_version}.msi"
|
228
|
+
}
|
229
|
+
$process = Start-Process -FilePath msiexec.exe -Wait -PassThru -ArgumentList '/qn', '/norestart', '/i', $MsiUrl
|
230
|
+
if ($process.ExitCode -ne 0) {
|
231
|
+
Write-Host "Installer failed."
|
232
|
+
Exit 1
|
233
|
+
}
|
234
|
+
|
235
|
+
#{install_busser}
|
236
|
+
INSTALL
|
219
237
|
else
|
220
238
|
info('Installing puppet, will try to determine platform os')
|
221
239
|
# need to add a CR to avoid trouble with proxy settings concatenation
|
@@ -340,7 +358,19 @@ module Kitchen
|
|
340
358
|
|
341
359
|
def install_busser
|
342
360
|
return unless config[:require_chef_for_busser]
|
343
|
-
|
361
|
+
info("Install busser on #{puppet_platform}")
|
362
|
+
case puppet_platform
|
363
|
+
when /^windows.*/
|
364
|
+
# https://raw.githubusercontent.com/opscode/knife-windows/master/lib/chef/knife/bootstrap/windows-chef-client-msi.erb
|
365
|
+
<<-INSTALL
|
366
|
+
$webclient = New-Object System.Net.WebClient; $webclient.DownloadFile('https://opscode-omnibus-packages.s3.amazonaws.com/windows/2008r2/x86_64/chef-windows-11.12.8-1.windows.msi','chef-windows-11.12.8-1.windows.msi')
|
367
|
+
msiexec /qn /i chef-windows-11.12.8-1.windows.msi
|
368
|
+
|
369
|
+
cmd.exe /C "SET PATH=%PATH%;`"C:\\opscode\\chef\\embedded\\bin`";`"C:\\tmp\\busser\\gems\\bin`""
|
370
|
+
|
371
|
+
INSTALL
|
372
|
+
else
|
373
|
+
<<-INSTALL
|
344
374
|
#{Util.shell_helpers}
|
345
375
|
# install chef omnibus so that busser works as this is needed to run tests :(
|
346
376
|
# TODO: work out how to install enough ruby
|
@@ -354,7 +384,8 @@ module Kitchen
|
|
354
384
|
do_download #{chef_url} /tmp/install.sh
|
355
385
|
#{sudo('sh')} /tmp/install.sh
|
356
386
|
fi
|
357
|
-
|
387
|
+
INSTALL
|
388
|
+
end
|
358
389
|
end
|
359
390
|
|
360
391
|
def install_omnibus_command
|
@@ -434,14 +465,17 @@ module Kitchen
|
|
434
465
|
end
|
435
466
|
|
436
467
|
def init_command
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
468
|
+
todelete = %w(modules manifests files hiera hiera.yaml facter spec enc)
|
469
|
+
.map { |dir| File.join(config[:root_path], dir) }
|
470
|
+
todelete += [hiera_data_remote_path,
|
471
|
+
'/etc/hiera.yaml',
|
472
|
+
"#{puppet_dir}/hiera.yaml",
|
473
|
+
spec_files_remote_path.to_s,
|
474
|
+
"#{puppet_dir}/fileserver.conf"]
|
475
|
+
todelete += File.join(puppet_dir, config[:puppet_environment]) if config[:puppet_environment]
|
476
|
+
cmd = "#{sudo(rm_command_paths(todelete))};"
|
477
|
+
cmd += " #{mkdir_command} #{config[:root_path]};"
|
478
|
+
cmd += " #{sudo(mkdir_command)} #{puppet_dir}"
|
445
479
|
debug(cmd)
|
446
480
|
cmd
|
447
481
|
end
|
@@ -506,7 +540,7 @@ module Kitchen
|
|
506
540
|
|
507
541
|
if puppet_config
|
508
542
|
commands << [
|
509
|
-
sudo(
|
543
|
+
sudo(cp_command),
|
510
544
|
File.join(config[:root_path], 'puppet.conf'),
|
511
545
|
puppet_dir
|
512
546
|
].join(' ')
|
@@ -514,17 +548,17 @@ module Kitchen
|
|
514
548
|
|
515
549
|
if hiera_config
|
516
550
|
commands << [
|
517
|
-
sudo(
|
551
|
+
sudo(cp_command), File.join(config[:root_path], 'hiera.yaml'), '/etc/'
|
518
552
|
].join(' ')
|
519
553
|
|
520
554
|
commands << [
|
521
|
-
sudo(
|
555
|
+
sudo(cp_command), File.join(config[:root_path], 'hiera.yaml'), hiera_config_dir
|
522
556
|
].join(' ')
|
523
557
|
end
|
524
558
|
|
525
559
|
if fileserver_config
|
526
560
|
commands << [
|
527
|
-
sudo(
|
561
|
+
sudo(cp_command),
|
528
562
|
File.join(config[:root_path], 'fileserver.conf'),
|
529
563
|
puppet_dir
|
530
564
|
].join(' ')
|
@@ -532,25 +566,25 @@ module Kitchen
|
|
532
566
|
|
533
567
|
if hiera_data && hiera_data_remote_path == '/var/lib/hiera'
|
534
568
|
commands << [
|
535
|
-
sudo(
|
569
|
+
sudo("#{cp_command} -r"), File.join(config[:root_path], 'hiera'), '/var/lib/'
|
536
570
|
].join(' ')
|
537
571
|
end
|
538
572
|
|
539
573
|
if hiera_data && hiera_data_remote_path != '/var/lib/hiera'
|
540
574
|
commands << [
|
541
|
-
sudo(
|
575
|
+
sudo(mkdir_command), hiera_data_remote_path
|
542
576
|
].join(' ')
|
543
577
|
commands << [
|
544
|
-
sudo(
|
578
|
+
sudo("#{cp_command} -r"), File.join(config[:root_path], 'hiera/*'), hiera_data_remote_path
|
545
579
|
].join(' ')
|
546
580
|
end
|
547
581
|
|
548
582
|
if hiera_eyaml
|
549
583
|
commands << [
|
550
|
-
sudo(
|
584
|
+
sudo(mkdir_command), hiera_eyaml_key_remote_path
|
551
585
|
].join(' ')
|
552
586
|
commands << [
|
553
|
-
sudo(
|
587
|
+
sudo("#{cp_command} -r"), File.join(config[:root_path], 'hiera_keys/*'), hiera_eyaml_key_remote_path
|
554
588
|
].join(' ')
|
555
589
|
end
|
556
590
|
|
@@ -562,10 +596,10 @@ module Kitchen
|
|
562
596
|
|
563
597
|
if spec_files_path && spec_files_remote_path
|
564
598
|
commands << [
|
565
|
-
sudo(
|
599
|
+
sudo(mkdir_command), spec_files_remote_path
|
566
600
|
].join(' ')
|
567
601
|
commands << [
|
568
|
-
sudo(
|
602
|
+
sudo("#{cp_command} -r"), File.join(config[:root_path], 'spec/*'), spec_files_remote_path
|
569
603
|
].join(' ')
|
570
604
|
end
|
571
605
|
|
@@ -575,7 +609,7 @@ module Kitchen
|
|
575
609
|
].join(' ')
|
576
610
|
end
|
577
611
|
|
578
|
-
command = commands.join(' && ')
|
612
|
+
command = powershell_shell? ? commands.join('; ') : commands.join(' && ')
|
579
613
|
debug(command)
|
580
614
|
command
|
581
615
|
end
|
@@ -603,6 +637,12 @@ module Kitchen
|
|
603
637
|
puppet_logdest_flag,
|
604
638
|
puppet_whitelist_exit_code
|
605
639
|
].join(' ')
|
640
|
+
if config[:custom_pre_apply_command]
|
641
|
+
result = <<-RUN
|
642
|
+
#{config[:custom_pre_apply_command]}
|
643
|
+
#{result}
|
644
|
+
RUN
|
645
|
+
end
|
606
646
|
info("Going to invoke puppet apply with: #{result}")
|
607
647
|
result
|
608
648
|
end
|
@@ -702,7 +742,7 @@ module Kitchen
|
|
702
742
|
end
|
703
743
|
|
704
744
|
def puppet_cmd
|
705
|
-
puppet_bin = 'puppet'
|
745
|
+
puppet_bin = powershell_shell? ? '& "C:\Program Files\Puppet Labs\Puppet\bin\puppet"' : 'puppet'
|
706
746
|
if config[:require_puppet_collections]
|
707
747
|
puppet_bin = "#{config[:puppet_coll_remote_path]}/bin/puppet"
|
708
748
|
end
|
@@ -715,19 +755,15 @@ module Kitchen
|
|
715
755
|
end
|
716
756
|
|
717
757
|
def puppet_dir
|
718
|
-
if config[:require_puppet_collections]
|
719
|
-
|
720
|
-
|
721
|
-
'/etc/puppet'
|
722
|
-
end
|
758
|
+
return '/etc/puppetlabs/puppet' if config[:require_puppet_collections]
|
759
|
+
return '/etc/puppet' unless powershell_shell?
|
760
|
+
'C:/ProgramData/PuppetLabs/puppet/etc'
|
723
761
|
end
|
724
762
|
|
725
763
|
def hiera_config_dir
|
726
|
-
if config[:require_puppet_collections]
|
727
|
-
|
728
|
-
|
729
|
-
'/etc/puppet'
|
730
|
-
end
|
764
|
+
return '/etc/puppetlabs/code' if config[:require_puppet_collections]
|
765
|
+
return '/etc/puppet' unless powershell_shell?
|
766
|
+
'C:/ProgramData/PuppetLabs/puppet/etc'
|
731
767
|
end
|
732
768
|
|
733
769
|
def puppet_debian_version
|
@@ -750,6 +786,10 @@ module Kitchen
|
|
750
786
|
end
|
751
787
|
end
|
752
788
|
|
789
|
+
def puppet_windows_version
|
790
|
+
config[:puppet_version] ? config[:puppet_version].to_s : '3.8.6'
|
791
|
+
end
|
792
|
+
|
753
793
|
def puppet_environment_flag
|
754
794
|
if config[:puppet_version] =~ /^2/
|
755
795
|
config[:puppet_environment] ? "--environment=#{config[:puppet_environment]}" : nil
|
@@ -761,6 +801,7 @@ module Kitchen
|
|
761
801
|
def puppet_manifestdir
|
762
802
|
return nil if config[:require_puppet_collections]
|
763
803
|
return nil if config[:puppet_environment]
|
804
|
+
return nil if powershell_shell?
|
764
805
|
bash_vars = "export MANIFESTDIR='#{File.join(config[:root_path], 'manifests')}';"
|
765
806
|
debug(bash_vars)
|
766
807
|
bash_vars
|
@@ -837,10 +878,15 @@ module Kitchen
|
|
837
878
|
def custom_facts
|
838
879
|
return nil if config[:custom_facts].none?
|
839
880
|
return nil if config[:install_custom_facts]
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
881
|
+
if powershell_shell?
|
882
|
+
environment_vars = config[:custom_facts].map { |k, v| "$env:FACTER_#{k}='#{v}'" }.join('; ')
|
883
|
+
environment_vars = "#{environment_vars};"
|
884
|
+
else
|
885
|
+
environment_vars = config[:custom_facts].map { |k, v| "FACTER_#{k}=#{v}" }.join(' ')
|
886
|
+
environment_vars = "export #{environment_vars};"
|
887
|
+
end
|
888
|
+
debug(environment_vars)
|
889
|
+
environment_vars
|
844
890
|
end
|
845
891
|
|
846
892
|
def puppet_enc_flag
|
@@ -856,7 +902,13 @@ module Kitchen
|
|
856
902
|
end
|
857
903
|
|
858
904
|
def puppet_whitelist_exit_code
|
859
|
-
|
905
|
+
if config[:puppet_whitelist_exit_code].nil?
|
906
|
+
return powershell_shell? ? '; exit $LASTEXITCODE' : nil
|
907
|
+
elsif powershell_shell?
|
908
|
+
return "; if(@(#{[config[:puppet_whitelist_exit_code]].join(', ')}) -contains $LASTEXITCODE) {exit 0} else {exit $LASTEXITCODE}"
|
909
|
+
else
|
910
|
+
return "; [ $? -eq #{config[:puppet_whitelist_exit_code]} ] && exit 0"
|
911
|
+
end
|
860
912
|
end
|
861
913
|
|
862
914
|
def puppet_apt_repo
|
@@ -1004,14 +1056,10 @@ module Kitchen
|
|
1004
1056
|
debug('Found multiple directories in module path merging.....')
|
1005
1057
|
modules_array = modules.split(':')
|
1006
1058
|
modules_array.each do |m|
|
1007
|
-
|
1008
|
-
debug("Copying modules from #{m} to #{tmpmodules_dir}")
|
1009
|
-
FileUtils.cp_r(Dir.glob("#{m}/*"), tmpmodules_dir, remove_destination: true)
|
1010
|
-
end
|
1059
|
+
copy_modules(m, tmpmodules_dir)
|
1011
1060
|
end
|
1012
|
-
elsif modules
|
1013
|
-
|
1014
|
-
FileUtils.cp_r(Dir.glob("#{modules}/*"), tmpmodules_dir, remove_destination: true)
|
1061
|
+
elsif modules
|
1062
|
+
copy_modules(modules, tmpmodules_dir)
|
1015
1063
|
else
|
1016
1064
|
info 'nothing to do for modules'
|
1017
1065
|
end
|
@@ -1019,6 +1067,21 @@ module Kitchen
|
|
1019
1067
|
copy_self_as_module
|
1020
1068
|
end
|
1021
1069
|
|
1070
|
+
def copy_modules(source, destination)
|
1071
|
+
return unless File.directory?(source)
|
1072
|
+
|
1073
|
+
debug("Copying modules from #{source} to #{destination}")
|
1074
|
+
|
1075
|
+
excluded_paths = %w(modules spec pkg) + config[:ignored_paths_from_root]
|
1076
|
+
|
1077
|
+
Dir.glob("#{source}/*").each do |f|
|
1078
|
+
module_name = File.basename(f)
|
1079
|
+
target = "#{destination}/#{module_name}"
|
1080
|
+
FileUtils.mkdir_p(target) unless File.exist? target
|
1081
|
+
FileUtils.cp_r(Dir.glob("#{source}/#{module_name}/*").reject { |entry| entry =~ /#{excluded_paths.join('$|')}$/ }, target, remove_destination: true)
|
1082
|
+
end
|
1083
|
+
end
|
1084
|
+
|
1022
1085
|
def copy_self_as_module
|
1023
1086
|
if File.exist?(modulefile)
|
1024
1087
|
warn('Modulefile found but this is depricated, ignoring it, see https://tickets.puppetlabs.com/browse/PUP-1188')
|
@@ -1111,6 +1174,27 @@ module Kitchen
|
|
1111
1174
|
ENV['SSL_CERT_FILE'] = '' if librarian_puppet_ssl_file
|
1112
1175
|
end
|
1113
1176
|
end
|
1177
|
+
|
1178
|
+
def cp_command
|
1179
|
+
return 'cp -force' if powershell_shell?
|
1180
|
+
'cp'
|
1181
|
+
end
|
1182
|
+
|
1183
|
+
def rm_command
|
1184
|
+
return 'rm -force -recurse' if powershell_shell?
|
1185
|
+
'rm -rf'
|
1186
|
+
end
|
1187
|
+
|
1188
|
+
def mkdir_command
|
1189
|
+
return 'mkdir -force -path' if powershell_shell?
|
1190
|
+
'mkdir -p'
|
1191
|
+
end
|
1192
|
+
|
1193
|
+
def rm_command_paths(paths)
|
1194
|
+
return :nil if paths.length.zero?
|
1195
|
+
return "#{rm_command} \"#{paths.join('", "')}\"" if powershell_shell?
|
1196
|
+
"#{rm_command} #{paths.join(' ')}"
|
1197
|
+
end
|
1114
1198
|
end
|
1115
1199
|
end
|
1116
1200
|
end
|
data/provisioner_options.md
CHANGED
@@ -6,83 +6,90 @@ Kitchen-puppet is very flexible in how it installs puppet:
|
|
6
6
|
It installs it in the following order:
|
7
7
|
|
8
8
|
* if require_puppet_omnibus is set to true
|
9
|
-
|
9
|
+
|
10
|
+
Installs using the omnibus_puppet script and passes the puppet_version if specied as -v option.
|
11
|
+
|
10
12
|
* If require_puppet_collections is set to true
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
|
14
|
+
Installs from the puppet collection.
|
15
|
+
This is required if you wish to install puppet version 4.
|
16
|
+
|
17
|
+
You get the version of puppet in the collection. To influence which puppet version is install modify either
|
18
|
+
* puppet_yum_collections_repo
|
19
|
+
* puppet_apt_collections_repo
|
20
|
+
to an new collection. At time of writing there was only one collection PC1.
|
21
|
+
|
17
22
|
* if require_puppet_repo is set to true (the default)
|
18
|
-
|
23
|
+
|
24
|
+
Installs from the operation system repository with the puppet version that is in the particular repository.
|
19
25
|
|
20
26
|
# Puppet Apply Provisioner Options
|
21
27
|
|
22
28
|
key | default value | Notes
|
23
29
|
----|---------------|--------
|
24
|
-
|
30
|
+
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.
|
31
|
+
custom_facts| Hash.new | Hash to set the puppet facts before running puppet apply
|
32
|
+
custom_options | | custom options to add to puppet apply command.
|
33
|
+
custom_install_command | nil | Custom shell command to be used at end of install stage. Can be multiline. See examples below.
|
34
|
+
custom_pre_apply_command | nil | Custom shell command to be used before the puppet apply stage. Can be multiline. See examples below.
|
35
|
+
custom_pre_install_command | nil | Custom shell command to be used at beginning of install stage. Can be multiline.
|
36
|
+
facter_file | nil | yaml file of custom facter_files to be provided to the puppet-apply command
|
25
37
|
facter_version | "latest"| desired version, affects apt installs.
|
26
|
-
platform | platform_name kitchen.yml parameter | OS platform of server
|
27
|
-
hiera_version | "latest"| desired version, affects apt installs.
|
28
|
-
install_hiera | false | Installs `hiera-puppet` package. Not needed for puppet > 3.x.x
|
29
|
-
hiera_package | 'hiera-puppet' | Only used if `install_hiera` is set
|
30
|
-
require_puppet_repo | true | Set if using a puppet install from yum or apt repo
|
31
|
-
puppet_apt_repo | "http://apt.puppetlabs.com/puppetlabs-release-precise.deb"| apt repo Ubuntu12
|
32
|
-
_for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-jessie.deb" |
|
33
|
-
puppet_yum_repo | "https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm"| yum repo RH/Centos6
|
34
|
-
_for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm" |
|
35
|
-
require_puppet_collections | false | Set if using puppet collections install (Puppet v4)
|
36
|
-
puppet_yum_collections_repo | "http://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm" | yum collections repo RH/Centos6
|
37
|
-
_for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm" |
|
38
|
-
puppet_apt_collections_repo | "http://apt.puppetlabs.com/puppetlabs-release-pc1-wheezy.deb" | apt collections repo
|
39
|
-
_for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-pc1-jessie.deb" |
|
40
|
-
puppet_coll_remote_path | "/opt/puppetlabs" | Server Installation location of a puppet collections install.
|
41
|
-
puppet_detailed_exitcodes | nil | Provide transaction information via exit codes. See `--detailed-exitcodes` section of `puppet help apply`
|
42
|
-
manifests_path | | puppet repo manifests directory
|
43
|
-
manifest | 'site.pp' | manifest for puppet apply to run
|
44
|
-
modules_path | | puppet repo manifests directory. Can be multiple directories separated by colons and then they will be merged
|
45
38
|
files_path | | directory to place at /tmp/kitchen/files
|
46
39
|
fileserver_config_path | | file to place fileserver.conf
|
47
40
|
hiera_config_path | | path to hiera.yaml
|
48
41
|
hiera_data_path | | puppet repo hiera data directory
|
49
42
|
hiera_data_remote_path | "/var/lib/hiera" | Hiera data directory on server
|
50
|
-
|
51
|
-
puppet_verbose| false| Extra information logging on puppet run
|
52
|
-
puppet_noop| false| puppet runs in a no-op or dry-run mode
|
53
|
-
puppet_git_init | nil | initialize puppet from GIT repository, e.g. "git@github.com:example/puppet-repo.git"
|
54
|
-
puppet_git_pr | nil | checkout specific Pull Request from repository specified in puppet_git_init, e.g. "324"
|
55
|
-
update_package_repos| true| update OS repository metadata
|
56
|
-
custom_facts| Hash.new | Hash to set the puppet facts before running puppet apply
|
57
|
-
install_custom_facts| false | Install custom facts to yaml file at "/tmp/kitchen/facter/kitchen.rb"
|
58
|
-
facter_file | nil | yaml file of custom facter_files to be provided to the puppet-apply command
|
59
|
-
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.
|
60
|
-
puppetfile_path | | Path to Puppetfile
|
61
|
-
puppet_apply_command | nil | Overwrite the puppet apply command. Needs "sudo -E puppet apply" as a prefix.
|
62
|
-
require_chef_for_busser | true | Install chef as currently needed by busser to run tests
|
63
|
-
resolve_with_librarian_puppet | true | Use librarian_puppet to resolve modules if a Puppetfile is found
|
64
|
-
librarian_puppet_ssl_file | nil | ssl certificate file for librarian-puppet
|
65
|
-
puppet_config_path | | path of custom puppet.conf file
|
66
|
-
puppet_environment | nil | puppet environment for running puppet apply (Must set if using Puppet v4)
|
67
|
-
remove_puppet_repo | false | remove copy of puppet repository and puppet configuration on server after running puppet
|
43
|
+
hiera_deep_merge | false | install the deep_merge gem to support hiera deep merge mode
|
68
44
|
hiera_eyaml | false | use hiera-eyaml to encrypt hiera data
|
69
45
|
hiera_eyaml_key_remote_path | "/etc/puppet/secure/keys" | directory of hiera-eyaml keys on server
|
70
46
|
hiera_eyaml_key_path | "hiera_keys" | directory of hiera-eyaml keys on workstation
|
71
|
-
|
47
|
+
hiera_package | 'hiera-puppet' | Only used if `install_hiera` is set
|
48
|
+
hiera_version | "latest"| desired version, affects apt installs.
|
72
49
|
http_proxy | nil | use http proxy when installing puppet, packages and running puppet
|
73
50
|
https_proxy | nil | use https proxy when installing puppet, packages and running puppet
|
51
|
+
ignored_paths_from_root | [] | allow extra paths to be ignored when copying from puppet repository
|
52
|
+
ignore_spec_fixtures | false | don't copy spec/fixtures to avoid problems with symlinks
|
53
|
+
install_custom_facts| false | Install custom facts to yaml file at "/tmp/kitchen/facter/kitchen.rb"
|
54
|
+
install_hiera | false | Installs `hiera-puppet` package. Not needed for puppet > 3.x.x
|
55
|
+
librarian_puppet_ssl_file | nil | ssl certificate file for librarian-puppet
|
56
|
+
manifest | 'site.pp' | manifest for puppet apply to run
|
57
|
+
manifests_path | | puppet repo manifests directory
|
58
|
+
modules_path | | puppet repo manifests directory. Can be multiple directories separated by colons and then they will be merged
|
59
|
+
platform | platform_name kitchen.yml parameter | OS platform of server
|
60
|
+
puppet_apply_command | nil | Overwrite the puppet apply command. Needs "sudo -E puppet apply" as a prefix.
|
61
|
+
puppet_apt_repo | "http://apt.puppetlabs.com/puppetlabs-release-precise.deb"| apt repo Ubuntu12
|
62
|
+
_for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-jessie.deb" |
|
63
|
+
puppet_apt_collections_repo | "http://apt.puppetlabs.com/puppetlabs-release-pc1-wheezy.deb" | apt collections repo
|
64
|
+
_for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-pc1-jessie.deb" |
|
65
|
+
puppet_coll_remote_path | "/opt/puppetlabs" | Server Installation location of a puppet collections install.
|
66
|
+
puppet_config_path | | path of custom puppet.conf file
|
67
|
+
puppet_debug| false| Enable full debugging logging on puppet run
|
68
|
+
puppet_detailed_exitcodes | nil | Provide transaction information via exit codes. See `--detailed-exitcodes` section of `puppet help apply`
|
69
|
+
puppet_enc | | path for external node classifier script
|
70
|
+
puppet_environment | nil | puppet environment for running puppet apply (Must set if using Puppet v4)
|
71
|
+
puppet_git_init | nil | initialize puppet from GIT repository, e.g. "git@github.com:example/puppet-repo.git"
|
72
|
+
puppet_git_pr | nil | checkout specific Pull Request from repository specified in puppet_git_init, e.g. "324"
|
74
73
|
puppet_logdest | nil | _Array_ of log destinations. Include 'console' if wanted
|
75
|
-
custom_options | | custom options to add to puppet apply command.
|
76
|
-
custom_pre_install_command | nil | Custom shell command to be used at beginning of install stage. Can be multiline.
|
77
|
-
custom_install_command | nil | Custom shell command to be used at end of install stage. Can be multiline. See examples below.
|
78
|
-
puppet_whitelist_exit_code | nil | Whitelist exit code expected from puppet run. Intended to be used together with `puppet_detailed_exitcodes`.
|
79
|
-
require_puppet_omnibus | false | Set if using omnibus puppet install
|
80
74
|
puppet_omnibus_url | https://raw.githubusercontent.com/ petems/puppet-install-shell/ master/install_puppet.sh | omnibus puppet v3 install location.
|
81
75
|
_for puppet v4 change to_ | https://raw.githubusercontent.com/ petems/puppet-install-shell/ master/install_puppet_agent.sh |
|
82
|
-
|
76
|
+
puppet_noop| false| puppet runs in a no-op or dry-run mode
|
83
77
|
puppet_no_sudo | false | allow puppet command to run without sudo if required
|
84
|
-
|
85
|
-
|
78
|
+
puppet_verbose| false| Extra information logging on puppet run
|
79
|
+
puppet_version | "latest"| desired version, affects apt installs.
|
80
|
+
puppet_whitelist_exit_code | nil | Whitelist exit code expected from puppet run. Intended to be used together with `puppet_detailed_exitcodes`.
|
81
|
+
puppet_yum_repo | "https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm"| yum repo RH/Centos6
|
82
|
+
_for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm" |
|
83
|
+
puppet_yum_collections_repo | "http://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm" | yum collections repo RH/Centos6
|
84
|
+
_for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm" |
|
85
|
+
puppetfile_path | | Path to Puppetfile
|
86
|
+
remove_puppet_repo | false | remove copy of puppet repository and puppet configuration on server after running puppet
|
87
|
+
require_chef_for_busser | true | Install chef as currently needed by busser to run tests
|
88
|
+
require_puppet_collections | false | Set if using puppet collections install (Puppet v4)
|
89
|
+
require_puppet_omnibus | false | Set if using omnibus puppet install
|
90
|
+
require_puppet_repo | true | Set if using a puppet install from yum or apt repo
|
91
|
+
resolve_with_librarian_puppet | true | Use librarian_puppet to resolve modules if a Puppetfile is found
|
92
|
+
update_package_repos| true| update OS repository metadata
|
86
93
|
|
87
94
|
## Puppet Apply Configuring Provisioner Options
|
88
95
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.43.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neill Turner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-kitchen
|