X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=ansible%2Froles%2Fvm%2Finstall%2Ftasks%2Fmain.yml;h=4970393332fbeac6ef1d91204df49e5bb3a44c7b;hb=b04196adbd6d15535651fbcaa3baddd22179887d;hp=b9201c0171c0bf7aafa17c9f08ee0ef37859b2f8;hpb=d7d843d9ef7ca0807efd6f2a5f9d095fed7eb235;p=noc.git diff --git a/ansible/roles/vm/install/tasks/main.yml b/ansible/roles/vm/install/tasks/main.yml index b9201c0..4970393 100644 --- a/ansible/roles/vm/install/tasks/main.yml +++ b/ansible/roles/vm/install/tasks/main.yml @@ -1,75 +1,41 @@ --- - name: create disks for vm with_dict: "{{ hostvars[hostname].install_cooked.disks.virtio | default({}) | combine(hostvars[hostname].install_cooked.disks.scsi | default({})) }}" + loop_control: + label: "{{ item.value.vg }} / {{ item.value.lv }} ({{ item.value.size }})" lvol: vg: "{{ item.value.vg }}" lv: "{{ item.value.lv }}" size: "{{ item.value.size }}" -- name: check if vm already exists - virt: - name: "{{ hostname }}" - command: info - register: vmhost_info - -- block: - - name: destroy exisiting vm - virt: - name: "{{ hostname }}" - state: destroyed - - - name: wait for vm to be destroyed - wait_for_virt: - name: "{{ hostname }}" - states: shutdown,crashed - timeout: 5 - - - name: undefining exisiting vm - virt: - name: "{{ hostname }}" - command: undefine - - when: hostname in vmhost_info - block: - name: create a temporary workdir - command: mktemp -d + tempfile: + state: directory register: tmpdir - import_role: name: preseed vars: ssh_users_root: "{{ hostvars[hostname].ssh_users_root }}" + preseed_tmpdir: "{{ tmpdir.path }}" + preseed_force_net_ifnames_policy: path install_interface: enp1s1 - preseed_tmpdir: "{{ tmpdir.stdout }}" - name: Make preseed workdir readable by qemu acl: - path: "{{ tmpdir.stdout }}" + path: "{{ tmpdir.path }}" state: present entity: libvirt-qemu etype: user permissions: rx - - name: define new installer vm - virt: - name: "{{ hostname }}" - command: define - xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" + - import_role: + name: vm/define vars: - run_installer: yes - preseed_tmpdir: "{{ tmpdir.stdout }}" - - - name: start vm - virt: - name: "{{ hostname }}" - state: running - - - name: wait for installer to start - wait_for_virt: - name: "{{ hostname }}" - states: running - timeout: 10 + vm_define_installer: yes + preseed_tmpdir: "{{ tmpdir.path }}" - debug: msg: "you can check on the status of the installer running this command 'virsh console {{ hostname }}' on host {{ inventory_hostname }}." @@ -82,33 +48,13 @@ 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 }}" + path: "{{ tmpdir.path }}" state: absent -- name: define new production vm - virt: - name: "{{ hostname }}" - command: define - xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" +- import_role: + name: vm/define vars: - run_installer: no - -- name: start vm - virt: - name: "{{ hostname }}" - state: running - -- name: mark vm as autostarted - virt: - name: "{{ hostname }}" - autostart: "{{ hostvars[hostname].install_cooked.autostart }}" - command: info ## virt module needs either command or state - when: hostvars[hostname].install_cooked.autostart is defined + vm_define_installer: no