---

- name: Launch new instance(s)
  ec2:
    state: present
    aws_access_key: "{{aws_access_key}}"
    aws_secret_key: "{{aws_secret_key}}"
    region: "{{aws_region}}"
    image: "{{ec2_base_ami}}"
    instance_type: "{{ec2_instance_type}}"
    count: "{{ec2_instance_count}}"
    assign_public_ip: "{{ec2_public_ip}}"
    group: "{{ec2_security_group.name}}"
    key_name: "{{ec2_keyname}}"
    wait: yes
  register: ec2

- name: Add newly created instance(s) to inventory
  add_host:
    hostname: "{{item.public_dns_name}}"
    groupname: launched-instances
    ansible_user: admin
    ansible_ssh_common_args: "-o StrictHostKeyChecking=no"
  loop: "{{ec2.instances}}"

- debug:
    msg: "Your newly created instance is reachable at: {{item.public_dns_name}}"
  loop: "{{ec2.instances}}"

- name: Wait for SSH to come up on all instances (give up after 2m)
  wait_for:
    state: started
    host: "{{item.public_dns_name}}"
    port: 22
    timeout: 120
  loop: "{{ec2.instances}}"
