beaker-hostgenerator 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +25 -0
- data/.rspec +3 -0
- data/.simplecov +9 -0
- data/CHANGELOG.md +33 -0
- data/CONTRIBUTING.md +54 -0
- data/Gemfile +27 -0
- data/HISTORY.md +211 -0
- data/LICENSE +202 -0
- data/README.md +112 -0
- data/Rakefile +48 -0
- data/acceptance/config/nodes/vagrant-ubuntu-1404.yml +8 -0
- data/acceptance/tests/first.rb +8 -0
- data/beaker-hostgenerator.gemspec +44 -0
- data/bin/beaker-hostgenerator +8 -0
- data/bin/genconfig2 +10 -0
- data/lib/beaker-hostgenerator.rb +8 -0
- data/lib/beaker-hostgenerator/cli.rb +126 -0
- data/lib/beaker-hostgenerator/data.rb +55 -0
- data/lib/beaker-hostgenerator/data/vmpooler.rb +397 -0
- data/lib/beaker-hostgenerator/error.rb +6 -0
- data/lib/beaker-hostgenerator/generator.rb +143 -0
- data/lib/beaker-hostgenerator/generator/vmpooler.rb +57 -0
- data/lib/beaker-hostgenerator/roles.rb +22 -0
- data/lib/beaker-hostgenerator/util.rb +64 -0
- data/lib/beaker-hostgenerator/version.rb +5 -0
- data/spec/beaker-hostgenerator/generator_spec.rb +98 -0
- data/spec/helpers.rb +109 -0
- data/spec/spec_helper.rb +10 -0
- metadata +230 -0
data/README.md
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
# Beaker Host Generator
|
2
|
+
|
3
|
+
`beaker-hostgenerator` is a command line utility designed to generate beaker
|
4
|
+
host config files using a compact command line SUT specification.
|
5
|
+
|
6
|
+
It currently only supports puppetlabs' internal [vmpooler][vmpooler] templates,
|
7
|
+
but is designed in a way that makes it possible to easily add support for
|
8
|
+
additional hypervisor templates (any hypervisor type supported by
|
9
|
+
[beaker][beaker]).
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
Below are some example usages of `beaker-hostgenerator`.
|
14
|
+
|
15
|
+
### Simple two-host SUT layout
|
16
|
+
|
17
|
+
```
|
18
|
+
$ beaker-hostgenerator centos6-64mdca-32a
|
19
|
+
```
|
20
|
+
|
21
|
+
Will generate
|
22
|
+
|
23
|
+
```yaml
|
24
|
+
---
|
25
|
+
HOSTS:
|
26
|
+
centos6-64-1:
|
27
|
+
pe_dir:
|
28
|
+
pe_ver:
|
29
|
+
pe_upgrade_dir:
|
30
|
+
pe_upgrade_ver:
|
31
|
+
hypervisor: vmpooler
|
32
|
+
platform: el-6-x86_64
|
33
|
+
template: centos-6-x86_64
|
34
|
+
roles:
|
35
|
+
- agent
|
36
|
+
- master
|
37
|
+
- database
|
38
|
+
- dashboard
|
39
|
+
centos6-32-2:
|
40
|
+
pe_dir:
|
41
|
+
pe_ver:
|
42
|
+
pe_upgrade_dir:
|
43
|
+
pe_upgrade_ver:
|
44
|
+
hypervisor: vmpooler
|
45
|
+
platform: el-6-i386
|
46
|
+
template: centos-6-i386
|
47
|
+
roles:
|
48
|
+
- agent
|
49
|
+
CONFIG:
|
50
|
+
nfs_server: none
|
51
|
+
consoleport: 443
|
52
|
+
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
53
|
+
```
|
54
|
+
|
55
|
+
### Single-host SUT layout with Arbitrary Roles
|
56
|
+
|
57
|
+
```
|
58
|
+
$ beaker-hostgenerator centos6-32compile_master,another_role.ma
|
59
|
+
```
|
60
|
+
|
61
|
+
Will generate
|
62
|
+
|
63
|
+
```yaml
|
64
|
+
---
|
65
|
+
HOSTS:
|
66
|
+
centos6-32-1:
|
67
|
+
pe_dir:
|
68
|
+
pe_ver:
|
69
|
+
pe_upgrade_dir:
|
70
|
+
pe_upgrade_ver:
|
71
|
+
hypervisor: vmpooler
|
72
|
+
platform: el-6-i386
|
73
|
+
template: centos-6-i386
|
74
|
+
roles:
|
75
|
+
- agent
|
76
|
+
- master
|
77
|
+
- compile_master
|
78
|
+
- another_role
|
79
|
+
frictionless_options:
|
80
|
+
main:
|
81
|
+
dns_alt_names: puppet
|
82
|
+
environmentpath: "/etc/puppetlabs/puppet/environments"
|
83
|
+
CONFIG:
|
84
|
+
nfs_server: none
|
85
|
+
consoleport: 443
|
86
|
+
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
87
|
+
```
|
88
|
+
|
89
|
+
## Support
|
90
|
+
|
91
|
+
Support offered by [Puppet Labs](https://puppetlabs.com) may not always be timely
|
92
|
+
since it is maintained by a tooling support team that is primarily focused on
|
93
|
+
improving tools, infrastructure, and automation for our Enterprise products.
|
94
|
+
|
95
|
+
That being said, we will happily accept and review PRs from community members
|
96
|
+
interested in extending and using `beaker-hostgenerator` for their own purposes.
|
97
|
+
See the [contributing][contributing] doc for more information about how to
|
98
|
+
contribute.
|
99
|
+
|
100
|
+
If you have questions or comments, please contact the Beaker team at the
|
101
|
+
`#puppet-dev` IRC channel on chat.freenode.org
|
102
|
+
|
103
|
+
## License
|
104
|
+
|
105
|
+
`beaker-hostgenerator` is distributed under the
|
106
|
+
[Apache License, Version 2.0][apache-v2]. See the [LICENSE][license] file for more details.
|
107
|
+
|
108
|
+
[vmpooler]: https://github.com/puppetlabs/vmpooler
|
109
|
+
[beaker]: https://github.com/puppetlabs/beaker
|
110
|
+
[license]: LICENSE
|
111
|
+
[contributing]: CONTRIBUTING.md
|
112
|
+
[apache-v2]: http://www.apache.org/licenses/LICENSE-2.0.html
|
data/Rakefile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rspec/core/rake_task'
|
2
|
+
|
3
|
+
namespace :test do
|
4
|
+
|
5
|
+
namespace :spec do
|
6
|
+
|
7
|
+
desc "Run spec tests"
|
8
|
+
RSpec::Core::RakeTask.new(:run) do |t|
|
9
|
+
t.rspec_opts = ['--color']
|
10
|
+
t.pattern = 'spec/'
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Run spec tests with coverage"
|
14
|
+
RSpec::Core::RakeTask.new(:coverage) do |t|
|
15
|
+
ENV['BEAKER_TEMPLATE_COVERAGE'] = 'y'
|
16
|
+
t.rspec_opts = ['--color']
|
17
|
+
t.pattern = 'spec/'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
namespace :acceptance do
|
23
|
+
|
24
|
+
desc <<-EOS
|
25
|
+
A quick acceptance test, named because it has no pre-suites to run
|
26
|
+
EOS
|
27
|
+
task :quick do
|
28
|
+
|
29
|
+
sh("beaker",
|
30
|
+
"--hosts", ENV['CONFIG'] || "acceptance/config/nodes/vagrant-ubuntu-1404.yml",
|
31
|
+
"--tests", "acceptance/tests",
|
32
|
+
"--log-level", "debug",
|
33
|
+
"--keyfile", ENV['KEY'] || "#{ENV['HOME']}/.ssh/id_rsa")
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
# namespace-named default tasks.
|
41
|
+
# these are the default tasks invoked when only the namespace is referenced.
|
42
|
+
# they're needed because `task :default` in those blocks doesn't work as expected.
|
43
|
+
task 'test:spec' => 'test:spec:run'
|
44
|
+
task 'test:acceptance' => 'test:acceptance:quick'
|
45
|
+
|
46
|
+
# global defaults
|
47
|
+
task :test => 'test:spec'
|
48
|
+
task :default => :test
|
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
# Acceptance level testing goes into files in the tests directory like this one,
|
3
|
+
# Each file corresponding to a new test made up of individual testing steps
|
4
|
+
test_name "Template Acceptance Test Example"
|
5
|
+
|
6
|
+
step "Fail fast!"
|
7
|
+
|
8
|
+
fail_test("There are no acceptance tests yet!")
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
3
|
+
require 'beaker-hostgenerator/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "beaker-hostgenerator"
|
7
|
+
s.version = BeakerHostGenerator::Version::STRING
|
8
|
+
s.date = "2015-10-07"
|
9
|
+
s.authors = ["Branan Purvine-Riley", "Wayne Warren"]
|
10
|
+
s.email = ["qe-team@puppetlabs.com"]
|
11
|
+
s.homepage = "https://github.com/puppetlabs/beaker-hostgenerator"
|
12
|
+
s.summary = "Beaker Host Generator Utility"
|
13
|
+
s.description = <<-eos
|
14
|
+
The beaker-hostgenerator tool will take a Beaker SUT (System Under Test) spec as
|
15
|
+
its first positional argument and use that to generate a Beaker host
|
16
|
+
configuration file.
|
17
|
+
eos
|
18
|
+
s.description = %q{For use for the Beaker acceptance testing tool}
|
19
|
+
s.license = 'Apache2'
|
20
|
+
|
21
|
+
s.files = `git ls-files`.split("\n")
|
22
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
24
|
+
s.require_paths = ["lib"]
|
25
|
+
|
26
|
+
# Testing dependencies
|
27
|
+
s.add_development_dependency 'rspec', '~> 3.0'
|
28
|
+
s.add_development_dependency 'rspec-its'
|
29
|
+
s.add_development_dependency 'fakefs', '~> 0.6'
|
30
|
+
s.add_development_dependency 'rake', '~> 10.1'
|
31
|
+
s.add_development_dependency 'simplecov'
|
32
|
+
s.add_development_dependency 'pry', '~> 0.10'
|
33
|
+
|
34
|
+
# Documentation dependencies
|
35
|
+
s.add_development_dependency 'yard'
|
36
|
+
s.add_development_dependency 'markdown'
|
37
|
+
s.add_development_dependency 'thin'
|
38
|
+
|
39
|
+
# Run time dependencies
|
40
|
+
s.add_runtime_dependency 'deep_merge', '~> 1.0'
|
41
|
+
s.add_runtime_dependency 'stringify-hash', '~> 0.0.0'
|
42
|
+
|
43
|
+
end
|
44
|
+
|
data/bin/genconfig2
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
lib_dir = File.expand_path(File.dirname(File.dirname(__FILE__)), 'lib')
|
4
|
+
$LOAD_PATH.unshift(lib_dir)
|
5
|
+
|
6
|
+
require 'beaker-hostgenerator'
|
7
|
+
|
8
|
+
STDERR.puts("Warning: 'genconfig2' is deprecated and will be removed in beaker-hostgenerator 1.x\n\n")
|
9
|
+
|
10
|
+
BeakerHostGenerator::CLI.new.execute!
|
@@ -0,0 +1,126 @@
|
|
1
|
+
require 'beaker-hostgenerator/generator'
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
module BeakerHostGenerator
|
5
|
+
class CLI
|
6
|
+
include BeakerHostGenerator::Data
|
7
|
+
|
8
|
+
attr_reader :options
|
9
|
+
|
10
|
+
def initialize(argv = ARGV.dup)
|
11
|
+
@options = {
|
12
|
+
list_platforms_and_roles: false,
|
13
|
+
disable_default_role: false,
|
14
|
+
disable_role_config: false,
|
15
|
+
hypervisor: 'vmpooler',
|
16
|
+
}
|
17
|
+
|
18
|
+
argv.push('--help') if argv.empty?
|
19
|
+
|
20
|
+
optparse = OptionParser.new do |opts|
|
21
|
+
opts.banner = <<-eos
|
22
|
+
Usage: beaker-hostgenerator [options] <layout>
|
23
|
+
|
24
|
+
where <layout> takes the following form:
|
25
|
+
<platform>-<arch><roles>[[-<platform>]-<arch>[[<arbitrary-roles>,[...]].]<roles>[...]]
|
26
|
+
|
27
|
+
examples:
|
28
|
+
centos6-64mdca-32a
|
29
|
+
1 CentOS 6 64 bit node with roles = master, database, agent, dashboard
|
30
|
+
1 CentOS 6 32 bit node with roles = agent
|
31
|
+
|
32
|
+
debian8-64m-32ad-32ac-centos6-64a
|
33
|
+
1 Debian 8 64 bit node with roles = master
|
34
|
+
1 Debian 8 32 bit node with roles = agent, database
|
35
|
+
1 Debian 8 32 bit node with roles = agent, dashboard
|
36
|
+
1 CentOS 6 64 bit node with roles = agent
|
37
|
+
|
38
|
+
debian8-64m-windows8-64a
|
39
|
+
1 Debian 8 64 bit node with roles = master
|
40
|
+
1 Windows 8 64 bit node with roles = agent
|
41
|
+
|
42
|
+
example with arbitrary roles:
|
43
|
+
centos6-32compile_master,another_role.ma
|
44
|
+
1 CentOS 6 32 bit node with roles = master, agent, compile_master, another_role
|
45
|
+
|
46
|
+
Generally, it is expected that beaker-hostgenerator output will be redirected to a file, for example:
|
47
|
+
beaker-hostgenerator centos6-64ma > host.cfg
|
48
|
+
|
49
|
+
This can then be used in a Beaker call instead of a static Beaker config.
|
50
|
+
|
51
|
+
eos
|
52
|
+
|
53
|
+
opts.on('-l',
|
54
|
+
'--list',
|
55
|
+
'List beaker-hostgenerator supported platforms and roles. ' <<
|
56
|
+
'Does not produce host config.') do
|
57
|
+
@options[:list_platforms_and_roles] = true
|
58
|
+
end
|
59
|
+
|
60
|
+
opts.on('-t',
|
61
|
+
'--hypervisor HYPERVISOR',
|
62
|
+
'Set beaker-hostgenerator hypervisor. ') do |h|
|
63
|
+
@options[:hypervisor] = h
|
64
|
+
end
|
65
|
+
|
66
|
+
opts.on('--disable-role-config',
|
67
|
+
"Do not include role-specific configuration.") do
|
68
|
+
@options[:disable_role_config] = true
|
69
|
+
end
|
70
|
+
|
71
|
+
opts.on('--disable-default-role',
|
72
|
+
"Do not include the default /'agent/' role.") do
|
73
|
+
@options[:disable_default_role] = true
|
74
|
+
end
|
75
|
+
|
76
|
+
opts.on('-h',
|
77
|
+
'--help',
|
78
|
+
'Display command help.') do
|
79
|
+
puts opts
|
80
|
+
exit
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
optparse.parse!(argv)
|
85
|
+
|
86
|
+
if @options[:list_platforms_and_roles]
|
87
|
+
print_platforms_and_roles
|
88
|
+
exit
|
89
|
+
end
|
90
|
+
|
91
|
+
# Tokenizing the config definition for great justice
|
92
|
+
@tokens = argv[0].split('-')
|
93
|
+
end
|
94
|
+
|
95
|
+
def print_platforms_and_roles
|
96
|
+
puts "valid beaker-hostgenerator platforms: "
|
97
|
+
osinfo = BeakerHostGenerator::Utils.get_platforms
|
98
|
+
osinfo.each do |k,v|
|
99
|
+
puts " #{k}"
|
100
|
+
end
|
101
|
+
|
102
|
+
puts "\n"
|
103
|
+
|
104
|
+
puts "valid beaker-hostgenerator architectures:"
|
105
|
+
puts " 32 => 32-bit OS"
|
106
|
+
puts " 64 => 64-bit OS"
|
107
|
+
puts " 6432 => 64-bit OS with 32-bit Puppet (Windows Only)"
|
108
|
+
puts "\n"
|
109
|
+
|
110
|
+
roles = BeakerHostGenerator::Utils.get_roles
|
111
|
+
puts "valid beaker-hostgenerator host roles: "
|
112
|
+
roles.each do |k,v|
|
113
|
+
puts " #{k} => #{v}"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def execute
|
118
|
+
generator = BeakerHostGenerator::Generator.create @options
|
119
|
+
generator.generate @tokens
|
120
|
+
end
|
121
|
+
|
122
|
+
def execute!
|
123
|
+
puts execute
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module BeakerHostGenerator
|
2
|
+
module Data
|
3
|
+
|
4
|
+
# Pull various informations out of the environment.
|
5
|
+
PE_VERSION=ENV['pe_version']
|
6
|
+
PE_FAMILY=ENV['pe_family']
|
7
|
+
PE_UPGRADE_VERSION=ENV['pe_upgrade_version']
|
8
|
+
PE_UPGRADE_FAMILY=ENV['pe_upgrade_family']
|
9
|
+
|
10
|
+
PE_USE_WIN32=ENV['pe_use_win32']
|
11
|
+
|
12
|
+
ROLES = {
|
13
|
+
'a' => 'agent',
|
14
|
+
'u' => 'ca',
|
15
|
+
'l' => 'classifier',
|
16
|
+
'c' => 'dashboard',
|
17
|
+
'd' => 'database',
|
18
|
+
'f' => 'frictionless',
|
19
|
+
'm' => 'master',
|
20
|
+
}
|
21
|
+
|
22
|
+
# Capture role and bit width information about the node.
|
23
|
+
#
|
24
|
+
# Examples node specs and their resulting roles
|
25
|
+
#
|
26
|
+
# 64compile_master,zuul,meow.a
|
27
|
+
# * compile_master
|
28
|
+
# * zuul
|
29
|
+
# * meow
|
30
|
+
# * agent
|
31
|
+
#
|
32
|
+
# 32herp.cdma
|
33
|
+
# * herp
|
34
|
+
# * dashboard
|
35
|
+
# * database
|
36
|
+
# * master
|
37
|
+
# * agent
|
38
|
+
#
|
39
|
+
# 64dashboard,master,agent,database.
|
40
|
+
# * dashboard
|
41
|
+
# * master
|
42
|
+
# * agent
|
43
|
+
# * database
|
44
|
+
#
|
45
|
+
NODE_REGEX=/\A(?<bits>\d+)((?<arbitrary_roles>([[:lower:]_]*|\,)*)\.)?(?<roles>[uacldfm]*)\Z/
|
46
|
+
|
47
|
+
BASE_CONFIG = {
|
48
|
+
'HOSTS' => {},
|
49
|
+
'CONFIG' => {
|
50
|
+
'nfs_server' => 'none',
|
51
|
+
'consoleport' => 443,
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,397 @@
|
|
1
|
+
module BeakerHostGenerator
|
2
|
+
module Data
|
3
|
+
module Vmpooler
|
4
|
+
|
5
|
+
OSINFO = {
|
6
|
+
'arista-32' => {
|
7
|
+
'platform' => 'eos-4-i386',
|
8
|
+
'template' => 'arista-4-i386'
|
9
|
+
},
|
10
|
+
'centos4-32' => {
|
11
|
+
'platform' => 'el-4-i386',
|
12
|
+
'template' => 'centos-4-i386'
|
13
|
+
},
|
14
|
+
'centos4-64' => {
|
15
|
+
'platform' => 'el-4-x86_64',
|
16
|
+
'template' => 'centos-4-x86_64'
|
17
|
+
},
|
18
|
+
'centos5-32' => {
|
19
|
+
'platform' => 'el-5-i386',
|
20
|
+
'template' => 'centos-5-i386'
|
21
|
+
},
|
22
|
+
'centos5-64' => {
|
23
|
+
'platform' => 'el-5-x86_64',
|
24
|
+
'template' => 'centos-5-x86_64'
|
25
|
+
},
|
26
|
+
'centos6-32' => {
|
27
|
+
'platform' => 'el-6-i386',
|
28
|
+
'template' => 'centos-6-i386'
|
29
|
+
},
|
30
|
+
'centos6-64' => {
|
31
|
+
'platform' => 'el-6-x86_64',
|
32
|
+
'template' => 'centos-6-x86_64'
|
33
|
+
},
|
34
|
+
'centos7-64' => {
|
35
|
+
'platform' => 'el-7-x86_64',
|
36
|
+
'template' => 'centos-7-x86_64'
|
37
|
+
},
|
38
|
+
'debian6-32' => {
|
39
|
+
'platform' => 'debian-6-i386',
|
40
|
+
'template' => 'debian-6-i386'
|
41
|
+
},
|
42
|
+
'debian6-64' => {
|
43
|
+
'platform' => 'debian-6-amd64',
|
44
|
+
'template' => 'debian-6-x86_64'
|
45
|
+
},
|
46
|
+
'debian7-32' => {
|
47
|
+
'platform' => 'debian-7-i386',
|
48
|
+
'template' => 'debian-7-i386'
|
49
|
+
},
|
50
|
+
'debian7-64' => {
|
51
|
+
'platform' => 'debian-7-amd64',
|
52
|
+
'template' => 'debian-7-x86_64'
|
53
|
+
},
|
54
|
+
'debian8-32' => {
|
55
|
+
'platform' => 'debian-8-i386',
|
56
|
+
'template' => 'debian-8-i386'
|
57
|
+
},
|
58
|
+
'debian8-64' => {
|
59
|
+
'platform' => 'debian-8-amd64',
|
60
|
+
'template' => 'debian-8-x86_64'
|
61
|
+
},
|
62
|
+
'debian9-32' => {
|
63
|
+
'platform' => 'debian-9-i386',
|
64
|
+
'template' => 'debian-9-i386'
|
65
|
+
},
|
66
|
+
'debian9-64' => {
|
67
|
+
'platform' => 'debian-9-amd64',
|
68
|
+
'template' => 'debian-9-x86_64'
|
69
|
+
},
|
70
|
+
'oracle5-32' => {
|
71
|
+
'platform' => 'el-5-i386',
|
72
|
+
'template' => 'oracle-5-i386'
|
73
|
+
},
|
74
|
+
'oracle5-64' => {
|
75
|
+
'platform' => 'el-5-x86_64',
|
76
|
+
'template' => 'oracle-5-x86_64'
|
77
|
+
},
|
78
|
+
'oracle6-32' => {
|
79
|
+
'platform' => 'el-6-i386',
|
80
|
+
'template' => 'oracle-6-i386'
|
81
|
+
},
|
82
|
+
'oracle6-64' => {
|
83
|
+
'platform' => 'el-6-x86_64',
|
84
|
+
'template' => 'oracle-6-x86_64'
|
85
|
+
},
|
86
|
+
'oracle7-64' => {
|
87
|
+
'platform' => 'el-7-x86_64',
|
88
|
+
'template' => 'oracle-7-x86_64'
|
89
|
+
},
|
90
|
+
'osx109-64' => {
|
91
|
+
'platform' => 'osx-10.9-x86_64',
|
92
|
+
'template' => 'osx-109-x86_64'
|
93
|
+
},
|
94
|
+
'osx1010-64' => {
|
95
|
+
'platform' => 'osx-10.10-x86_64',
|
96
|
+
'template' => 'osx-1010-x86_64'
|
97
|
+
},
|
98
|
+
'osx1011-64' => {
|
99
|
+
'platform' => 'osx-10.11-x86_64',
|
100
|
+
'template' => 'osx-1011-x86_64'
|
101
|
+
},
|
102
|
+
'redhat4-32' => {
|
103
|
+
'platform' => 'el-4-i386',
|
104
|
+
'template' => 'redhat-4-i386'
|
105
|
+
},
|
106
|
+
'redhat4-64' => {
|
107
|
+
'platform' => 'el-4-x86_64',
|
108
|
+
'template' => 'redhat-4-x86_64'
|
109
|
+
},
|
110
|
+
'redhat5-32' => {
|
111
|
+
'platform' => 'el-5-i386',
|
112
|
+
'template' => 'redhat-5-i386'
|
113
|
+
},
|
114
|
+
'redhat5-64' => {
|
115
|
+
'platform' => 'el-5-x86_64',
|
116
|
+
'template' => 'redhat-5-x86_64'
|
117
|
+
},
|
118
|
+
'redhat6-32' => {
|
119
|
+
'platform' => 'el-6-i386',
|
120
|
+
'template' => 'redhat-6-i386'
|
121
|
+
},
|
122
|
+
'redhat6-64' => {
|
123
|
+
'platform' => 'el-6-x86_64',
|
124
|
+
'template' => 'redhat-6-x86_64'
|
125
|
+
},
|
126
|
+
'redhat7-64' => {
|
127
|
+
'platform' => 'el-7-x86_64',
|
128
|
+
'template' => 'redhat-7-x86_64'
|
129
|
+
},
|
130
|
+
'fedora14-32' => {
|
131
|
+
'platform' => 'fedora-14-i386',
|
132
|
+
'template' => 'fedora-14-i386'
|
133
|
+
},
|
134
|
+
'fedora19-32' => {
|
135
|
+
'platform' => 'fedora-19-i386',
|
136
|
+
'template' => 'fedora-19-i386'
|
137
|
+
},
|
138
|
+
'fedora19-64' => {
|
139
|
+
'platform' => 'fedora-19-x86_64',
|
140
|
+
'template' => 'fedora-19-x86_64'
|
141
|
+
},
|
142
|
+
'fedora20-32' => {
|
143
|
+
'platform' => 'fedora-20-i386',
|
144
|
+
'template' => 'fedora-20-i386'
|
145
|
+
},
|
146
|
+
'fedora20-64' => {
|
147
|
+
'platform' => 'fedora-20-x86_64',
|
148
|
+
'template' => 'fedora-20-x86_64'
|
149
|
+
},
|
150
|
+
'fedora21-32' => {
|
151
|
+
'platform' => 'fedora-21-i386',
|
152
|
+
'template' => 'fedora-21-i386'
|
153
|
+
},
|
154
|
+
'fedora21-64' => {
|
155
|
+
'platform' => 'fedora-21-x86_64',
|
156
|
+
'template' => 'fedora-21-x86_64'
|
157
|
+
},
|
158
|
+
'fedora22-32' => {
|
159
|
+
'platform' => 'fedora-22-i386',
|
160
|
+
'template' => 'fedora-22-i386'
|
161
|
+
},
|
162
|
+
'fedora22-64' => {
|
163
|
+
'platform' => 'fedora-22-x86_64',
|
164
|
+
'template' => 'fedora-22-x86_64'
|
165
|
+
},
|
166
|
+
'fedora23-32' => {
|
167
|
+
'platform' => 'fedora-23-i386',
|
168
|
+
'template' => 'fedora-23-i386'
|
169
|
+
},
|
170
|
+
'fedora23-64' => {
|
171
|
+
'platform' => 'fedora-23-x86_64',
|
172
|
+
'template' => 'fedora-23-x86_64'
|
173
|
+
},
|
174
|
+
'opensuse11-32' => {
|
175
|
+
'platform' => 'opensuse-11-i386',
|
176
|
+
'template' => 'opensuse-11-i386'
|
177
|
+
},
|
178
|
+
'opensuse11-64' => {
|
179
|
+
'platform' => 'opensuse-11-x86_64',
|
180
|
+
'template' => 'opensuse-11-x86_64'
|
181
|
+
},
|
182
|
+
'scientific5-32' => {
|
183
|
+
'platform' => 'el-5-i386',
|
184
|
+
'template' => 'scientific-5-i386'
|
185
|
+
},
|
186
|
+
'scientific5-64' => {
|
187
|
+
'platform' => 'el-5-x86_64',
|
188
|
+
'template' => 'scientific-5-x86_64'
|
189
|
+
},
|
190
|
+
'scientific6-32' => {
|
191
|
+
'platform' => 'el-6-i386',
|
192
|
+
'template' => 'scientific-6-i386'
|
193
|
+
},
|
194
|
+
'scientific6-64' => {
|
195
|
+
'platform' => 'el-6-x86_64',
|
196
|
+
'template' => 'scientific-6-x86_64'
|
197
|
+
},
|
198
|
+
'scientific7-64' => {
|
199
|
+
'platform' => 'el-7-x86_64',
|
200
|
+
'template' => 'scientific-7-x86_64'
|
201
|
+
},
|
202
|
+
'sles10-32' => {
|
203
|
+
'platform' => 'sles-10-i386',
|
204
|
+
'template' => 'sles-10-i386'
|
205
|
+
},
|
206
|
+
'sles10-64' => {
|
207
|
+
'platform' => 'sles-10-x86_64',
|
208
|
+
'template' => 'sles-10-x86_64'
|
209
|
+
},
|
210
|
+
'sles11-32' => {
|
211
|
+
'platform' => 'sles-11-i386',
|
212
|
+
'template' => 'sles-11-i386'
|
213
|
+
},
|
214
|
+
'sles11-64' => {
|
215
|
+
'platform' => 'sles-11-x86_64',
|
216
|
+
'template' => 'sles-11-x86_64'
|
217
|
+
},
|
218
|
+
'sles12-64' => {
|
219
|
+
'platform' => 'sles-12-x86_64',
|
220
|
+
'template' => 'sles-12-x86_64'
|
221
|
+
},
|
222
|
+
'solaris10-32' => {
|
223
|
+
'platform' => 'solaris-10-i386',
|
224
|
+
'template' => 'solaris-10-x86_64'
|
225
|
+
},
|
226
|
+
'solaris10-64' => {
|
227
|
+
'platform' => 'solaris-10-i386',
|
228
|
+
'template' => 'solaris-10-x86_64'
|
229
|
+
},
|
230
|
+
'solaris11-32' => {
|
231
|
+
'platform' => 'solaris-11-i386',
|
232
|
+
'template' => 'solaris-11-x86_64'
|
233
|
+
},
|
234
|
+
'solaris11-64' => {
|
235
|
+
'platform' => 'solaris-11-i386',
|
236
|
+
'template' => 'solaris-11-x86_64'
|
237
|
+
},
|
238
|
+
'solaris112-32' => {
|
239
|
+
'platform' => 'solaris-11.2-i386',
|
240
|
+
'template' => 'solaris-112-x86_64'
|
241
|
+
},
|
242
|
+
'solaris112-64' => {
|
243
|
+
'platform' => 'solaris-11.2-i386',
|
244
|
+
'template' => 'solaris-112-x86_64'
|
245
|
+
},
|
246
|
+
'ubuntu1004-32' => {
|
247
|
+
'platform' => 'ubuntu-10.04-i386',
|
248
|
+
'template' => 'ubuntu-1004-i386'
|
249
|
+
},
|
250
|
+
'ubuntu1004-64' => {
|
251
|
+
'platform' => 'ubuntu-10.04-amd64',
|
252
|
+
'template' => 'ubuntu-1004-x86_64'
|
253
|
+
},
|
254
|
+
'ubuntu1204-32' => {
|
255
|
+
'platform' => 'ubuntu-12.04-i386',
|
256
|
+
'template' => 'ubuntu-1204-i386'
|
257
|
+
},
|
258
|
+
'ubuntu1204-64' => {
|
259
|
+
'platform' => 'ubuntu-12.04-amd64',
|
260
|
+
'template' => 'ubuntu-1204-x86_64'
|
261
|
+
},
|
262
|
+
'ubuntu1404-32' => {
|
263
|
+
'platform' => 'ubuntu-14.04-i386',
|
264
|
+
'template' => 'ubuntu-1404-i386'
|
265
|
+
},
|
266
|
+
'ubuntu1404-64' => {
|
267
|
+
'platform' => 'ubuntu-14.04-amd64',
|
268
|
+
'template' => 'ubuntu-1404-x86_64'
|
269
|
+
},
|
270
|
+
'ubuntu1504-32' => {
|
271
|
+
'platform' => 'ubuntu-15.04-i386',
|
272
|
+
'template' => 'ubuntu-1504-i386'
|
273
|
+
},
|
274
|
+
'ubuntu1504-64' => {
|
275
|
+
'platform' => 'ubuntu-15.04-amd64',
|
276
|
+
'template' => 'ubuntu-1504-x86_64'
|
277
|
+
},
|
278
|
+
'ubuntu1510-32' => {
|
279
|
+
'platform' => 'ubuntu-15.10-i386',
|
280
|
+
'template' => 'ubuntu-1510-i386'
|
281
|
+
},
|
282
|
+
'ubuntu1510-64' => {
|
283
|
+
'platform' => 'ubuntu-15.10-amd64',
|
284
|
+
'template' => 'ubuntu-1510-x86_64'
|
285
|
+
},
|
286
|
+
'windows2003-64' => {
|
287
|
+
'platform' => 'windows-2003-64',
|
288
|
+
'template' => 'win-2003-x86_64',
|
289
|
+
'ruby_arch' => 'x64'
|
290
|
+
},
|
291
|
+
'windows2003-6432' => {
|
292
|
+
'platform' => 'windows-2003-64',
|
293
|
+
'template' => 'win-2003-x86_64',
|
294
|
+
'ruby_arch' => 'x86'
|
295
|
+
},
|
296
|
+
'windows2003r2-32' => {
|
297
|
+
'platform' => 'windows-2003r2-32',
|
298
|
+
'template' => 'win-2003r2-i386',
|
299
|
+
'ruby_arch' => 'x86'
|
300
|
+
},
|
301
|
+
'windows2003r2-64' => {
|
302
|
+
'platform' => 'windows-2003r2-64',
|
303
|
+
'template' => 'win-2003r2-x86_64',
|
304
|
+
'ruby_arch' => 'x64'
|
305
|
+
},
|
306
|
+
'windows2003r2-6432' => {
|
307
|
+
'platform' => 'windows-2003r2-64',
|
308
|
+
'template' => 'win-2003r2-x86_64',
|
309
|
+
'ruby_arch' => 'x86'
|
310
|
+
},
|
311
|
+
'windows2008-64' => {
|
312
|
+
'platform' => 'windows-2008-64',
|
313
|
+
'template' => 'win-2008-x86_64',
|
314
|
+
'ruby_arch' => 'x64'
|
315
|
+
},
|
316
|
+
'windows2008-6432' => {
|
317
|
+
'platform' => 'windows-2008-64',
|
318
|
+
'template' => 'win-2008-x86_64',
|
319
|
+
'ruby_arch' => 'x86'
|
320
|
+
},
|
321
|
+
'windows2008r2-64' => {
|
322
|
+
'platform' => 'windows-2008r2-64',
|
323
|
+
'template' => 'win-2008r2-x86_64',
|
324
|
+
'ruby_arch' => 'x64'
|
325
|
+
},
|
326
|
+
'windows2008r2-6432' => {
|
327
|
+
'platform' => 'windows-2008r2-64',
|
328
|
+
'template' => 'win-2008r2-x86_64',
|
329
|
+
'ruby_arch' => 'x86'
|
330
|
+
},
|
331
|
+
'windows2012-64' => {
|
332
|
+
'platform' => 'windows-2012-64',
|
333
|
+
'template' => 'win-2012-x86_64',
|
334
|
+
'ruby_arch' => 'x64'
|
335
|
+
},
|
336
|
+
'windows2012-6432' => {
|
337
|
+
'platform' => 'windows-2012-64',
|
338
|
+
'template' => 'win-2012-x86_64',
|
339
|
+
'ruby_arch' => 'x86'
|
340
|
+
},
|
341
|
+
'windows2012r2-64' => {
|
342
|
+
'platform' => 'windows-2012r2-64',
|
343
|
+
'template' => 'win-2012r2-x86_64',
|
344
|
+
'ruby_arch' => 'x64'
|
345
|
+
},
|
346
|
+
'windows2012r2-6432' => {
|
347
|
+
'platform' => 'windows-2012r2-64',
|
348
|
+
'template' => 'win-2012r2-x86_64',
|
349
|
+
'ruby_arch' => 'x86'
|
350
|
+
},
|
351
|
+
'windows7-64' => {
|
352
|
+
'platform' => 'windows-7-64',
|
353
|
+
'template' => 'win-7-x86_64',
|
354
|
+
'ruby_arch' => 'x64'
|
355
|
+
},
|
356
|
+
'windows8-64' => {
|
357
|
+
'platform' => 'windows-8-64',
|
358
|
+
'template' => 'win-8-x86_64',
|
359
|
+
'ruby_arch' => 'x64'
|
360
|
+
},
|
361
|
+
'windows81-64' => {
|
362
|
+
'platform' => 'windows-8.1-64',
|
363
|
+
'template' => 'win-81-x86_64',
|
364
|
+
'ruby_arch' => 'x64'
|
365
|
+
},
|
366
|
+
'windowsvista-64' => {
|
367
|
+
'platform' => 'windows-vista-64',
|
368
|
+
'template' => 'win-vista-x86_64',
|
369
|
+
'ruby_arch' => 'x64'
|
370
|
+
},
|
371
|
+
'windows10ent-32' => {
|
372
|
+
'platform' => 'windows-10ent-32',
|
373
|
+
'template' => 'win-10-ent-i386',
|
374
|
+
'ruby_arch' => 'x86'
|
375
|
+
},
|
376
|
+
'windows10ent-64' => {
|
377
|
+
'platform' => 'windows-10ent-x86_64',
|
378
|
+
'template' => 'win-10-ent-x86_64',
|
379
|
+
'ruby_arch' => 'x64'
|
380
|
+
},
|
381
|
+
'windows10pro-64' => {
|
382
|
+
'platform' => 'windows-10pro-x86_64',
|
383
|
+
'template' => 'win-10-pro-x86_64',
|
384
|
+
'ruby_arch' => 'x64'
|
385
|
+
},
|
386
|
+
}
|
387
|
+
|
388
|
+
VMPOOLER_CONFIG = {
|
389
|
+
'HOSTS' => {},
|
390
|
+
'CONFIG' => {
|
391
|
+
'pooling_api' => 'http://vmpooler.delivery.puppetlabs.net/'
|
392
|
+
}
|
393
|
+
}
|
394
|
+
|
395
|
+
end
|
396
|
+
end
|
397
|
+
end
|