Module: Beaker::DSL::InstallUtils::PEClientTools
- Included in:
- PE
- Defined in:
- lib/beaker-pe/pe-client-tools/install_helper.rb
Instance Method Summary collapse
-
#install_dev_repos_on(package, host, sha, repo_configs_dir, opts = {}) ⇒ Object
Taken from puppet acceptance lib Install development repos.
- #install_pe_client_tools_on(hosts, opts = {}) ⇒ Object
Instance Method Details
#install_dev_repos_on(package, host, sha, repo_configs_dir, opts = {}) ⇒ Object
Taken from puppet acceptance lib Install development repos
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/beaker-pe/pe-client-tools/install_helper.rb', line 56 def install_dev_repos_on(package, host, sha, repo_configs_dir, opts={}) platform = host['platform'] =~ /^(debian|ubuntu)/ ? host['platform'].with_version_codename : host['platform'] platform_configs_dir = File.join(repo_configs_dir, platform) case platform when /^(fedora|el|centos|sles)-(\d+)-(.+)$/ variant = (($1 == 'centos') ? 'el' : $1) fedora_prefix = ((variant == 'fedora') ? 'f' : '') version = $2 arch = $3 pattern = 'pl-%s-%s-%s-%s%s-%s.repo' repo_filename = pattern % [ package, sha, variant, fedora_prefix, version, arch ] repo = fetch_http_file( "%s/%s/%s/repo_configs/rpm/" % [opts[:dev_builds_url],package, sha], repo_filename, platform_configs_dir ) if /sles/i.match(platform) scp_to(host, repo, '/etc/zypp/repos.d/') else scp_to(host, repo, '/etc/yum.repos.d/') end when /^(debian|ubuntu)-([^-]+)-(.+)$/ variant = $1 version = $2 arch = $3 list = fetch_http_file( "%s/%s/%s/repo_configs/deb/" % [opts[:dev_builds_url],package, sha], "pl-%s-%s-%s.list" % [package, sha, version], platform_configs_dir ) scp_to host, list, '/etc/apt/sources.list.d' create_remote_file(host, "/etc/apt/apt.conf.d/99trust-all", 'APT::Get::AllowUnauthenticated "true";') on host, 'apt-get update' else host.logger.notify("No repository installation step for #{platform} yet...") end end |
#install_pe_client_tools_on(hosts, opts = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/beaker-pe/pe-client-tools/install_helper.rb', line 6 def install_pe_client_tools_on(hosts, opts = {}) product = 'pe-client-tools' required_keys = [:puppet_collection, :pe_client_tools_sha, :pe_client_tools_version] unless required_keys.all? { |opt| opts.keys.include?(opt) && opts[opt]} raise ArgumentError, "The keys #{required_keys.to_s} are required in the opts hash" end urls = { :dev_builds_url => "http://builds.delivery.puppetlabs.net", } opts = urls.merge(opts) block_on hosts do |host| variant, version, arch, codename = host['platform'].to_array package_name = '' # If we're installing a tagged version, then the package will be # located in a directory named after the tag. Otherwise, look for # it by SHA. if opts[:pe_client_tools_version] =~ /^\d+(\.\d+)+$/ directory = opts[:pe_client_tools_version] else directory = opts[:pe_client_tools_sha] end case host['platform'] when /win/ package_name << product release_path = "#{opts[:dev_builds_url]}/#{product}/#{directory}/artifacts/#{variant}" package_name << "-#{opts[:pe_client_tools_version]}-x#{arch}.msi" generic_install_msi_on(host, File.join(release_path, package_name), {}, {:debug => true}) when /osx/ release_path = "#{opts[:dev_builds_url]}/#{product}/#{directory}/artifacts/apple/#{version}/#{opts[:puppet_collection]}/#{arch}" package_base = "#{product}-#{opts[:pe_client_tools_version]}" package_base << '-1' if opts[:pe_client_tools_version] dmg = package_base + ".#{variant}#{version}.dmg" copy_dir_local = File.join('tmp', 'repo_configs') fetch_http_file(release_path, dmg, copy_dir_local) scp_to host, File.join(copy_dir_local, dmg), host.external_copy_base package_name = package_base + '*' installer = package_name + '-installer.pkg' host.generic_install_dmg(dmg, package_name, installer) else install_dev_repos_on(product, host, directory, '/tmp/repo_configs',{:dev_builds_url => opts[:dev_builds_url]}) host.install_package('pe-client-tools') end end end |