kayobe/ansible/infra-vm-provision.yml

41 lines
1.1 KiB
YAML

---
- name: Set facts about infra VMs
gather_facts: false
hosts: "{{ infra_vm_limit | default('infra-vms') }}"
tags:
- always
tasks:
- name: Group virtual machines by hypervisor
group_by:
key: infra_vms_{{ infra_vm_hypervisor }}
# FIXME(mgoddard): Is delegate_to necessary?
delegate_to: "{{ infra_vm_hypervisor }}"
changed_when: false
- name: Ensure defined infra VMs are deployed
hosts: hypervisors
tags:
- infra-vm-provision
tasks:
- import_role:
name: infra-vms
vars:
infra_vm_vms: "{{ groups['infra_vms_' ~ inventory_hostname ] | default([]) }}"
- name: Wait for infra VMs to be accessible
hosts: "{{ infra_vm_limit | default('infra-vms') }}"
gather_facts: false
tags:
- infra-vm-provision
tasks:
- name: Wait for SSH access to the infra VM
wait_for:
host: "{{ hostvars[inventory_hostname].ansible_host }}"
port: 22
state: started
# NOTE: Ensure we exceed the 5 minute DHCP timeout of the eth0
# interface if necessary.
timeout: 360
delegate_to: localhost