summaryrefslogtreecommitdiff
path: root/roles/vm/define
diff options
context:
space:
mode:
Diffstat (limited to 'roles/vm/define')
-rw-r--r--roles/vm/define/defaults/main.yml2
-rw-r--r--roles/vm/define/tasks/main.yml20
-rw-r--r--roles/vm/define/templates/libvirt-domain.xml.j222
3 files changed, 23 insertions, 21 deletions
diff --git a/roles/vm/define/defaults/main.yml b/roles/vm/define/defaults/main.yml
index dbde0d8c..29884a9b 100644
--- a/roles/vm/define/defaults/main.yml
+++ b/roles/vm/define/defaults/main.yml
@@ -1,5 +1,5 @@
---
-vm_define_autostart: "{{ not vm_define_installer and hostvars[hostname].install_cooked.autostart | default(False) }}"
+vm_define_autostart: "{{ not vm_define_installer and hostvars[install_hostname].install_cooked.autostart | default(False) }}"
vm_define_start: yes
vm_define_installer: no
diff --git a/roles/vm/define/tasks/main.yml b/roles/vm/define/tasks/main.yml
index 4c2b99e1..d0790628 100644
--- a/roles/vm/define/tasks/main.yml
+++ b/roles/vm/define/tasks/main.yml
@@ -1,26 +1,27 @@
---
- name: check if vm already exists
virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
command: info
register: vmhost_info
-- when: hostname in vmhost_info
+- name: remove old vm
+ when: install_hostname in vmhost_info
block:
- name: destroy exisiting vm
virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
state: destroyed
- name: wait for vm to be destroyed
wait_for_virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
states: shutdown,crashed
timeout: 5
- name: undefining exisiting vm
virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
command: undefine
- name: define vm
@@ -28,21 +29,22 @@
command: define
xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}"
-- when: vm_define_start | bool
+- name: start new vm
+ when: vm_define_start | bool
block:
- name: start vm
virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
state: running
- name: wait for VM to start
wait_for_virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
states: running
timeout: 10
- name: mark vm as autostarted
virt:
- name: "{{ hostname }}"
+ name: "{{ install_hostname }}"
autostart: "{{ vm_define_autostart }}"
command: info ## virt module needs either command or state
diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2
index 780d1bae..3465cec0 100644
--- a/roles/vm/define/templates/libvirt-domain.xml.j2
+++ b/roles/vm/define/templates/libvirt-domain.xml.j2
@@ -1,13 +1,13 @@
<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>
+ <name>{{ install_hostname }}</name>
+ <memory>{{ hostvars[install_hostname].install_cooked.mem * 1024 }}</memory>
+ <currentMemory>{{ hostvars[install_hostname].install_cooked.mem * 1024 }}</currentMemory>
+ <vcpu>{{ hostvars[install_hostname].install_cooked.numcpu }}</vcpu>
<os>
<type arch='x86_64' machine='pc-0.12'>hvm</type>
{% if vm_define_installer %}
{% if install_distro == 'debian' or install_distro == 'ubuntu' %}
- <kernel>{{ installer_path }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[hostname].install_cooked.arch | default('amd64') }}/linux</kernel>
+ <kernel>{{ installer_path }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}/linux</kernel>
<initrd>{{ preseed_tmpdir }}/initrd.preseed.gz</initrd>
<cmdline>console=ttyS0,115200n8</cmdline>
<boot dev='hd'/>
@@ -50,8 +50,8 @@
</disk>
{% endif %}
-{% if 'virtio' in hostvars[hostname].install_cooked.disks %}
-{% for device, src in hostvars[hostname].install_cooked.disks.virtio.items() %}
+{% if 'virtio' in hostvars[install_hostname].install_cooked.disks %}
+{% for device, src in hostvars[install_hostname].install_cooked.disks.virtio.items() %}
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap'/>
{% if src.type == 'lvm' %}
@@ -64,9 +64,9 @@
{% endfor %}
{% endif %}
-{% if 'scsi' in hostvars[hostname].install_cooked.disks %}
+{% if 'scsi' in hostvars[install_hostname].install_cooked.disks %}
<controller type='scsi' index='0' model='virtio-scsi'/>
-{% for device, src in hostvars[hostname].install_cooked.disks.scsi.items() %}
+{% for device, src in hostvars[install_hostname].install_cooked.disks.scsi.items() %}
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap'/>
{% if src.type == 'lvm' %}
@@ -79,8 +79,8 @@
{% endfor %}
{% endif %}
-{% if hostvars[hostname].install_cooked.interfaces %}
-{% for if in hostvars[hostname].install_cooked.interfaces %}
+{% if hostvars[install_hostname].install_cooked.interfaces %}
+{% for if in hostvars[install_hostname].install_cooked.interfaces %}
<interface type='bridge'>
{% if 'mac' in if %}
<mac address='{{ if.mac }}'/>