ec2.md
November 20, 2018 ยท View on GitHub
Pre-requisite: .fog file correctly configured with your credentials.
hypervisor: ec2
example .fog file
:default:
:aws_access_key_id: IMTHEKEYID
:aws_secret_access_key: IMALONGACCESSKYE
Basic ec2 hosts file
HOSTS:
centos-5-64-1:
roles:
- master
- dashboard
- database
- agent
vmname: centos-5-x86-64-west
platform: el-5-x86_64
hypervisor: ec2
amisize: c1.medium
snapshot: pe
user: ec2-user
centos-5-64-1:
roles:
- agent
vmname: centos-5-x86-64-west
platform: el-5-x86_64
hypervisor: ec2
amisize: c1.medium
snapshot: pe
user: ec2-user
CONFIG:
nfs_server: none
consoleport: 443
Using role
(If you'd like to use instance role you can disable reading fog credentials)
No fog file needed
Update CONFIG section of ec2 hosts file
CONFIG:
use_fog_credentials: false
Currently, there is limited support EC2 nodes; we are adding support for new platforms shortly.
AMIs are built for PE based installs on:
- Enterprise Linux 6, 64 and 32 bit
- Enterprise Linux 5, 32 bit
- Ubuntu 10.04, 32 bit
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.
Supported EC2 Variables
These variables can either be set per-host or globally.
additional_ports
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].
Ports opened by default:
- all hosts have [22, 61613, 8139] opened
masterwill also have [8140, 8142] openeddashboardwill also have [443, 4433, 4435] openeddatabasewill also have [5432, 8080, 8081] opened- If you have a split install, all the hosts with
master,dashboardanddatabaserole will have port 8143 opened
amisize
The instance type - defaults to m1.small.
snapshot
The snapshot to use for ec2 instance creation.
subnet_id
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.
subnet_ids
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.
vmname
Used to look up the pre-defined AMI information in config/image_templates/ec2.yaml. Will default to platform if not defined.
Example ec2.yaml
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.
AMI:
puppetlabs-centos-5-x86-64-west:
:image:
:pe: ami-pl-12345
:region: us-west-2
volume_size
Size of the EBS Volume that will be attached to the EC2 instance.
vpc_id
ID of the 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.
sg_cidr_ips
Comma seperated list of CIDRs which define the whitelisted IPs used by beaker. They will be added to the security groups which are created and associated with EC2 instance. Below is an example:
HOSTS:
somehostname:
sg_cidr_ips: 172.28.40.0/24,172.20.112.0/20
This is optional and by default is set to '0.0.0.0/0'.
user
By default root login is not allowed with Amazon Linux. Setting it to ec2-user will trigger sshd_config and authorized_keys changes by beaker.
disable_root_ssh
By default Beaker enabled root login on the instance. There are situation where we use AMIs which are pre-configured. Setting disable_root_ssh to true will stop enablign the root login.
associate_public_ip_address
Beaker uses default setting from subnet policies for the boolean variable "associate public ip address". Use this setting to override that when needed.