beaker 2.15.1 → 2.16.0

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.
@@ -208,8 +208,9 @@ module Beaker
208
208
  # or a role (String or Symbol) that identifies one or more hosts.
209
209
  # @param [Hash{Symbol=>String}] opts
210
210
  # @option opts [String] :version Version of puppet to download
211
+ # @option opts [String] :puppet_agent_version Version of puppet agent to download
211
212
  # @option opts [String] :mac_download_url Url to download msi pattern of %url%/puppet-%version%.msi
212
- # @option opts [String] :win_download_url Url to download dmg pattern of %url%/(puppet|hiera|facter)-%version%.msi
213
+ # @option opts [String] :win_download_url Url to download dmg pattern of %url%/(puppet|hiera|facter)-%version%.msi
213
214
  #
214
215
  # @return nil
215
216
  # @raise [StandardError] When encountering an unsupported platform by default, or if gem cannot be found when default_action => 'gem_install'
@@ -219,7 +220,8 @@ module Beaker
219
220
 
220
221
  # If version isn't specified assume the latest in the 3.x series
221
222
  if opts[:version] and not version_is_less(opts[:version], '4.0.0')
222
- opts[:version] = opts[:puppet_agent_version]
223
+ # backwards compatability
224
+ opts[:puppet_agent_version] ||= opts[:version]
223
225
  install_puppet_agent_on(hosts, opts)
224
226
 
225
227
  else
@@ -260,8 +262,8 @@ module Beaker
260
262
  #Install Puppet Agent based on specified hosts using provided options
261
263
  # @example will install puppet-agent 1.1.0 from native puppetlabs provided packages wherever possible and will fail over to gem installing latest puppet
262
264
  # install_puppet_agent_on(hosts, {
263
- # :version => '1.1.0',
264
- # :default_action => 'gem_install',
265
+ # :puppet_agent_version => '1.1.0',
266
+ # :default_action => 'gem_install',
265
267
  # })
266
268
  #
267
269
  #
@@ -275,10 +277,10 @@ module Beaker
275
277
  # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
276
278
  # or a role (String or Symbol) that identifies one or more hosts.
277
279
  # @param [Hash{Symbol=>String}] opts
278
- # @option opts [String] :version Version of puppet to download
280
+ # @option opts [String] :puppet_agent_version Version of puppet to download
279
281
  # @option opts [String] :puppet_gem_version Version of puppet to install via gem if no puppet-agent package is available
280
282
  # @option opts [String] :mac_download_url Url to download msi pattern of %url%/puppet-agent-%version%.msi
281
- # @option opts [String] :win_download_url Url to download dmg pattern of %url%/puppet-agent-%version%.msi
283
+ # @option opts [String] :win_download_url Url to download dmg pattern of %url%/puppet-agent-%version%.msi
282
284
  # @option opts [String] :puppet_collection Defaults to 'pc1'
283
285
  #
284
286
  # @return nil
@@ -287,6 +289,10 @@ module Beaker
287
289
  def install_puppet_agent_on(hosts, opts)
288
290
  opts = FOSS_DEFAULT_DOWNLOAD_URLS.merge(opts)
289
291
  opts[:puppet_collection] ||= 'pc1' #hi! i'm case sensitive! be careful!
292
+ opts[:puppet_agent_version] ||= opts[:version] #backwards compatability with old parameter name
293
+ if not opts[:puppet_agent_version]
294
+ raise "must provide :puppet_agent_version (puppet-agent version) for install_puppet_agent_on"
295
+ end
290
296
 
291
297
  block_on hosts do |host|
292
298
  host[:type] = 'aio' #we are installing agent, so we want aio type
@@ -296,15 +302,15 @@ module Beaker
296
302
  logger.warn("install_puppet_agent_on for pe-only platform #{host['platform']} - use install_puppet_agent_pe_promoted_repo_on")
297
303
  when /el-|fedora/
298
304
  install_puppetlabs_release_repo(host, opts[:puppet_collection])
