3 - name: Make a temporary directory
8 tmpdir: "{{ tmpdir.stdout }}"
9 initramfs: "{{ vm_host.installer.preseed_path }}/vm-{{ vmname }}-{{ vmdistro }}-{{ vmdistcodename }}.initrd.gz"
11 - name: Copy initramfs into position
14 src: "{{ vm_host.installer.path }}/{{ vmdistro }}-{{ vmdistcodename }}/{{ hostvars[vmname].vm_install_cooked.arch | default('amd64') }}/initrd.gz"
15 dest: "{{ initramfs }}"
17 - name: generate preseed file
19 src: "preseed_{{ vmdistro }}-{{ vmdistcodename }}.cfg.j2"
20 dest: "{{ tmpdir }}/preseed.cfg"
22 - name: generate authorized_keys file
25 path: "{{ tmpdir }}/authorized_keys"
26 key: "{{ hostvars[vmname].ssh_keys | default(noc_ssh_keys) | join('\n') }}"
28 - name: Inject files into initramfs
29 shell: cpio -H newc -o | gzip -9 >> {{ initramfs }}
37 - name: Delete temporary directory
42 - name: create disks for vm
43 with_dict: "{{ hostvars[vmname].vm_install_cooked.disks.virtio | default({}) | combine(hostvars[vmname].vm_install_cooked.disks.scsi | default({})) }}"
45 vg: "{{ item.value.vg }}"
46 lv: "{{ item.value.lv }}"
47 size: "{{ item.value.size }}"
49 - name: check if vm already exists
56 - name: destroy exisiting vm
61 - name: wait for vm to be destroyed
64 states: shutdown,crashed
67 - name: undefining exisiting vm
72 when: vmname in vmhost_info
74 - name: enable installer in VM config
78 - name: define new installer vm
82 xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}"
89 - name: wait for installer to start
96 msg: "you can check on the status of the installer running this command 'virsh console {{ vmname }}' on host {{ inventory_hostname }}."
98 - name: wait for installer to finish or crash
101 states: shutdown,crashed
103 register: installer_result
104 failed_when: installer_result.failed or installer_result.state == "crashed"
106 - name: undefining installer vm
111 - name: disable installer in VM config
115 - name: define new production vm
119 xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}"
126 - name: mark vm as autostarted
129 autostart: "{{ hostvars[vmname].vm_install_cooked.autostart }}"
130 command: info ## virt module needs either command or state
131 when: hostvars[vmname].vm_install_cooked.autostart is defined