- name: Start a test instance
hosts: 127.0.0.1
connection: local
gather_facts: no
vars:
my_elastic_ip: aa.bb.cc.dd
key: somekey
instance_name: MYFUNTEST
image: ami-0000000
instance_type: m3.large
region: us-east-1
security_group: test
tasks:
- name: Start an instance
local_action:
module: ec2
instance_tags:
Name: '{{ instance_name }}'
key_name: '{{ key }}'
image: '{{ image }}'
region: '{{ region }}'
group: '{{ security_group }}'
instance_type: '{{ instance_type }}'
wait: True
register: ec2_info
- add_host: hostname={{ item.public_ip }} groupname=ec2hosts
with_items: ec2_info.instances
- name: Tie elastic IP to the instance
ec2_eip: instance_id={{ item }} region={{ region }} public_ip={{ my_elastic_ip }}
with_items: ec2_info.instance_ids
- name: wait for instances to listen on port:22
wait_for:
timeout=480
state=started
host={{ item.public_ip }}
port=22
with_items: ec2_info.instances--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/742d37d4-144e-4dd1-9141-f05f066a7c3f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
- name: Tie elastic IP to the instance
ec2_eip: instance_id={{ item }} region={{ region }} public_ip={{ my_elastic_ip }}
with_items: ec2_info.instance_ids
- name: wait for instances to listen on port:22
wait_for: timeout=480 state=started host={{ my_elastic_ip }} port=22
- pause: seconds=10--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/6bea415c-6cc8-4c6f-8b31-26a1daacf40e%40googlegroups.com.
"There may be a delay between the time the Elastic IP is assigned and when the cloud instance is reachable via the new address. Use wait_for and pause to delay further playbook execution until the instance is reachable, if necessary."- name: wait for instances to listen on port:22
wait_for: timeout=480 state=started host={{ my_elastic_ip }} port=22