299
- if opts[:version]
300
- host.install_package("puppet-agent-#{opts[:version]}")
305
+ if opts[:puppet_agent_version]
306
+ host.install_package("puppet-agent-#{opts[:puppet_agent_version]}")
301
307
  else
302
308
  host.install_package('puppet-agent')
303
309
  end
304
310
  when /debian|ubuntu|cumulus/
305
311
  install_puppetlabs_release_repo(host, opts[:puppet_collection])
306
- if opts[:version]
307
- host.install_package("puppet-agent=#{opts[:version]}-1#{host['platform'].codename}")
312
+ if opts[:puppet_agent_version]
313
+ host.install_package("puppet-agent=#{opts[:puppet_agent_version]}-1#{host['platform'].codename}")
308
314
  else
309
315
  host.install_package('puppet-agent')
310
316
  end
@@ -522,7 +528,7 @@ module Beaker
522
528
  # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
523
529
  # or a role (String or Symbol) that identifies one or more hosts.
524
530
  # @param [Hash{Symbol=>String}] opts An options hash
525
- # @option opts [String] :version The version of Puppet Agent to install
531
+ # @option opts [String] :puppet_agent_version The version of Puppet Agent to install
526
532
  # @option opts [String] :win_download_url The url to download puppet from
527
533
  #
528
534
  # @note on windows, the +:ruby_arch+ host parameter can determine in addition
@@ -530,13 +536,14 @@ module Beaker
530
536
  def install_puppet_agent_from_msi_on(hosts, opts)
531
537
  block_on hosts do |host|
532
538
 
539
+ host[:type] = 'aio' #we are installing agent, so we want aio type
533
540
  is_config_32 = true == (host['ruby_arch'] == 'x86') || host['install_32'] || opts['install_32']
534
541
  should_install_64bit = host.is_x86_64? && !is_config_32
535
542
  arch = should_install_64bit ? 'x64' : 'x86'
536
543
 
537
544
  # If we don't specify a version install the latest MSI for puppet-agent
538
- if opts[:version]
539
- host['dist'] = "puppet-agent-#{opts[:version]}-#{arch}"
545
+ if opts[:puppet_agent_version]
546
+ host['dist'] = "puppet-agent-#{opts[:puppet_agent_version]}-#{arch}"
540
547
  else
541
548
  host['dist'] = "puppet-agent-#{arch}-latest"
542
549
  end
@@ -585,6 +592,7 @@ module Beaker
585
592
  # or a role (String or Symbol) that identifies one or more hosts.
586
593
  # @param [Hash{Symbol=>String}] opts An options hash
587
594
  # @option opts [String] :version The version of Puppet to install
595
+ # @option opts [String] :puppet_version The version of puppet-agent to install
588
596
  # @option opts [String] :facter_version The version of Facter to install
589
597
  # @option opts [String] :hiera_version The version of Hiera to install
590
598
  # @option opts [String] :mac_download_url Url to download msi pattern of %url%/puppet-%version%.msi
@@ -593,14 +601,14 @@ module Beaker
593
601
  # @api private
594
602
  def install_puppet_from_dmg_on( hosts, opts )
595
603
  block_on hosts do |host|
596
- if opts[:version] && !version_is_less(opts[:version], '4.0.0')
604
+ # install puppet-agent if puppet version > 4.0 OR not puppet version is provided
605
+ if (opts[:version] && !version_is_less(opts[:version], '4.0.0')) || !opts[:version]
597
606
  if opts[:puppet_agent_version].nil?
598
607
  raise "You must specify the version of puppet-agent you " +
599
608
  "want to install if you want to install Puppet 4.0 " +
600
609
  "or greater on OSX"
601
610
  end
602
611
 
603
- opts[:version] = opts[:puppet_agent_version]
604
612
  install_puppet_agent_from_dmg_on(host, opts)
605
613
 
606
614
  else
@@ -626,22 +634,36 @@ module Beaker
626
634
  end
627
635
  alias_method :install_puppet_from_dmg, :install_puppet_from_dmg_on
628
636
 
