summaryrefslogtreecommitdiff
path: root/roles/vm
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2022-01-01 20:19:56 +0100
committerChristian Pointner <equinox@spreadspace.org>2022-01-01 20:19:56 +0100
commitd90144d2190009f8bd121cb8f773a9209500f034 (patch)
tree2d258279d2179afc58fd91c741e0b5fa56246c9f /roles/vm
parentMerge branch 'topic/revamp-openwrt-imag-gen' (diff)
in-place variable cooking
Diffstat (limited to 'roles/vm')
-rw-r--r--roles/vm/guest/base/tasks/Debian.yml2
-rw-r--r--roles/vm/guest/define/defaults/main.yml2
-rw-r--r--roles/vm/guest/define/tasks/main.yml10
-rw-r--r--roles/vm/guest/define/templates/libvirt-domain.xml.j218
-rw-r--r--roles/vm/guest/install/tasks/installer-debian.yml4
-rw-r--r--roles/vm/guest/install/tasks/installer-openbsd.yml8
-rw-r--r--roles/vm/guest/install/tasks/main.yml24
-rw-r--r--roles/vm/guest/network/tasks/Debian.yml4
-rw-r--r--roles/vm/guest/network/tasks/OpenBSD.yml2
-rw-r--r--roles/vm/guest/network/templates/interfaces.j22
-rw-r--r--roles/vm/guest/network/templates/resolv.conf.j24
11 files changed, 40 insertions, 40 deletions
diff --git a/roles/vm/guest/base/tasks/Debian.yml b/roles/vm/guest/base/tasks/Debian.yml
index 7a383fe1..74778d8e 100644
--- a/roles/vm/guest/base/tasks/Debian.yml
+++ b/roles/vm/guest/base/tasks/Debian.yml
@@ -40,7 +40,7 @@
content: |
[Service]
ExecStart=
- ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --noclear --autologin root --login-pause --host {{ vm_host_cooked.name }} %I $TERM
+ ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --noclear --autologin root --login-pause --host {{ vm_host.name }} %I $TERM
- name: enable serial console in grub and for kernel
diff --git a/roles/vm/guest/define/defaults/main.yml b/roles/vm/guest/define/defaults/main.yml
index 05aeaab6..f0c74831 100644
--- a/roles/vm/guest/define/defaults/main.yml
+++ b/roles/vm/guest/define/defaults/main.yml
@@ -1,5 +1,5 @@
---
-vm_define_autostart: "{{ not vm_define_installer and install_cooked.vm.autostart | default(False) }}"
+vm_define_autostart: "{{ not vm_define_installer and install.vm.autostart | default(False) }}"
vm_define_start: yes
vm_define_installer: no
diff --git a/roles/vm/guest/define/tasks/main.yml b/roles/vm/guest/define/tasks/main.yml
index a4405de1..769afdac 100644
--- a/roles/vm/guest/define/tasks/main.yml
+++ b/roles/vm/guest/define/tasks/main.yml
@@ -1,6 +1,6 @@
---
- name: check if vm already exists
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
virt:
name: "{{ inventory_hostname }}"
command: info
@@ -8,7 +8,7 @@
- name: remove old vm
when: inventory_hostname in vmhost_info
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
block:
- name: destroy exisiting vm
virt:
@@ -27,14 +27,14 @@
command: undefine
- name: define vm
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
virt:
command: define
xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}"
- name: start new vm
when: vm_define_start | bool
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
block:
- name: start vm
virt:
@@ -48,7 +48,7 @@
timeout: 10
- name: mark vm as autostarted
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
virt:
name: "{{ inventory_hostname }}"
autostart: "{{ vm_define_autostart }}"
diff --git a/roles/vm/guest/define/templates/libvirt-domain.xml.j2 b/roles/vm/guest/define/templates/libvirt-domain.xml.j2
index 2287dd0b..0430229b 100644
--- a/roles/vm/guest/define/templates/libvirt-domain.xml.j2
+++ b/roles/vm/guest/define/templates/libvirt-domain.xml.j2
@@ -1,8 +1,8 @@
<domain type='kvm'>
<name>{{ inventory_hostname }}</name>
- <memory>{{ ((install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</memory>
- <currentMemory>{{ ((install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</currentMemory>
- <vcpu>{{ install_cooked.vm.numcpus }}</vcpu>
+ <memory>{{ ((install.vm.memory | human_to_bytes) / 1024) | int }}</memory>
+ <currentMemory>{{ ((install.vm.memory | human_to_bytes) / 1024) | int }}</currentMemory>
+ <vcpu>{{ install.vm.numcpus }}</vcpu>
<os>
<type arch='x86_64' machine='q35'>hvm</type>
{% if vm_define_installer %}
@@ -50,18 +50,18 @@
</disk>
{% endif %}
-{% if install_cooked.disks %}
-{% if 'scsi' in install_cooked.disks %}
+{% if install.disks %}
+{% if 'scsi' in install.disks %}
<controller type='scsi' index='0' model='virtio-scsi'/>
{% endif %}
{% for bus in ['virtio', 'scsi'] %}
-{% for device, src in (install_cooked.disks[bus] | default({})).items() %}
+{% for device, src in (install.disks[bus] | default({})).items() %}
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap'/>
{% if src.type == 'lvm' %}
<source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/>
{% elif src.type == 'zfs' %}
- <source dev='/dev/zvol/{{ vm_host_cooked.zfs[src.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[src.backend | default('default')].name }}/{{ inventory_hostname }}/{{ src.name }}'/>
+ <source dev='/dev/zvol/{{ vm_host.zfs[src.backend | default('default')].pool }}/{{ vm_host.zfs[src.backend | default('default')].name }}/{{ inventory_hostname }}/{{ src.name }}'/>
{% elif src.type == 'blockdev' %}
<source dev='{{ src.path }}'/>
{% endif %}
@@ -71,8 +71,8 @@
{% endfor %}
{% endif %}
-{% if install_cooked.interfaces %}
-{% for if in install_cooked.interfaces %}
+{% if install.interfaces %}
+{% for if in install.interfaces %}
<interface type='bridge'>
{% if 'mac' in if %}
<mac address='{{ if.mac }}'/>
diff --git a/roles/vm/guest/install/tasks/installer-debian.yml b/roles/vm/guest/install/tasks/installer-debian.yml
index 80d41647..8a5c0120 100644
--- a/roles/vm/guest/install/tasks/installer-debian.yml
+++ b/roles/vm/guest/install/tasks/installer-debian.yml
@@ -2,10 +2,10 @@
## this file is sourced using import_task and all task are therefore delegated to the vm-host
- name: fetch debian installer files
vars:
- installer_base_path: "{{ hostvars[vm_host_cooked.name].installer_base_path }}"
+ installer_base_path: "{{ hostvars[vm_host.name].installer_base_path }}"
debian_installer_distro: "{{ install_distro }}"
debian_installer_codename: "{{ install_codename }}"
- debian_installer_arch: "{{ install_cooked.arch | default('amd64') }}"
+ debian_installer_arch: "{{ install.arch | default('amd64') }}"
debian_installer_variant: netboot
import_role:
name: installer/debian/fetch
diff --git a/roles/vm/guest/install/tasks/installer-openbsd.yml b/roles/vm/guest/install/tasks/installer-openbsd.yml
index 903e94e2..e3e05fb4 100644
--- a/roles/vm/guest/install/tasks/installer-openbsd.yml
+++ b/roles/vm/guest/install/tasks/installer-openbsd.yml
@@ -2,18 +2,18 @@
## this file is sourced using import_task and all task are therefore delegated to the vm-host
- name: fetch openbsd installer files
vars:
- installer_base_path: "{{ hostvars[vm_host_cooked.name].installer_base_path }}"
+ installer_base_path: "{{ hostvars[vm_host.name].installer_base_path }}"
openbsd_installer_version: "{{ install_codename }}"
- openbsd_installer_arch: "{{ install_cooked.arch | default('amd64') }}"
+ openbsd_installer_arch: "{{ install.arch | default('amd64') }}"
import_role:
name: installer/openbsd/fetch
- name: generate host specific autoinstall iso
vars:
- obsd_autoinstall_orig_iso: "{{ hostvars[vm_host_cooked.name].installer_base_path }}/openbsd-{{ install_codename }}/{{ install_cooked.arch | default('amd64') }}/install{{ openbsd_installer_version_short }}.iso"
+ obsd_autoinstall_orig_iso: "{{ hostvars[vm_host.name].installer_base_path }}/openbsd-{{ install_codename }}/{{ install.arch | default('amd64') }}/install{{ openbsd_installer_version_short }}.iso"
obsd_autoinstall_tmpdir: "{{ tmpdir.path }}"
obsd_autoinstall_version: "{{ install_codename }}"
- obsd_autoinstall_arch: "{{ install_cooked.arch | default('amd64') }}"
+ obsd_autoinstall_arch: "{{ install.arch | default('amd64') }}"
obsd_autoinstall_serial_device: com0
install_interface: vio0
import_role:
diff --git a/roles/vm/guest/install/tasks/main.yml b/roles/vm/guest/install/tasks/main.yml
index 06987bc3..f2bd5362 100644
--- a/roles/vm/guest/install/tasks/main.yml
+++ b/roles/vm/guest/install/tasks/main.yml
@@ -1,9 +1,9 @@
---
- name: create lvm-based disks for vm
- loop: "{{ install_cooked.disks.virtio | default({}) | combine(install_cooked.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'lvm') | list }}"
+ loop: "{{ install.disks.virtio | default({}) | combine(install.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'lvm') | list }}"
loop_control:
label: "{{ item.value.vg }} / {{ item.value.lv }} ({{ item.value.size }})"
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
lvol:
vg: "{{ item.value.vg }}"
lv: "{{ item.value.lv }}"
@@ -11,31 +11,31 @@
state: present
- name: create zfs base datasets for vm
- loop: "{{ install_cooked.disks.virtio | default({}) | combine(install_cooked.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'zfs') | map(attribute='value.backend') | map('default', 'default') | unique | list }}"
- delegate_to: "{{ vm_host_cooked.name }}"
+ loop: "{{ install.disks.virtio | default({}) | combine(install.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'zfs') | map(attribute='value.backend') | map('default', 'default') | unique | list }}"
+ delegate_to: "{{ vm_host.name }}"
zfs:
- name: "{{ vm_host_cooked.zfs[item].pool }}/{{ vm_host_cooked.zfs[item].name }}/{{ inventory_hostname }}"
+ name: "{{ vm_host.zfs[item].pool }}/{{ vm_host.zfs[item].name }}/{{ inventory_hostname }}"
state: present
extra_zfs_properties:
canmount: no
mountpoint: none
- name: create zfs-based disk volumes for vm
- loop: "{{ install_cooked.disks.virtio | default({}) | combine(install_cooked.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'zfs') | list }}"
+ loop: "{{ install.disks.virtio | default({}) | combine(install.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'zfs') | list }}"
loop_control:
label: "{{ item.value.name }} on backend {{ item.value.backend | default('default') }} ({{ item.value.size }})"
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
zfs:
- name: "{{ vm_host_cooked.zfs[item.value.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[item.value.backend | default('default')].name }}/{{ inventory_hostname }}/{{ item.value.name }}"
+ name: "{{ vm_host.zfs[item.value.backend | default('default')].pool }}/{{ vm_host.zfs[item.value.backend | default('default')].name }}/{{ inventory_hostname }}/{{ item.value.name }}"
state: present
extra_zfs_properties: "{{ item.value.properties | default({}) | combine({'volsize': item.value.size}) | dehumanize_zfs_properties }}"
-- delegate_to: "{{ vm_host_cooked.name }}"
+- delegate_to: "{{ vm_host.name }}"
block:
- name: create a temporary workdir
tempfile:
- path: "{{ hostvars[vm_host_cooked.name].installer_base_path }}/"
+ path: "{{ hostvars[vm_host.name].installer_base_path }}/"
prefix: ".{{ inventory_hostname }}."
state: directory
register: tmpdir
@@ -62,7 +62,7 @@
name: vm/guest/define
- debug:
- msg: "you can check on the status of the installer running this command 'virsh console {{ inventory_hostname }}' on host {{ vm_host_cooked.name }}."
+ msg: "you can check on the status of the installer running this command 'virsh console {{ inventory_hostname }}' on host {{ vm_host.name }}."
- when: installer_manual_steps_msg is defined
pause:
@@ -90,6 +90,6 @@
- name: define vm
vars:
vm_define_installer: no
- delegate_to: "{{ vm_host_cooked.name }}"
+ delegate_to: "{{ vm_host.name }}"
import_role:
name: vm/guest/define
diff --git a/roles/vm/guest/network/tasks/Debian.yml b/roles/vm/guest/network/tasks/Debian.yml
index 27a7682a..1b785ee5 100644
--- a/roles/vm/guest/network/tasks/Debian.yml
+++ b/roles/vm/guest/network/tasks/Debian.yml
@@ -1,6 +1,6 @@
---
- name: configure systemd link units
- when: network_cooked.systemd_link is defined
+ when: network.systemd_link is defined
block:
- name: remove legacy systemd.link units
loop:
@@ -11,7 +11,7 @@
state: absent
- name: install systemd network link units
- loop: "{{ network_cooked.systemd_link.interfaces }}"
+ loop: "{{ network.systemd_link.interfaces }}"
loop_control:
label: "{{ item.name }}"
index_var: interface_index
diff --git a/roles/vm/guest/network/tasks/OpenBSD.yml b/roles/vm/guest/network/tasks/OpenBSD.yml
index 4357ea4e..ac31af55 100644
--- a/roles/vm/guest/network/tasks/OpenBSD.yml
+++ b/roles/vm/guest/network/tasks/OpenBSD.yml
@@ -1,6 +1,6 @@
---
- name: generate network interface configs
- loop: "{{ network_cooked.interfaces }}"
+ loop: "{{ network.interfaces }}"
loop_control:
loop_var: interface
label: "{{ interface.name }}"
diff --git a/roles/vm/guest/network/templates/interfaces.j2 b/roles/vm/guest/network/templates/interfaces.j2
index c8ff5b94..02442a57 100644
--- a/roles/vm/guest/network/templates/interfaces.j2
+++ b/roles/vm/guest/network/templates/interfaces.j2
@@ -6,7 +6,7 @@ source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
-{% for interface in network_cooked.interfaces %}
+{% for interface in network.interfaces %}
auto {{ interface.name }}
diff --git a/roles/vm/guest/network/templates/resolv.conf.j2 b/roles/vm/guest/network/templates/resolv.conf.j2
index 00aaafe3..a32ec181 100644
--- a/roles/vm/guest/network/templates/resolv.conf.j2
+++ b/roles/vm/guest/network/templates/resolv.conf.j2
@@ -1,4 +1,4 @@
-{% for nsrv in network_cooked.nameservers %}
+{% for nsrv in network.nameservers %}
nameserver {{ nsrv }}
{% endfor %}
-search {{ network_cooked.domain }}
+search {{ network.domain }}