--- - name: preparations and sanity checks hosts: "{{ install_hostname }}" gather_facts: no tasks: - name: check if the installee belongs to the kvmguests group fail: msg: "the host '{{ install_hostname }}' does not belong to the group 'kvmguests'" when: - "'kvmguests' not in group_names" - name: check if the host system belongs to the kvmhosts group fail: msg: "the host '{{ vm_host.name }}' does not belong to the group 'kvmhosts'" when: - "'kvmhosts' not in hostvars[vm_host.name].group_names" # TODO: add some more sanity checks - name: basic installation hosts: "{{ install_hostname }}" gather_facts: no roles: - role: vm/guest/install - name: wait for new machine to start up, apply early roles and reboot hosts: "{{ install_hostname }}" gather_facts: no pre_tasks: ## TODO: find a better way to fetch host key of new VMs - name: disable ssh StrictHostKeyChecking for the next step set_fact: ansible_ssh_extra_args: "-o StrictHostKeyChecking=no{% if install_jumphost is defined %} -o 'ProxyCommand ssh -q -a {{ install_jumphost }} -W %h:%p'{% endif %}" - name: remove host-keys from ssh known-hosts local_action: command "{{ (inventory_dir, '../remove-known-host.sh') | path_join | realpath }}" "{{ install_hostname }}" - name: clear all gathered facts meta: clear_facts - name: wait for host to start up wait_for_connection: delay: 5 timeout: 120 - name: make sure to update cached facts setup: roles: - role: vm/guest/network - role: vm/guest/base post_tasks: - name: reenable StrictHostKeyChecking set_fact: ansible_ssh_extra_args: "" - name: run all handlers before rebooting meta: flush_handlers - name: reboot the new machine vars: reboot_delay: 10 reboot_timeout: 120 import_role: name: reboot-and-wait - name: run host playbook vars: params: files: - "../{{ install_environment }}/{{ install_hostname }}.yml" - "../{{ install_environment }}/{{ install_playbook | default('common') }}.yml" import_playbook: "{{ q('first_found', params) | first }}" - name: reboot machine hosts: "{{ install_hostname }}" roles: - role: reboot-and-wait reboot_delay: 5 reboot_timeout: 120