629
- # Installs Puppet and dependencies from dmg on provided host(s).
637
+ # Installs puppet-agent and dependencies from dmg on provided host(s).
630
638
  #
631
639
  # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
632
640
  # or a role (String or Symbol) that identifies one or more hosts.
633
641
  # @param [Hash{Symbol=>String}] opts An options hash
634
- # @option opts [String] :version The version of Puppet Agent to install
635
- # @option opts [String] :mac_download_url Url to download msi pattern of %url%/puppet-%version%.msi
642
+ # @option opts [String] :puppet_agent_version The version of Puppet Agent to install, defaults to latest
643
+ # @option opts [String] :mac_download_url Url to download msi pattern of %url%/puppet-%version%.dmg
644
+ # @option opts [String] :puppet_collection Defaults to 'PC1'
636
645
  #
637
646
  # @return nil
638
647
  # @api private
639
648
  def install_puppet_agent_from_dmg_on(hosts, opts)
649
+ opts[:puppet_collection] ||= 'PC1'
650
+ opts[:puppet_collection] = opts[:puppet_collection].upcase #needs to be upcase, more lovely consistency
640
651
  block_on hosts do |host|
641
- version = opts[:version] || 'latest'
642
- on host, "curl -O #{opts[:mac_download_url]}/puppet-agent-#{version}.dmg"
643
652
 
644
- host.install_package("puppet-agent-#{version}")
653
+ host[:type] = 'aio' #we are installing agent, so we want aio type
654
+
655
+ variant, version, arch, codename = host['platform'].to_array
656
+ agent_version = opts[:puppet_agent_version] || 'latest'
657
+ pkg_name = "puppet-agent-#{agent_version}*"
658
+ if agent_version == 'latest'
659
+ dmg_name = "puppet-agent-#{agent_version}.dmg"
660
+ on host, "curl -O #{opts[:mac_download_url]}/#{dmg_name}"
661
+ else
662
+ dmg_name = "puppet-agent-#{agent_version}-osx-#{version}-x86_64.dmg"
663
+ on host, "curl -O #{opts[:mac_download_url]}/#{opts[:puppet_collection]}/#{dmg_name}"
664
+ end
665
+
666
+ host.install_package(pkg_name)
645
667
 
646
668
  configure_foss_defaults_on( host )
647
669
  end
@@ -941,12 +963,14 @@ module Beaker
941
963
  end
942
964
 
943
965
  # Install development repo of the puppet-agent on the given host(s). Downloaded from
944
- # location of the form DOWNLOAD_URL/puppet-agent/AGENT_VERSION
966
+ # location of the form DEV_BUILDS_URL/puppet-agent/AGENT_VERSION/repos
945
967
  #
946
968
  # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
947
969
  # or a role (String or Symbol) that identifies one or more hosts.
948
970
  # @param [Hash{Symbol=>String}] opts An options hash
949
- # @option opts [String] :version The version of puppet-agent to install
971
+ # @option opts [String] :puppet_agent_version The version of puppet-agent to install
972
+ # @option opts [String] :puppet_agent_sha The sha of puppet-agent to install, defaults to provided
973
+ # puppet_agent_version
950
974
  # @option opts [String] :copy_base_local Directory where puppet-agent artifact
951
975
  # will be stored locally
952
976
  # (default: 'tmp/repo_configs')
@@ -954,18 +978,35 @@ module Beaker
954
978
  # artifact will be pushed to on the external machine
955
979
  # (default: '/root')
956
980
  # @option opts [String] :puppet_collection Defaults to 'PC1'
957
- # @option opts [String] :download_url Base url to look for build at
981
+ # @option opts [String] :dev_builds_url Base URL to pull artifacts from
982
+ # @option opts [String] :copy_base_local Directory where puppet-agent artifact
983
+ # will be stored locally
984
+ # (default: 'tmp/repo_configs')
985
+ # @option opts [String] :copy_dir_external Directory where puppet-agent
986
+ # artifact will be pushed to on the external machine
987
+ # (default: '/root')
958
988
  #
959
989
  # @note on windows, the +:ruby_arch+ host parameter can determine in addition
