X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=ansible%2Froles%2Fvm%2Finstall%2Ftasks%2Fmain.yml;h=b9201c0171c0bf7aafa17c9f08ee0ef37859b2f8;hb=d7d843d9ef7ca0807efd6f2a5f9d095fed7eb235;hp=35f2c8ecfd66a1e76abe384e2fcecd1bfb387268;hpb=35ee18e05f6abc674fc2f6cbea2994e259d0624a;p=noc.git diff --git a/ansible/roles/vm/install/tasks/main.yml b/ansible/roles/vm/install/tasks/main.yml index 35f2c8e..b9201c0 100644 --- a/ansible/roles/vm/install/tasks/main.yml +++ b/ansible/roles/vm/install/tasks/main.yml @@ -31,40 +31,67 @@ when: hostname in vmhost_info -- name: define new installer vm - virt: - name: "{{ hostname }}" - command: define - xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" - vars: - run_installer: yes +- block: + - name: create a temporary workdir + command: mktemp -d + register: tmpdir -- name: start vm - virt: - name: "{{ hostname }}" - state: running + - import_role: + name: preseed + vars: + ssh_users_root: "{{ hostvars[hostname].ssh_users_root }}" + install_interface: enp1s1 + preseed_tmpdir: "{{ tmpdir.stdout }}" -- name: wait for installer to start - wait_for_virt: - name: "{{ hostname }}" - states: running - timeout: 10 + - name: Make preseed workdir readable by qemu + acl: + path: "{{ tmpdir.stdout }}" + state: present + entity: libvirt-qemu + etype: user + permissions: rx -- debug: - msg: "you can check on the status of the installer running this command 'virsh console {{ hostname }}' on host {{ inventory_hostname }}." + - name: define new installer vm + virt: + name: "{{ hostname }}" + command: define + xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" + vars: + run_installer: yes + preseed_tmpdir: "{{ tmpdir.stdout }}" -- name: wait for installer to finish or crash - wait_for_virt: - name: "{{ hostname }}" - states: shutdown,crashed - timeout: 1800 - register: installer_result - failed_when: installer_result.failed or installer_result.state == "crashed" + - name: start vm + virt: + name: "{{ hostname }}" + state: running -- name: undefining installer vm - virt: - name: "{{ hostname }}" - command: undefine + - name: wait for installer to start + wait_for_virt: + name: "{{ hostname }}" + states: running + timeout: 10 + + - debug: + msg: "you can check on the status of the installer running this command 'virsh console {{ hostname }}' on host {{ inventory_hostname }}." + + - name: wait for installer to finish or crash + wait_for_virt: + name: "{{ hostname }}" + states: shutdown,crashed + timeout: 900 + register: installer_result + failed_when: installer_result.failed or installer_result.state == "crashed" + + - name: undefining installer vm + virt: + name: "{{ hostname }}" + command: undefine + + always: + - name: cleanup temporary workdir + file: + path: "{{ tmpdir.stdout }}" + state: absent - name: define new production vm virt: