You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
ansible-role-nginx/language_features/eucalyptus-ec2.yml

65 lines
1.9 KiB

---
# This playbook is an example for deploying multiple instances into
# EC2/Euca and "doing something" with them.
#
# - uses the ec2 and ec2_vol module.
#
# Run this with ansible-playbook and supply the private key for your
# EC2/Euca user (to access the instance in the second play), e.g:
#
# ansible-playbook eucalyptus-ec2-deploy.yml -v --private-key=/path/to/ec2/pri/key
#
# The play operates on the local (Ansible control) machine.
- name: Stage instance(s)
hosts: local
connection: local
user: root
gather_facts: false
vars:
keypair: mykeypair
instance_type: m1.small
security_group: default
image: emi-048B3A37
# Launch 5 instances with the following parameters. Register the output.
tasks:
- name: Launch instance
ec2: keypair={{keypair}} group={{security_group}}
instance_type={{instance_type}} image={{image}}
wait=true count=5
register: ec2
# Use with_items to add each instances public IP to a new hostgroup for use in the next play.
- name: Add new instances to host group
add_host: hostname={{item.public_ip}} groupname=deploy
with_items: ec2.instances
- name: Wait for the instances to boot by checking the ssh port
wait_for: host={{item.public_dns_name}} port=22 delay=60 timeout=320 state=started
with_items: ec2.instances
# Use the ec2_vol module to create volumes for attachment to each instance.
# Use with_items to attach to each instance (by returned id) launched previously.
- name: Create a volume and attach
ec2_vol: volume_size=20 instance={{item.id}}
with_items: ec2.instances
# This play targets the new host group
- name: Configure instance
hosts: deploy
user: root
# Do some stuff on each instance ....
tasks:
- name: Ensure NTP is up and running
service: name=ntpd state=started
- name: Install Apache Web Server
yum: pkg=httpd state=latest