960
990
  # to other settings whether the 32 or 64bit install is used
961
991
  #
992
+ # @example
993
+ # install_puppet_agent_dev_repo_on(host, { :puppet_agent_sha => 'd3377feaeac173aada3a2c2cedd141eb610960a7', :puppet_agent_version => '1.1.1.225.gd3377fe' })
994
+ #
962
995
  # @return nil
963
- def install_puppet_agent_repo_on( hosts, opts )
996
+ def install_puppet_agent_dev_repo_on( hosts, opts )
964
997
 
998
+ opts[:puppet_agent_version] ||= opts[:version] #backward compatability
999
+ if not opts[:puppet_agent_version]
1000
+ raise "must provide :puppet_agent_version (puppet-agent version) for install_puppet_agent_dev_repo_on"
1001
+ end
965
1002
  block_on hosts do |host|
1003
+ variant, version, arch, codename = host['platform'].to_array
1004
+ opts = FOSS_DEFAULT_DOWNLOAD_URLS.merge(opts)
1005
+ opts[:download_url] = "#{opts[:dev_builds_url]}/puppet-agent/#{ opts[:puppet_agent_sha] || opts[:puppet_agent_version] }/repos/"
966
1006
  opts[:copy_base_local] ||= File.join('tmp', 'repo_configs')
967
1007
  opts[:copy_dir_external] ||= File.join('/', 'root')
968
1008
  opts[:puppet_collection] ||= 'PC1'
1009
+ host[:type] = 'aio' #we are installing agent, so we want aio type
969
1010
  release_path = opts[:download_url]
970
1011
  variant, version, arch, codename = host['platform'].to_array
971
1012
  copy_dir_local = File.join(opts[:copy_base_local], variant)
@@ -975,10 +1016,13 @@ module Beaker
975
1016
  when /^(fedora|el|centos|sles)$/
976
1017
  variant = ((variant == 'centos') ? 'el' : variant)
977
1018
  release_path << "#{variant}/#{version}/#{opts[:puppet_collection]}/#{arch}"
978
- release_file = "puppet-agent-#{opts[:version]}-1.#{variant}#{version}.#{arch}.rpm"
1019
+ release_file = "puppet-agent-#{opts[:puppet_agent_version]}-1.#{variant}#{version}.#{arch}.rpm"
979
1020
  when /^(debian|ubuntu|cumulus)$/
1021
+ if arch == 'x86_64'
1022
+ arch = 'amd64'
1023
+ end
980
1024
  release_path << "deb/#{codename}/#{opts[:puppet_collection]}"
981
- release_file = "puppet-agent_#{opts[:version]}-1#{codename}_#{arch}.deb"
1025
+ release_file = "puppet-agent_#{opts[:puppet_agent_version]}-1#{codename}_#{arch}.deb"
982
1026
  when /^windows$/
983
1027
  release_path << 'windows'
984
1028
  onhost_copy_base = '`cygpath -smF 35`/'
@@ -989,6 +1033,11 @@ module Beaker
989
1033
  # - we do not have install_32 set globally
990
1034
  arch_suffix = should_install_64bit ? '64' : '86'
991
1035
  release_file = "puppet-agent-x#{arch_suffix}.msi"
1036
+ when /^osx$/
1037
+ onhost_copy_base = File.join('/var', 'root')
1038
+ mac_pkg_name = "puppet-agent-#{opts[:puppet_agent_version]}"
1039
+ release_path << "/apple/#{opts[:puppet_collection]}"
1040
+ release_file = "#{mac_pkg_name}-#{variant}-#{version}-x86_64.dmg"
992
1041
  else
993
1042
  raise "No repository installation step for #{variant} yet..."
994
1043
  end
@@ -1007,10 +1056,13 @@ module Beaker
1007
1056
  result = on host, "echo #{onhost_copied_file}"
1008
1057
  onhost_copied_file = result.raw_output.chomp
1009
1058
  on host, Command.new("start /w #{onhost_copied_file}", [], { :cmdexe => true })
