diff options
Diffstat (limited to 'roles/vm/install')
-rw-r--r-- | roles/vm/install/tasks/main.yml | 68 | ||||
-rw-r--r-- | roles/vm/install/templates/libvirt-domain.xml.j2 | 76 |
2 files changed, 6 insertions, 138 deletions
diff --git a/roles/vm/install/tasks/main.yml b/roles/vm/install/tasks/main.yml index 9d603712..a15e2a47 100644 --- a/roles/vm/install/tasks/main.yml +++ b/roles/vm/install/tasks/main.yml @@ -8,30 +8,6 @@ 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 @@ -54,25 +30,12 @@ etype: user permissions: rx - - name: define new installer vm - virt: - command: define - xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" + - import_role: + name: vm/define vars: - run_installer: yes + vm_define_installer: yes preseed_tmpdir: "{{ tmpdir.path }}" - - name: start vm - virt: - name: "{{ hostname }}" - state: running - - - 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 }}." @@ -84,32 +47,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.path }}" state: absent -- name: define new production vm - virt: - 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 diff --git a/roles/vm/install/templates/libvirt-domain.xml.j2 b/roles/vm/install/templates/libvirt-domain.xml.j2 deleted file mode 100644 index f3bdeae1..00000000 --- a/roles/vm/install/templates/libvirt-domain.xml.j2 +++ /dev/null @@ -1,76 +0,0 @@ -<domain type='kvm'> - <name>{{ hostname }}</name> - <memory>{{ hostvars[hostname].install_cooked.mem * 1024 }}</memory> - <currentMemory>{{ hostvars[hostname].install_cooked.mem * 1024 }}</currentMemory> - <vcpu>{{ hostvars[hostname].install_cooked.numcpu }}</vcpu> - <os> - <type arch='x86_64' machine='pc-0.12'>hvm</type> -{% if run_installer %} - <kernel>{{ debian_installer_path }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[hostname].install_cooked.arch | default('amd64') }}/linux</kernel> - <initrd>{{ preseed_tmpdir }}/initrd.preseed.gz</initrd> - <cmdline>console=ttyS0,115200n8</cmdline> -{% endif %} - <boot dev='hd'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> -{% if run_installer %} - <on_reboot>destroy</on_reboot> - <on_crash>destroy</on_crash> -{% else %} - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> -{% endif %} - <devices> - <emulator>/usr/bin/kvm</emulator> - <!-- Provide a virtualized RNG to the guest --> - <rng model='virtio'> - <!-- Allow consuming up to 10kb/s, measured over 2s --> - <rate period="2000" bytes="20480"/> - <backend model='random'>/dev/random</backend> - </rng> - -{% if 'virtio' in hostvars[hostname].install_cooked.disks %} -{% for device, lv in hostvars[hostname].install_cooked.disks.virtio.items() %} - <disk type='block' device='disk'> - <driver name='qemu' type='raw' cache='none' discard='unmap'/> - <source dev='/dev/mapper/{{ lv.vg | replace('-', '--') }}-{{ lv.lv | replace('-', '--') }}'/> - <target dev='{{ device }}' bus='virtio'/> - </disk> -{% endfor %} -{% endif %} - -{% if 'scsi' in hostvars[hostname].install_cooked.disks %} - <controller type='scsi' index='0' model='virtio-scsi'/> -{% for device, lv in hostvars[hostname].install_cooked.disks.scsi.items() %} - <disk type='block' device='disk'> - <driver name='qemu' type='raw' cache='none' discard='unmap'/> - <source dev='/dev/mapper/{{ lv.vg | replace('-', '--') }}-{{ lv.lv | replace('-', '--') }}'/> - <target dev='{{ device }}' bus='scsi'/> - </disk> -{% endfor %} -{% endif %} - -{% if hostvars[hostname].install_cooked.interfaces %} -{% for if in hostvars[hostname].install_cooked.interfaces %} - <interface type='bridge'> - <source bridge='{{ if.bridge }}'/> - <model type='virtio'/> - <address type='pci' domain='0x0000' bus='0x01' slot='0x0{{ loop.index }}' function='0x0'/> - </interface> -{% endfor %} -{% endif %} - - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - </devices> -</domain> |