beaker 2.27.0 → 2.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +8 -8
  2. data/HISTORY.md +378 -2
  3. data/README.md +1 -3
  4. data/acceptance/config/acceptance-options.rb +3 -0
  5. data/acceptance/fixtures/files/failing_shell_script.txt +3 -0
  6. data/acceptance/fixtures/files/retry_script.txt +14 -0
  7. data/acceptance/fixtures/files/shell_script_with_output.txt +3 -0
  8. data/acceptance/fixtures/files/simple_text_file.txt +3 -0
  9. data/acceptance/fixtures/files/sles-11-x86_64.repo +5 -0
  10. data/acceptance/lib/helpers/test_helper.rb +111 -0
  11. data/acceptance/tests/base/dsl/helpers/configuration_test.rb +17 -0
  12. data/acceptance/tests/base/dsl/helpers/host_helpers/add_system32_hosts_entry_test.rb +50 -0
  13. data/acceptance/tests/base/dsl/helpers/host_helpers/backup_the_file_test.rb +64 -0
  14. data/acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb +100 -0
  15. data/acceptance/tests/base/dsl/helpers/host_helpers/create_remote_file_test.rb +201 -0
  16. data/acceptance/tests/base/dsl/helpers/host_helpers/create_tmpdir_on_test.rb +68 -0
  17. data/acceptance/tests/base/dsl/helpers/host_helpers/curl_on_test.rb +48 -0
  18. data/acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb +28 -0
  19. data/acceptance/tests/base/dsl/helpers/host_helpers/deploy_package_repo_test.rb +142 -0
  20. data/acceptance/tests/base/dsl/helpers/host_helpers/echo_on_test.rb +13 -0
  21. data/acceptance/tests/base/dsl/helpers/host_helpers/install_package_test.rb +67 -0
  22. data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +109 -0
  23. data/acceptance/tests/base/dsl/helpers/host_helpers/retry_on_test.rb +42 -0
  24. data/acceptance/tests/base/dsl/helpers/host_helpers/rsync_to_test.rb +143 -0
  25. data/acceptance/tests/base/dsl/helpers/host_helpers/run_cron_on_test.rb +242 -0
  26. data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_on_test.rb +69 -0
  27. data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_test.rb +53 -0
  28. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_from_test.rb +53 -0
  29. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_to_test.rb +54 -0
  30. data/acceptance/tests/base/dsl/helpers/host_helpers/shell_test.rb +51 -0
  31. data/acceptance/tests/base/dsl/helpers/host_helpers/upgrade_package_test.rb +92 -0
  32. data/acceptance/tests/base/dsl/install_utils/clone_git_repo_on_test.rb +47 -0
  33. data/acceptance/tests/base/{host.rb → host_test.rb} +2 -0
  34. data/acceptance/tests/hypervisor/{communication.rb → communication_test.rb} +0 -0
  35. data/acceptance/tests/load_path_bootstrap.rb +10 -0
  36. data/acceptance/tests/puppet/{install_smoke.rb → install_smoke_test.rb} +0 -0
  37. data/beaker.gemspec +1 -1
  38. data/docs/Access-the-Live-Test-Console-with-Pry.md +305 -0
  39. data/docs/Argument-Processing-and-Precedence.md +325 -0
  40. data/docs/Beaker-Installation.md +59 -0
  41. data/docs/Beaker-Owners-and-Reviewers.md +16 -0
  42. data/docs/Beaker-Test-Tagging.md +76 -0
  43. data/docs/Beaker-with-Masterless-Puppet.md +42 -0
  44. data/docs/Creating-A-Test-Environment.md +91 -0
  45. data/docs/Docker-Support.md +129 -0
  46. data/docs/EC2-Support.md +77 -0
  47. data/docs/Example-Vagrant-Hosts-Files.md +66 -0
  48. data/docs/File-a-Beaker-Bug.md +3 -0
  49. data/docs/Google-Compute-Engine-Support.md +41 -0
  50. data/docs/How-To-Beaker.md +7 -0
  51. data/docs/How-To-Use-User-Password-Authentication-with-Beaker.md +53 -0
  52. data/docs/How-to-Write-a-Beaker-Test-for-a-Module.md +145 -0
  53. data/docs/Lets-Write-a-Test.md +73 -0
  54. data/docs/Openstack-Support.md +32 -0
  55. data/docs/Overview.md +31 -0
  56. data/docs/README.md +43 -0
  57. data/docs/Roles-What-Are-They.md +44 -0
  58. data/docs/Shared-Options-for-Executing-Beaker-Commands.md +43 -0
  59. data/docs/Solaris-Support.md +10 -0
  60. data/docs/The-Beaker-DSL.md +283 -0
  61. data/docs/The-Command-Line.md +24 -0
  62. data/docs/Types,-Puppet-4,-and-the-All-In-One-Agent.md +13 -0
  63. data/docs/VMWare-Fusion-Support.md +36 -0
  64. data/docs/Vagrant-Support.md +47 -0
  65. data/docs/beaker-vs.-beaker-rspec.md +87 -0
  66. data/docs/hosts/README.md +8 -0
  67. data/docs/hosts/eos.md +30 -0
  68. data/docs/hypervisors/README.md +8 -0
  69. data/docs/hypervisors/aws.md +143 -0
  70. data/docs/vSphere-Support.md +46 -0
  71. data/lib/beaker/dsl/helpers/host_helpers.rb +2 -4
  72. data/lib/beaker/dsl/helpers/puppet_helpers.rb +45 -11
  73. data/lib/beaker/dsl/install_utils/foss_utils.rb +20 -23
  74. data/lib/beaker/dsl/install_utils/module_utils.rb +4 -0
  75. data/lib/beaker/dsl/install_utils/pe_utils.rb +2 -6
  76. data/lib/beaker/dsl/patterns.rb +1 -1
  77. data/lib/beaker/host.rb +3 -0
  78. data/lib/beaker/host/eos.rb +56 -0
  79. data/lib/beaker/host/mac/pkg.rb +1 -1
  80. data/lib/beaker/host/unix/pkg.rb +36 -0
  81. data/lib/beaker/hypervisor/aws_sdk.rb +1 -1
  82. data/lib/beaker/hypervisor/vagrant.rb +3 -3
  83. data/lib/beaker/logger.rb +1 -0
  84. data/lib/beaker/options/presets.rb +5 -0
  85. data/lib/beaker/shared/host_manager.rb +7 -4
  86. data/lib/beaker/version.rb +1 -1
  87. data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +87 -0
  88. data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +53 -20
  89. data/spec/beaker/dsl/install_utils/module_utils_spec.rb +1 -1
  90. data/spec/beaker/dsl/install_utils/pe_utils_spec.rb +7 -14
  91. data/spec/beaker/host/eos_spec.rb +65 -0
  92. data/spec/beaker/host/unix/pkg_spec.rb +42 -0
  93. data/spec/beaker/hypervisor/aws_sdk_spec.rb +17 -56
  94. data/spec/beaker/hypervisor/vagrant_spec.rb +1 -1
  95. data/spec/beaker/logger_spec.rb +1 -1
  96. data/spec/mocks.rb +0 -13
  97. metadata +76 -6
  98. 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.
@@ -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,3 @@
1
+ Something wrong? Need a new feature? File Beaker bugs here:
2
+
3
+ [beaker jira ticket tracker](https://tickets.puppetlabs.com/issues/?jql=project%20%3D%20BKR).
@@ -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.