1059
+ when /^osx$/
1060
+ host.install_package("#{mac_pkg_name}*")
1010
1061
  end
1011
- add_aio_defaults_on( host )
1062
+ configure_foss_defaults_on( host )
1012
1063
  end
1013
1064
  end
1065
+ alias_method :install_puppetagent_dev_repo, :install_puppet_agent_dev_repo_on
1014
1066
 
1015
1067
  # Install shared repo of the puppet-agent on the given host(s). Downloaded from
1016
1068
  # location of the form PE_PROMOTED_BUILDS_URL/PE_VER/puppet-agent/AGENT_VERSION/repo
@@ -1018,8 +1070,7 @@ module Beaker
1018
1070
  # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
1019
1071
  # or a role (String or Symbol) that identifies one or more hosts.
1020
1072
  # @param [Hash{Symbol=>String}] opts An options hash
1021
- # @option opts [String] :version The version of puppet-agent to install
1022
- # @option opts [String] :sha The sha of puppet-agent to install
1073
+ # @option opts [String] :puppet_agent_version The version of puppet-agent to install, defaults to 'latest'
1023
1074
  # @option opts [String] :pe_ver The version of PE (will also use host['pe_ver']), defaults to '4.0'
1024
1075
  # @option opts [String] :copy_base_local Directory where puppet-agent artifact
1025
1076
  # will be stored locally
@@ -1034,53 +1085,82 @@ module Beaker
1034
1085
  # to other settings whether the 32 or 64bit install is used
1035
1086
  #
1036
1087
  # @example
1037
- # install_puppet_agent_pe_promoted_repo_on(host, { :sha => '1.1.0.227', :version => '1.1.0.227.g1d8334c', :pe_ver => '4.0.0-rc1'})
1088
+ # install_puppet_agent_pe_promoted_repo_on(host, { :puppet_agent_version => '1.1.0.227', :pe_ver => '4.0.0-rc1'})
1038
1089
  #
1039
1090
  # @return nil
1040
1091
  def install_puppet_agent_pe_promoted_repo_on( hosts, opts )
1092
+ opts[:puppet_agent_version] ||= 'latest'
1041
1093
  block_on hosts do |host|
1042
1094
  pe_ver = host[:pe_ver] || opts[:pe_ver] || '4.0'
1043
1095
  variant, version, arch, codename = host['platform'].to_array
1044
1096
  opts = FOSS_DEFAULT_DOWNLOAD_URLS.merge(opts)
1045
- opts[:download_url] = "#{opts[:pe_promoted_builds_url]}/puppet-agent/#{pe_ver}/#{opts[:sha]}/repos/"
1046
- install_puppet_agent_repo_on( host, opts )
1047
- end
1048
- end
1097
+ opts[:download_url] = "#{opts[:pe_promoted_builds_url]}/puppet-agent/#{ pe_ver }/#{ opts[:puppet_agent_version] }/repos/"
1098
+ opts[:copy_base_local] ||= File.join('tmp', 'repo_configs')
1099
+ opts[:copy_dir_external] ||= File.join('/', 'root')
1100
+ opts[:puppet_collection] ||= 'PC1'
1101
+ host[:type] = 'aio' #we are installing agent, so we want aio type
1102
+ release_path = opts[:download_url]
1103
+ variant, version, arch, codename = host['platform'].to_array
1104
+ copy_dir_local = File.join(opts[:copy_base_local], variant)
1105
+ onhost_copy_base = opts[:copy_dir_external]
1049
1106
 
1107
+ case variant
1108
+ when /^(fedora|el|centos|sles)$/
1109
+ variant = ((variant == 'centos') ? 'el' : variant)
1110
+ release_file = "/repos/#{variant}/#{version}/#{opts[:puppet_collection]}/#{arch}/puppet-agent-*.rpm"
1111
+ download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
1112
+ when /^(debian|ubuntu|cumulus)$/
1113
+ if arch == 'x86_64'
1114
+ arch = 'amd64'
1115
+ end
1116
+ release_file = "/repos/apt/#{codename}/pool/#{opts[:puppet_collection]}/p/puppet-agent/puppet-agent*#{arch}.deb"
1117
+ download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
1118
+ when /^windows$/
1119
+ onhost_copy_base = '`cygpath -smF 35`/'
1120
+ is_config_32 = host['ruby_arch'] == 'x86' || host['install_32'] || opts['install_32']
1121
+ should_install_64bit = host.is_x86_64? && !is_config_32
1122
+ # only install 64bit builds if
1123
+ # - we do not have install_32 set on host
1124
+ # - we do not have install_32 set globally
1125
+ arch_suffix = should_install_64bit ? '64' : '86'
1126
+ release_path += "windows/"
1127
+ release_file = "/puppet-agent-x#{arch_suffix}.msi"
1128
+ download_file = "puppet-agent-x#{arch_suffix}.msi"
1129
+ when /^osx$/
1130
+ onhost_copy_base = File.join('/var', 'root')
1131
+ release_file = "/repos/apple/#{opts[:puppet_collection]}/puppet-agent-*"
1132
+ download_file = "puppet-agent-#{variant}-#{version}.tar.gz"
1133
+ else
1134
+ raise "No pe-promoted installation step for #{variant} yet..."
1135
+ end
1050
1136
 
1051
- # Install development repo of the puppet-agent on the given host(s). Downloaded from
1052
- # location of the form DEV_BUILDS_URL/puppet-agent/AGENT_VERSION/repos
1053
- #
1054
- # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
1055
- # or a role (String or Symbol) that identifies one or more hosts.
1056
- # @param [Hash{Symbol=>String}] opts An options hash
1057
- # @option opts [String] :version The version of puppet-agent to install
1058
- # @option opts [String] :sha The sha of puppet-agent to install
1059
- # @option opts [String] :copy_base_local Directory where puppet-agent artifact
1060
- # will be stored locally
1061
- # (default: 'tmp/repo_configs')
1062
- # @option opts [String] :copy_dir_external Directory where puppet-agent
1063
- # artifact will be pushed to on the external machine
1064
- # (default: '/root')
1065
- # @option opts [String] :puppet_collection Defaults to 'PC1'
1066
- # @option opts [String] :dev_builds_url Base URL to pull artifacts from
1067
- #
1068
- # @note on windows, the +:ruby_arch+ host parameter can determine in addition
1069
- # to other settings whether the 32 or 64bit install is used
1070
- #
1071
- # @example
1072
- # install_puppet_agent_dev_repo_on(host, { :sha => 'd3377feaeac173aada3a2c2cedd141eb610960a7', :version => '1.1.1.225.gd3377fe' })
1073
- #
1074
- # @return nil
1075
- def install_puppet_agent_dev_repo_on( hosts, opts )
1076
- block_on hosts do |host|
1077
- variant, version, arch, codename = host['platform'].to_array
1078
- opts = FOSS_DEFAULT_DOWNLOAD_URLS.merge(opts)
1079
- opts[:download_url] = "#{opts[:dev_builds_url]}/puppet-agent/#{opts[:sha]}/repos/"
1080
- install_puppet_agent_repo_on( host, opts )
1137
+ onhost_copied_download = File.join(onhost_copy_base, download_file)
1138
+ onhost_copied_file = File.join(onhost_copy_base, release_file)
1139
+ fetch_http_file( release_path, download_file, copy_dir_local)
1140
+ scp_to host, File.join(copy_dir_local, download_file), onhost_copy_base
1141
+
1142
+ case variant
1143
+ when /^(fedora|el|centos|sles)$/
1144
+ on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1145
+ on host, "rpm -ivh #{onhost_copied_file}"
1146
+ when /^(debian|ubuntu|cumulus)$/
1147
+ on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1148
+ on host, "dpkg -i --force-all #{onhost_copied_file}"
1149
+ on host, "apt-get update"
1150
+ when /^windows$/
1151
+ result = on host, "echo #{onhost_copied_file}"
1152
+ onhost_copied_file = result.raw_output.chomp
1153
+ on host, Command.new("start /w #{onhost_copied_file}", [], { :cmdexe => true })
1154
+ when /^osx$/
1155
+ on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1156
+ # move to better location
1157
+ on host, "mv #{onhost_copied_file}.dmg ."
1158
+ host.install_package("puppet-agent-*")
1159
+ end
1160
+ configure_foss_defaults_on( host )
1081
1161
  end
