---
- hosts: localhost
  sudo: False
  gather_facts: False

  tasks:
  - name: Provision a set of instances
    ec2:
      key_name: "{{ aws.key_name }}"
      aws_access_key: "{{ aws.access_key }}"
      aws_secret_key: "{{ aws.secret_key }}"
      region: "{{ aws.region }}"
      group_id: "{{ aws.group}}"
      instance_type: "{{ aws.instance_type}}"
      image: "{{ aws.ami_id }}"
      wait: true
      count: "{{ aws.count }}"
      instance_tags: "{{ aws.tags }}"
    register: ec2

  - name: Template the inventory
    template:
      src: ../templates/inventory-aws.j2
      dest: "{{ inventory_path }}"

  - name: Wait until SSH is available
    local_action:
      module: wait_for
      host: "{{ item.public_ip }}"
      port: 22
      timeout: 300
      state: started
    with_items: "{{ec2.instances}}"
