beaker 2.27.0 → 2.28.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/HISTORY.md +378 -2
- data/README.md +1 -3
- data/acceptance/config/acceptance-options.rb +3 -0
- data/acceptance/fixtures/files/failing_shell_script.txt +3 -0
- data/acceptance/fixtures/files/retry_script.txt +14 -0
- data/acceptance/fixtures/files/shell_script_with_output.txt +3 -0
- data/acceptance/fixtures/files/simple_text_file.txt +3 -0
- data/acceptance/fixtures/files/sles-11-x86_64.repo +5 -0
- data/acceptance/lib/helpers/test_helper.rb +111 -0
- data/acceptance/tests/base/dsl/helpers/configuration_test.rb +17 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/add_system32_hosts_entry_test.rb +50 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/backup_the_file_test.rb +64 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb +100 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/create_remote_file_test.rb +201 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/create_tmpdir_on_test.rb +68 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/curl_on_test.rb +48 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb +28 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/deploy_package_repo_test.rb +142 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/echo_on_test.rb +13 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/install_package_test.rb +67 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +109 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/retry_on_test.rb +42 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/rsync_to_test.rb +143 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/run_cron_on_test.rb +242 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_on_test.rb +69 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_test.rb +53 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/scp_from_test.rb +53 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/scp_to_test.rb +54 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/shell_test.rb +51 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/upgrade_package_test.rb +92 -0
- data/acceptance/tests/base/dsl/install_utils/clone_git_repo_on_test.rb +47 -0
- data/acceptance/tests/base/{host.rb → host_test.rb} +2 -0
- data/acceptance/tests/hypervisor/{communication.rb → communication_test.rb} +0 -0
- data/acceptance/tests/load_path_bootstrap.rb +10 -0
- data/acceptance/tests/puppet/{install_smoke.rb → install_smoke_test.rb} +0 -0
- data/beaker.gemspec +1 -1
- data/docs/Access-the-Live-Test-Console-with-Pry.md +305 -0
- data/docs/Argument-Processing-and-Precedence.md +325 -0
- data/docs/Beaker-Installation.md +59 -0
- data/docs/Beaker-Owners-and-Reviewers.md +16 -0
- data/docs/Beaker-Test-Tagging.md +76 -0
- data/docs/Beaker-with-Masterless-Puppet.md +42 -0
- data/docs/Creating-A-Test-Environment.md +91 -0
- data/docs/Docker-Support.md +129 -0
- data/docs/EC2-Support.md +77 -0
- data/docs/Example-Vagrant-Hosts-Files.md +66 -0
- data/docs/File-a-Beaker-Bug.md +3 -0
- data/docs/Google-Compute-Engine-Support.md +41 -0
- data/docs/How-To-Beaker.md +7 -0
- data/docs/How-To-Use-User-Password-Authentication-with-Beaker.md +53 -0
- data/docs/How-to-Write-a-Beaker-Test-for-a-Module.md +145 -0
- data/docs/Lets-Write-a-Test.md +73 -0
- data/docs/Openstack-Support.md +32 -0
- data/docs/Overview.md +31 -0
- data/docs/README.md +43 -0
- data/docs/Roles-What-Are-They.md +44 -0
- data/docs/Shared-Options-for-Executing-Beaker-Commands.md +43 -0
- data/docs/Solaris-Support.md +10 -0
- data/docs/The-Beaker-DSL.md +283 -0
- data/docs/The-Command-Line.md +24 -0
- data/docs/Types,-Puppet-4,-and-the-All-In-One-Agent.md +13 -0
- data/docs/VMWare-Fusion-Support.md +36 -0
- data/docs/Vagrant-Support.md +47 -0
- data/docs/beaker-vs.-beaker-rspec.md +87 -0
- data/docs/hosts/README.md +8 -0
- data/docs/hosts/eos.md +30 -0
- data/docs/hypervisors/README.md +8 -0
- data/docs/hypervisors/aws.md +143 -0
- data/docs/vSphere-Support.md +46 -0
- data/lib/beaker/dsl/helpers/host_helpers.rb +2 -4
- data/lib/beaker/dsl/helpers/puppet_helpers.rb +45 -11
- data/lib/beaker/dsl/install_utils/foss_utils.rb +20 -23
- data/lib/beaker/dsl/install_utils/module_utils.rb +4 -0
- data/lib/beaker/dsl/install_utils/pe_utils.rb +2 -6
- data/lib/beaker/dsl/patterns.rb +1 -1
- data/lib/beaker/host.rb +3 -0
- data/lib/beaker/host/eos.rb +56 -0
- data/lib/beaker/host/mac/pkg.rb +1 -1
- data/lib/beaker/host/unix/pkg.rb +36 -0
- data/lib/beaker/hypervisor/aws_sdk.rb +1 -1
- data/lib/beaker/hypervisor/vagrant.rb +3 -3
- data/lib/beaker/logger.rb +1 -0
- data/lib/beaker/options/presets.rb +5 -0
- data/lib/beaker/shared/host_manager.rb +7 -4
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +87 -0
- data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +53 -20
- data/spec/beaker/dsl/install_utils/module_utils_spec.rb +1 -1
- data/spec/beaker/dsl/install_utils/pe_utils_spec.rb +7 -14
- data/spec/beaker/host/eos_spec.rb +65 -0
- data/spec/beaker/host/unix/pkg_spec.rb +42 -0
- data/spec/beaker/hypervisor/aws_sdk_spec.rb +17 -56
- data/spec/beaker/hypervisor/vagrant_spec.rb +1 -1
- data/spec/beaker/logger_spec.rb +1 -1
- data/spec/mocks.rb +0 -13
- metadata +76 -6
- data/acceptance/tests/dsl/install_utils/clone_git_repo_on.rb +0 -50
@@ -0,0 +1,42 @@
|
|
1
|
+
# Overview
|
2
|
+
|
3
|
+
## What is masterless Puppet?
|
4
|
+
|
5
|
+
Masterless Puppet is a common way of running Puppet where you might have a number of Puppet Agents, but no hosts running under any other roles (master, dashboard, database, default).
|
6
|
+
|
7
|
+
## Why Would You Want to Do This?
|
8
|
+
|
9
|
+
A few examples of common situations where running masterless Puppet would be useful are below:
|
10
|
+
|
11
|
+
- Testing modules against Windows. Traditionally, a non-Windows master would be required, but is really just needless overhead in this case.
|
12
|
+
- running Puppet to provision hosts, only running it the once, using `puppet agent`, and then providing it to your users
|
13
|
+
|
14
|
+
## How Do I Run Masterless?
|
15
|
+
|
16
|
+
In order to have Beaker support a masterless Puppet setup, you have to do a few things:
|
17
|
+
|
18
|
+
1. include the `masterless: true` flag in the `CONFIG` section of your hosts file
|
19
|
+
2. Make sure the roles are correct for the hosts now. You'll want to make sure a host doesn't have a role that it won't be able to fulfill
|
20
|
+
3. Run Beaker just like you normally would
|
21
|
+
|
22
|
+
# Under the Hood
|
23
|
+
|
24
|
+
## What is Beaker Doing by Default?
|
25
|
+
|
26
|
+
Be default (without the masterless flag), when someone calls for a host of a particular role, using the `Beaker::DSL::Roles` module's methods (ie. `master`, `dashboard`, etc), Beaker checks to verify that a host was given with that role.
|
27
|
+
|
28
|
+
If no host was given with this role, then Beaker throws a `DSL::Outcomes::FailTest` Error, which causes that test case to fail.
|
29
|
+
|
30
|
+
## What Does This Flag Do?
|
31
|
+
|
32
|
+
Inside Beaker, when you call `Beaker::DSL::Roles` module's methods with the masterless flag set, Beaker will allow there to be hosts which don't fit defined roles. If a host can't be found for a particular role, that role method will now return `nil`.
|
33
|
+
|
34
|
+
If you'd like to test both masterless and not, you'll have to deal with a role method potentially returning `nil`.
|
35
|
+
|
36
|
+
## How Do I Avoid Issues With This?
|
37
|
+
|
38
|
+
You can make it so that a test will only run if we're not running masterless with this line:
|
39
|
+
|
40
|
+
confine :to, :masterless => false
|
41
|
+
|
42
|
+
and vice versa.
|
@@ -0,0 +1,91 @@
|
|
1
|
+
Hosts/Nodes/SUTs are defined in the --hosts (--config) file in Yaml format. This file defines each node in the test configuration. The file can be saved anywhere and used with `beaker --hosts yourhost.cfg` see [The Command Line](The-Command-Line.md) for more info.
|
2
|
+
|
3
|
+
Example hosts file:
|
4
|
+
|
5
|
+
HOSTS:
|
6
|
+
ubuntu-1404-x64-master:
|
7
|
+
roles:
|
8
|
+
- master
|
9
|
+
- agent
|
10
|
+
- dashboard
|
11
|
+
- database
|
12
|
+
platform: ubuntu-1404-x86_64
|
13
|
+
hypervisor: vagrant
|
14
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
15
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
16
|
+
ip: 192.168.20.20
|
17
|
+
ubuntu-1404-x64-agent:
|
18
|
+
roles:
|
19
|
+
- agent
|
20
|
+
platform: ubuntu-1404-x86_64
|
21
|
+
hypervisor: vagrant
|
22
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
23
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
24
|
+
ip: 192.168.21.21
|
25
|
+
CONFIG:
|
26
|
+
nfs_server: none
|
27
|
+
consoleport: 443
|
28
|
+
|
29
|
+
## Host Requirements ##
|
30
|
+
Hosts, or SUTs (Systems Under Test), must meet the following requirements:
|
31
|
+
* The SUT will need a properly configured network, hosts will need to be able to reach each other by hostname.
|
32
|
+
* On the SUT, you must configure passwordless SSH authentication for the root user.
|
33
|
+
* The SUT must have the `ntpdate` binary installed.
|
34
|
+
* The SUT must have the `curl` binary installed.
|
35
|
+
* On Windows, `Cygwin` must be installed (with `curl`, `sshd`, `bash`) and the necessary windows gems (`sys-admin`, `win32-dir`, etc).
|
36
|
+
* FOSS install: you must have `git`, `ruby`, and `rdoc` installed on your SUT.
|
37
|
+
|
38
|
+
## Required Host Settings ##
|
39
|
+
To properly define a host you must provide:
|
40
|
+
|
41
|
+
* name
|
42
|
+
* The string identifying this host.
|
43
|
+
* platform
|
44
|
+
* One of the Beaker supported platforms.
|
45
|
+
|
46
|
+
## Optional Host Settings ##
|
47
|
+
Additionally, Beaker supports the following host options:
|
48
|
+
|
49
|
+
* ip
|
50
|
+
* The IP address of the SUT.
|
51
|
+
* hypervisor
|
52
|
+
* One of `docker`, `solaris`, `ec2`, `vsphere`, `fusion`, `aix`, `vcloud` or `vagrant`.
|
53
|
+
* Additional settings may be required depending on the selected hypervisor (ie, template, box, box_url, etc). Check the documentation below for your hypervisor for details.
|
54
|
+
* snapshot
|
55
|
+
* The name of the snapshot to revert to before testing.
|
56
|
+
* roles
|
57
|
+
* The 'job' of this host, an array of `master`, `agent`, `frictionless`, `dashboard`, `database`, `default` or any user-defined string.
|
58
|
+
* pe_dir
|
59
|
+
* The directory where PE builds are located, may be local directory or a URL.
|
60
|
+
* pe_ver
|
61
|
+
* The version number of PE to install.
|
62
|
+
* vagrant_memsize
|
63
|
+
* The memory size (in MB) for this host
|
64
|
+
|
65
|
+
## Supported Platforms ##
|
66
|
+
Beaker depends upon each host in the configuration file having a platform type that is correctly formatted and supported. The platform is used to determine how various operations are carried out internally (such as installing packages using the correct package manager for the given operating system).
|
67
|
+
|
68
|
+
The platform's format is `/^OSFAMILY-VERSION-ARCH.*$/` where `OSFAMILY` is one of:
|
69
|
+
|
70
|
+
* fedora
|
71
|
+
* debian
|
72
|
+
* oracle
|
73
|
+
* scientific
|
74
|
+
* sles
|
75
|
+
* ubuntu
|
76
|
+
* windows
|
77
|
+
* solaris
|
78
|
+
* aix
|
79
|
+
* el (covers centos, redhat and enterprise linux)
|
80
|
+
|
81
|
+
`VERSION`'s format is not enforced, but should reflect the `OSFAMILY` selected (ie, ubuntu-1204-i386-master, scientific-6-i386-agent, etc). `ARCH`'s format is also not enforced, but should be appropriate to the `OSFAMILY` selected (ie, ubuntu-1204-i386-master, sles-11-x86_64-master, debian-7-amd64-master, etc).
|
82
|
+
|
83
|
+
## Supported Virtualization Providers ##
|
84
|
+
* [VMWare Fusion](VMWare-Fusion-Support.md)
|
85
|
+
* [EC2](EC2-Support.md)
|
86
|
+
* [vSphere](vSphere-Support.md)
|
87
|
+
* [Vagrant](Vagrant-Support.md)
|
88
|
+
* [Google Compute Engine](Google-Compute-Engine-Support.md)
|
89
|
+
* [Docker Support](Docker-Support.md)
|
90
|
+
* [Openstack](Openstack-Support.md)
|
91
|
+
* [Solaris](Solaris-Support.md)
|
@@ -0,0 +1,129 @@
|
|
1
|
+
This option allows for testing against Docker containers.
|
2
|
+
|
3
|
+
|
4
|
+
### Why?
|
5
|
+
|
6
|
+
Using docker as a hypervisor significantly speeds up the provisioning process, as you don't have to spin up an entire VM to run the tests, which has significant overhead.
|
7
|
+
|
8
|
+
### How?
|
9
|
+
|
10
|
+
So first of all, install Docker using the instructions [here](https://docs.docker.com/installation/#installation).
|
11
|
+
|
12
|
+
In the real world, it's generally seen as [bad practice to have sshd running in a Docker container](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/). However, for the purpose of a disposable test instance, we're not going to worry about that!
|
13
|
+
|
14
|
+
### Basic docker hosts file ###
|
15
|
+
The base image to use for the container is named by the image key.
|
16
|
+
|
17
|
+
HOSTS:
|
18
|
+
ubuntu-12-10:
|
19
|
+
platform: ubuntu-12.10-x64
|
20
|
+
image: ubuntu:12.10
|
21
|
+
hypervisor: docker
|
22
|
+
CONFIG:
|
23
|
+
type: foss
|
24
|
+
|
25
|
+
### Docker hosts file, with image modification ###
|
26
|
+
You can specify extra commands to be executed in order to modify the image with the `docker_image_commands` key.
|
27
|
+
|
28
|
+
HOSTS:
|
29
|
+
ubuntu-12-10:
|
30
|
+
platform: ubuntu-12.10-x64
|
31
|
+
image: ubuntu:12.10
|
32
|
+
hypervisor: docker
|
33
|
+
docker_image_commands:
|
34
|
+
- 'apt-get install -y myapp'
|
35
|
+
- 'myapp --setup'
|
36
|
+
CONFIG:
|
37
|
+
type: foss
|
38
|
+
|
39
|
+
### Docker hosts files, with modified start commands ###
|
40
|
+
By default the docker container just runs an sshd which is adequate for 'puppet apply' style testing. You can specify a different command to start with the `docker_cmd` key. This gives you scope to run something with more service supervision baked into it, but it is is important that this command starts an sshd listening on port 22 so that beaker can drive the container.
|
41
|
+
|
42
|
+
HOSTS:
|
43
|
+
ubuntu-12-10:
|
44
|
+
platform: ubuntu-12.10-x64
|
45
|
+
image: ubuntu:12.10
|
46
|
+
hypervisor: docker
|
47
|
+
docker_cmd: '["/sbin/init"]'
|
48
|
+
CONFIG:
|
49
|
+
type: foss
|
50
|
+
|
51
|
+
### Preserve Docker Image ###
|
52
|
+
Unless the image configuration changes you might want to keep the Docker image for multiple spec runs. Use `docker_preserve_image` option for a host.
|
53
|
+
|
54
|
+
HOSTS:
|
55
|
+
ubuntu-12-10:
|
56
|
+
platform: ubuntu-12.10-x64
|
57
|
+
image: ubuntu:12.10
|
58
|
+
hypervisor: docker
|
59
|
+
docker_preserve_image: true
|
60
|
+
CONFIG:
|
61
|
+
type: foss
|
62
|
+
|
63
|
+
### Reuse Docker Image ###
|
64
|
+
In case you want to rerun the puppet again on the docker container, you can pass BEAKER_provision=no on the command line to set the env. Add this line in you default.ml file
|
65
|
+
|
66
|
+
```
|
67
|
+
HOSTS:
|
68
|
+
centos6-64:
|
69
|
+
roles:
|
70
|
+
- agent
|
71
|
+
platform: el-6-x86_64
|
72
|
+
image: centos:6.6
|
73
|
+
hypervisor: docker
|
74
|
+
CONFIG:
|
75
|
+
type: foss
|
76
|
+
log_level: verbose
|
77
|
+
ssh:
|
78
|
+
password: root
|
79
|
+
auth_methods: ["password"]
|
80
|
+
```
|
81
|
+
|
82
|
+
### Example Output
|
83
|
+
|
84
|
+
For this example made a new docker nodeset file in the [puppetlabs-inifile](https://github.com/puppetlabs/puppetlabs-inifile) repo and ran the ini_setting_spec.rb spec:
|
85
|
+
|
86
|
+
```bash
|
87
|
+
$ bundle exec rspec spec/acceptance/ini_setting_spec.rb
|
88
|
+
Hypervisor for debian-7 is docker
|
89
|
+
Beaker::Hypervisor, found some docker boxes to create
|
90
|
+
Provisioning docker
|
91
|
+
provisioning debian-7
|
92
|
+
Creating image
|
93
|
+
Dockerfile is FROM debian:7.4
|
94
|
+
RUN apt-get update
|
95
|
+
RUN apt-get install -y openssh-server openssh-client curl ntpdate lsb-release
|
96
|
+
RUN mkdir -p /var/run/sshd
|
97
|
+
RUN echo root:root | chpasswd
|
98
|
+
RUN apt-get install -yq lsb-release wget net-tools ruby rubygems ruby1.8-dev libaugeas-dev libaugeas-ruby ntpdate locales-all
|
99
|
+
RUN REALLY_GEM_UPDATE_SYSTEM=1 gem update --system --no-ri --no-rdoc
|
100
|
+
EXPOSE 22
|
101
|
+
CMD ["/sbin/init"]
|
102
|
+
```
|
103
|
+
|
104
|
+
This step may take a while, as Docker will have to download the image. The subsequent runs will be a lot faster (as long as `docker_preserve_image: true` has been enabled).
|
105
|
+
|
106
|
+
For example, running this took 5 minutes to download and setup the `debian:7.4` image, but runs instantly the second time.
|
107
|
+
|
108
|
+
You should then see something like:
|
109
|
+
|
110
|
+
```
|
111
|
+
Creating container from image 3a86e5aba94d
|
112
|
+
post
|
113
|
+
/v1.15/containers/create
|
114
|
+
{}
|
115
|
+
{"Image":"3a86e5aba94d","Hostname":"debian-7"}
|
116
|
+
Starting container b8b31702b34b4aedd137c8a6a72fe730560bb00533e68764ba6263405f9244e4
|
117
|
+
post
|
118
|
+
/v1.15/containers/b8b31702b34b4aedd137c8a6a72fe730560bb00533e68764ba6263405f9244e4/start
|
119
|
+
{}
|
120
|
+
{"PublishAllPorts":true,"Privileged":true}
|
121
|
+
Using docker server at 192.168.59.103
|
122
|
+
get
|
123
|
+
/v1.15/containers/b8b31702b34b4aedd137c8a6a72fe730560bb00533e68764ba6263405f9244e4/json
|
124
|
+
{}
|
125
|
+
|
126
|
+
node available as ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@192.168.59.103 -p 49155
|
127
|
+
```
|
128
|
+
|
129
|
+
The tests should then run as normal from there.
|
data/docs/EC2-Support.md
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
Pre-requisite: .fog file correctly configured with your credentials.
|
2
|
+
|
3
|
+
hypervisor: ec2
|
4
|
+
|
5
|
+
### example .fog file ###
|
6
|
+
:default:
|
7
|
+
:aws_access_key_id: IMTHEKEYID
|
8
|
+
:aws_secret_access_key: IMALONGACCESSKYE
|
9
|
+
|
10
|
+
### Basic ec2 hosts file ###
|
11
|
+
HOSTS:
|
12
|
+
centos-5-64-1:
|
13
|
+
roles:
|
14
|
+
- master
|
15
|
+
- dashboard
|
16
|
+
- database
|
17
|
+
- agent
|
18
|
+
vmname: centos-5-x86-64-west
|
19
|
+
platform: el-5-x86_64
|
20
|
+
hypervisor: ec2
|
21
|
+
amisize: c1.medium
|
22
|
+
snapshot: pe
|
23
|
+
centos-5-64-1:
|
24
|
+
roles:
|
25
|
+
- agent
|
26
|
+
vmname: centos-5-x86-64-west
|
27
|
+
platform: el-5-x86_64
|
28
|
+
hypervisor: ec2
|
29
|
+
amisize: c1.medium
|
30
|
+
snapshot: pe
|
31
|
+
CONFIG:
|
32
|
+
nfs_server: none
|
33
|
+
consoleport: 443
|
34
|
+
|
35
|
+
Currently, there is limited support EC2 nodes; we are adding support for new platforms shortly.
|
36
|
+
|
37
|
+
AMIs are built for PE based installs on:
|
38
|
+
- Enterprise Linux 6, 64 and 32 bit
|
39
|
+
- Enterprise Linux 5, 32 bit
|
40
|
+
- Ubuntu 10.04, 32 bit
|
41
|
+
|
42
|
+
Beaker will automagically provision EC2 nodes, provided the 'platform:' section of your config file lists a supported platform type: ubuntu-10.04-i386, el-6-x86_64, el-6-i386, el-5-i386.
|
43
|
+
|
44
|
+
### Supported EC2 Variables ###
|
45
|
+
These variables can either be set per-host or globally.
|
46
|
+
####`additional_ports`####
|
47
|
+
Ports to be opened on the instance, in addition to those opened by Beaker to support Puppet functionality. Can be a single value or an array. Example valid values: 1001, [1001], [1001, 1002].
|
48
|
+
|
49
|
+
Ports opened by default:
|
50
|
+
* all hosts have [22, 61613, 8139] opened
|
51
|
+
* `master` will also have 8140 opened
|
52
|
+
* `dashboard` will also have [443, 4433, 4435] opened
|
53
|
+
* `database` will also have [5432, 8080, 8081] opened
|
54
|
+
|
55
|
+
####`amisize` ####
|
56
|
+
The [instance type](https://aws.amazon.com/ec2/instance-types/) - defaults to `m1.small`.
|
57
|
+
####`snapshot`####
|
58
|
+
The snapshot to use for ec2 instance creation.
|
59
|
+
####`subnet_id`####
|
60
|
+
If defined the instance will be created in this EC2 subnet. `vpc_id` must be defined. Cannot be defined at the same time as `subnet_ids`.
|
61
|
+
####`subnet_ids`####
|
62
|
+
If defined the instace will be crated in one of the provided array of EC2 subnets. `vpc_id` must be defined. Cannot be defined at the same time as `subnet_id`.
|
63
|
+
####`vmname`####
|
64
|
+
Used to look up the pre-defined AMI information in `config/image_templates/ec2.yaml`. Will default to `platform` if not defined.
|
65
|
+
#####Example ec2.yaml#####
|
66
|
+
In this example the `vmname` would be `puppetlabs-centos-5-x86-64-west`. Looking up the `vmname` in the `ec2.yaml` file provides an AMI ID by type (`pe` or `foss`) and the region.
|
67
|
+
```
|
68
|
+
AMI:
|
69
|
+
puppetlabs-centos-5-x86-64-west:
|
70
|
+
:image:
|
71
|
+
:pe: ami-pl-12345
|
72
|
+
:region: us-west-2
|
73
|
+
```
|
74
|
+
####`volume_size`####
|
75
|
+
Size of the [EBS Volume](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html) that will be attached to the EC2 instance.
|
76
|
+
####`vpc_id`####
|
77
|
+
ID of the [VPC](https://aws.amazon.com/vpc/) to create the instances in. If not provided will either use the default VPC for the provided region (marked as `isDefault`), otherwise falls back to `nil`. If subnet information is provided (`subnet_id`/`subnet_ids`) this must be defined.
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#centos-511-x64.yml
|
2
|
+
```
|
3
|
+
HOSTS:
|
4
|
+
centos-511-x64:
|
5
|
+
roles:
|
6
|
+
- master
|
7
|
+
platform: el-5-x86_64
|
8
|
+
box: puppetlabs/centos-5.11-64-nocm
|
9
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/centos-5.11-64-nocm
|
10
|
+
hypervisor: vagrant
|
11
|
+
```
|
12
|
+
#centos-65-x64.yml
|
13
|
+
```
|
14
|
+
HOSTS:
|
15
|
+
centos-65-x64:
|
16
|
+
roles:
|
17
|
+
- master
|
18
|
+
platform: el-6-x86_64
|
19
|
+
box: puppetlabs/centos-6.5-64-nocm
|
20
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/centos-6.5-64-nocm
|
21
|
+
hypervisor: vagrant
|
22
|
+
```
|
23
|
+
#debian-609-x64.yml
|
24
|
+
```
|
25
|
+
HOSTS:
|
26
|
+
debian-609-x64:
|
27
|
+
roles:
|
28
|
+
- master
|
29
|
+
platform: debian-6-amd64
|
30
|
+
box: puppetlabs/debian-6.0.9-64-nocm
|
31
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/debian-6.0.9-64-nocm
|
32
|
+
hypervisor: vagrant
|
33
|
+
```
|
34
|
+
#debian-78-x64.yml
|
35
|
+
```
|
36
|
+
HOSTS:
|
37
|
+
debian-78-x64:
|
38
|
+
roles:
|
39
|
+
- master
|
40
|
+
platform: debian-7-amd64
|
41
|
+
box: puppetlabs/debian-7.8-64-nocm
|
42
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/debian-7.8-64-nocm
|
43
|
+
hypervisor: vagrant
|
44
|
+
```
|
45
|
+
#ubuntu-server-1204-x64.yml
|
46
|
+
```
|
47
|
+
HOSTS:
|
48
|
+
ubuntu-server-1204-x64:
|
49
|
+
roles:
|
50
|
+
- master
|
51
|
+
platform: ubuntu-1204-amd64
|
52
|
+
box: puppetlabs/ubuntu-12.04-64-nocm
|
53
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-12.04-64-nocm
|
54
|
+
hypervisor: vagrant
|
55
|
+
```
|
56
|
+
#ubuntu-server-1404-x64.yml
|
57
|
+
```
|
58
|
+
HOSTS:
|
59
|
+
ubuntu-server-1404-x64:
|
60
|
+
roles:
|
61
|
+
- master
|
62
|
+
platform: ubuntu-14.04-amd64
|
63
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
64
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
65
|
+
hypervisor: vagrant
|
66
|
+
```
|
@@ -0,0 +1,41 @@
|
|
1
|
+
This option provisions instances from pre-existing Google Compute Engine images. Currently only supports debian-7 and centos-6 platforms (<a href = "https://developers.google.com/compute/docs/images#availableimages">Google Compute Engine available images</a>)
|
2
|
+
|
3
|
+
Pre-requisites:
|
4
|
+
|
5
|
+
* A Google Compute Engine project.
|
6
|
+
* An active service account to your Google Compute Engine project (<a href = "https://developers.google.com/drive/service-accounts">Service Accounts Documentation</a>), along with the following information:
|
7
|
+
* The service account private key file (named xxx-privatekey.p12).
|
8
|
+
* The service account email address (named xxx@developer.gserviceaccount.com).
|
9
|
+
* The service account password.
|
10
|
+
* A passwordless ssh keypair (<a href = "http://www.linuxproblem.org/art_9.html">SSH login without password</a>, <a href = "https://developers.google.com/compute/docs/console#sshkeys">Setting up Google Compute sshKeys metadata</a>).
|
11
|
+
* Name the pair `google-compute`
|
12
|
+
* Place the public key in your Google Compute Engine project metadata
|
13
|
+
* `key`: `sshKeys`
|
14
|
+
* `value` is the contents of your google_compute.pub with "google_compute:" prepended, eg:
|
15
|
+
<pre>
|
16
|
+
google_compute:ssh-rsaAAAABCCCCCCCCCCDDDDDeeeeeeeeFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHiiiiiiiiiiiJJJJJJJJKKKKKKKKKlllllllllllllllllllMNOppppppppppppppppppQRSTUV123456789101010101101010101011010101010110/ABCDEFGHIJKLMNOP+AB user@machine.local </pre>
|
17
|
+
|
18
|
+
### example GCE hosts file###
|
19
|
+
|
20
|
+
HOSTS:
|
21
|
+
debian-7-master:
|
22
|
+
roles:
|
23
|
+
- master
|
24
|
+
- agent
|
25
|
+
- database
|
26
|
+
platform: debian-7-wheezy-xxx
|
27
|
+
hypervisor: google
|
28
|
+
centos-6-agent:
|
29
|
+
roles:
|
30
|
+
- agent
|
31
|
+
platform: centos-6-xxx
|
32
|
+
hypervisor: google
|
33
|
+
CONFIG:
|
34
|
+
nfs_server: none
|
35
|
+
consoleport: 443
|
36
|
+
gce_project: google-compute-project-name
|
37
|
+
gce_keyfile: /path/to/*****-privatekey.p12
|
38
|
+
gce_password: notasecret
|
39
|
+
gce_email: *********@developer.gserviceaccount.com
|
40
|
+
|
41
|
+
Google Compute cloud instances and disks are deleted after test runs, but it is up to the owner of the Google Compute Engine project to ensure that any zombie instances/disks are properly removed should Beaker fail during cleanup.
|