1082
1162
  end
1083
- alias_method :install_puppetagent_dev_repo, :install_puppet_agent_dev_repo_on
1163
+
1084
1164
 
1085
1165
  # This method will install a pem file certifcate on a windows host
1086
1166
  #
@@ -415,7 +415,10 @@ module Beaker
415
415
  install_hosts.each do |host|
416
416
  if agent_only_check_needed && hosts_agent_only.include?(host)
417
417
  host['type'] = 'aio'
418
- install_puppet_agent_pe_promoted_repo_on(host, opts)
418
+ install_puppet_agent_pe_promoted_repo_on(host, { :puppet_agent_version => opts[:puppet_agent_version],
419
+ :puppet_agent_sha => opts[:puppet_agent_sha],
420
+ :pe_ver => opts[:pe_ver],
421
+ :puppet_collection => opts[:puppet_collection] })
419
422
  setup_defaults_and_config_helper_on(host, master, [0, 1])
420
423
  elsif host['platform'] =~ /windows/
421
424
  on host, installer_cmd(host, opts)
@@ -542,11 +545,12 @@ module Beaker
542
545
  # @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
543
546
  # or a role (String or Symbol) that identifies one or more hosts.
544
547
  # @!macro common_opts
545
- # @option opts [String] :sha The sha of puppet-agent to install. Required for PE agent
546
- # only hosts on 4.0+
547
- # @option opts [String] :version Version of puppet-agent to install. Required for PE agent
548
+ # @option opts [String] :puppet_agent_version Version of puppet-agent to install. Required for PE agent
548
549
  # only hosts on 4.0+
550
+ # @option opts [String] :puppet_agent_sha The sha of puppet-agent to install, defaults to puppet-agent-version.
551
+ # Required for PE agent only hosts on 4.0+
549
552
  # @option opts [String] :pe_ver The version of PE (will also use host['pe_ver']), defaults to '4.0'
553
+ # @option opts [String] :puppet_collection The puppet collection for puppet-agent install.
550
554
  #
551
555
  # @example
552
556
  # install_pe_on(hosts, {})
@@ -400,22 +400,28 @@ module Beaker
400
400
 
401
401
  Rsync.host = hostname_with_user
402
402
 
403
- if ssh_opts.has_key?('keys') and
404
- ssh_opts.has_key?('auth_methods') and
405
- ssh_opts['auth_methods'].include?('publickey')
403
+ # vagrant uses temporary ssh configs in order to use dynamic keys
404
+ # without this config option using ssh may prompt for password
405
+ if ssh_opts[:config] and File.exists?(ssh_opts[:config])
406
+ ssh_args << "-F #{ssh_opts[:config]}"
407
+ else
408
+ if ssh_opts.has_key?('keys') and
409
+ ssh_opts.has_key?('auth_methods') and
410
+ ssh_opts['auth_methods'].include?('publickey')
406
411
 
407
- key = ssh_opts['keys']
412
+ key = ssh_opts['keys']
408
413
 
409
- # If an array was set, then we use the first value
410
- if key.is_a? Array
411
- key = key.first
412
- end
414
+ # If an array was set, then we use the first value
415
+ if key.is_a? Array
416
+ key = key.first
417
+ end
413
418
 
414
- # We need to expand tilde manually as rsync can be
415
- # funny sometimes
416
- key = File.expand_path(key)
419
+ # We need to expand tilde manually as rsync can be
420
+ # funny sometimes
421
+ key = File.expand_path(key)
417
422
 
418
- ssh_args << "-i #{key}"
423
+ ssh_args << "-i #{key}"
424
+ end
419
425
  end
420
426
 
421
427
  if ssh_opts.has_key?(:port)