--- - hosts: localhost become: false gather_facts: no vars: state: "present" ssh_key_id: "6536865" cloud_machine_type: 2gb regions: - nyc1 - sfo1 - nyc2 - ams2 - sgp1 - lon1 - nyc3 - ams3 - fra1 - tor1 - sfo2 - blr1 cloud_images: - coreos-beta - fedora-24-x64 - centos-5-x64 - centos-5-x32 - fedora-25-x64 - debian-7-x64 - debian-7-x32 - debian-8-x64 - debian-8-x32 - centos-6-x32 - centos-6-x64 - coreos-stable - ubuntu-16-10-x32 - ubuntu-16-10-x64 - freebsd-11-0-x64-zfs - freebsd-10-3-x64-zfs - coreos-alpha - ubuntu-12-04-x32 - ubuntu-12-04-x64 - ubuntu-16-04-x64 - ubuntu-16-04-x32 - ubuntu-14-04-x64 - ubuntu-14-04-x32 - centos-7-x64 - freebsd-11-0-x64 - freebsd-10-3-x64 - centos-7-3-1611-x64 mode: default tasks: - name: replace_test_id set_fact: test_name: "{{test_id |regex_replace('\\.', '-')}}" - name: show vars debug: msg="{{cloud_region}}, {{cloud_image}}" - set_fact: instance_names: >- {%- if mode in ['separate', 'ha'] -%} ["k8s-{{test_name}}-1", "k8s-{{test_name}}-2", "k8s-{{test_name}}-3"] {%- else -%} ["k8s-{{test_name}}-1", "k8s-{{test_name}}-2"] {%- endif -%} - name: Manage DO instances | {{state}} digital_ocean: unique_name: yes api_token: "{{ lookup('env','DO_API_TOKEN') }}" command: "droplet" image_id: "{{ cloud_image }}" name: "{{ item }}" private_networking: no region_id: "{{cloud_region}}" size_id: "{{cloud_machine_type}}" ssh_key_ids: "{{ssh_key_id}}" state: "{{state}}" wait: yes register: droplets with_items: "{{instance_names}}" - debug: msg: "{{droplets}}, {{inventory_path}}" when: state == 'present' - name: Template the inventory template: src: ../templates/inventory-do.j2 dest: "{{ inventory_path }}" when: state == 'present' - name: Wait for SSH to come up wait_for: host={{item.droplet.ip_address}} port=22 delay=10 timeout=180 state=started with_items: "{{droplets.results}}" when: state == 'present'