--- - 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}}"