From 27c9986590371d4b706ddb7d5628bef0f4b8b2bc Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 14 Dec 2019 01:57:03 +0100 Subject: some more tests for openbsd install --- roles/vm/define/templates/libvirt-domain.xml.j2 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'roles/vm/define/templates/libvirt-domain.xml.j2') diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2 index c7e3a2f2..a6aea91c 100644 --- a/roles/vm/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/define/templates/libvirt-domain.xml.j2 @@ -42,11 +42,16 @@ {% if vm_define_installer and install_distro == 'openbsd' %} - - + + + + + + + {% endif %} {% if 'virtio' in hostvars[hostname].install_cooked.disks %} -- cgit v1.2.3 From e7b9566f9e03860bc4b84b03abff670cffd21646 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 22 Dec 2019 14:03:06 +0100 Subject: openbsd: try to enable com0 for kernel terminal (WIP) --- roles/installer/openbsd/defaults/main.yml | 2 +- roles/installer/openbsd/tasks/main.yml | 43 +++++++++++++++++++++++-- roles/vm/define/templates/libvirt-domain.xml.j2 | 4 +-- 3 files changed, 44 insertions(+), 5 deletions(-) (limited to 'roles/vm/define/templates/libvirt-domain.xml.j2') diff --git a/roles/installer/openbsd/defaults/main.yml b/roles/installer/openbsd/defaults/main.yml index 004b8ecc..6650e064 100644 --- a/roles/installer/openbsd/defaults/main.yml +++ b/roles/installer/openbsd/defaults/main.yml @@ -5,4 +5,4 @@ openbsd_versions: - i386 openbsd_installer_force_download: no -openbsd_installer_url: "https://cdn.openbsd.org/pub/OpenBSD/" +openbsd_installer_url: "https://ftp2.eu.openbsd.org/pub/OpenBSD/" diff --git a/roles/installer/openbsd/tasks/main.yml b/roles/installer/openbsd/tasks/main.yml index e7196258..c6317284 100644 --- a/roles/installer/openbsd/tasks/main.yml +++ b/roles/installer/openbsd/tasks/main.yml @@ -11,7 +11,46 @@ loop_control: label: "openbsd-{{ item.0.version }} {{ item.1 }}" get_url: - url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/install{{ item.0.version | replace('.', '') }}.iso" - dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/install.iso" + url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/cd{{ item.0.version | replace('.', '') }}.iso" + dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/cd.iso" mode: 0644 force: "{{ openbsd_installer_force_download }}" + +- name: install xorriso + apt: + name: xorriso + state: present + +## TODO: only do this if images have been updated +- name: extract boot.conf from original iso image + loop: "{{ openbsd_versions | subelements('arch') }}" + loop_control: + label: "openbsd-{{ item.0.version }} {{ item.1 }}" + command: xorriso -osirrox on -dev cd.iso -extract etc/boot.conf boot.conf + args: + chdir: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}" + +- name: change boot.conf to switch to com0 as main tty + loop: "{{ openbsd_versions | subelements('arch') }}" + loop_control: + label: "openbsd-{{ item.0.version }} {{ item.1 }}" + lineinfile: + path: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/boot.conf" + regexp: '^set\s+tty\s' + line: "set tty com0" + +- name: make sure target image does not exist + loop: "{{ openbsd_versions | subelements('arch') }}" + loop_control: + label: "openbsd-{{ item.0.version }} {{ item.1 }}" + file: + path: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/cd-com0.iso" + state: absent + +- name: generate target iso image + loop: "{{ openbsd_versions | subelements('arch') }}" + loop_control: + label: "openbsd-{{ item.0.version }} {{ item.1 }}" + command: xorriso -indev "cd.iso" -outdev "cd-com0.iso" -boot_image any keep -pathspecs on -add /etc/boot.conf=boot.conf + args: + chdir: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}" diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2 index a6aea91c..809a4a1e 100644 --- a/roles/vm/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/define/templates/libvirt-domain.xml.j2 @@ -44,7 +44,7 @@ {% if vm_define_installer and install_distro == 'openbsd' %} - + @@ -52,8 +52,8 @@ -{% endif %} +{% endif %} {% if 'virtio' in hostvars[hostname].install_cooked.disks %} {% for device, src in hostvars[hostname].install_cooked.disks.virtio.items() %} -- cgit v1.2.3 From 2a89948bf13307cc936756c3a43bed51b3b49dc2 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 25 Dec 2019 18:20:54 +0100 Subject: openbsd vm install almost works now --- inventory/group_vars/kvmhosts/main.yml | 1 - inventory/host_vars/ch-router-obsd.yml | 11 ++++-- roles/installer/debian/preseed/defaults/main.yml | 3 +- .../openbsd/autoinstall/defaults/main.yml | 8 +++++ roles/installer/openbsd/autoinstall/tasks/main.yml | 41 ++++++++++++++++++++++ .../autoinstall/templates/auto_install.conf.j2 | 30 ++++++++++++++++ .../openbsd/autoinstall/templates/boot.conf.j2 | 5 +++ roles/installer/openbsd/base/tasks/main.yml | 28 +++------------ roles/vm/define/templates/libvirt-domain.xml.j2 | 6 +--- roles/vm/host/tasks/main.yml | 7 ++-- roles/vm/install/tasks/main.yml | 22 ++++++++---- 11 files changed, 118 insertions(+), 44 deletions(-) create mode 100644 roles/installer/openbsd/autoinstall/defaults/main.yml create mode 100644 roles/installer/openbsd/autoinstall/tasks/main.yml create mode 100644 roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 create mode 100644 roles/installer/openbsd/autoinstall/templates/boot.conf.j2 (limited to 'roles/vm/define/templates/libvirt-domain.xml.j2') diff --git a/inventory/group_vars/kvmhosts/main.yml b/inventory/group_vars/kvmhosts/main.yml index eef2a639..917b41eb 100644 --- a/inventory/group_vars/kvmhosts/main.yml +++ b/inventory/group_vars/kvmhosts/main.yml @@ -1,3 +1,2 @@ --- -preseed_path: /srv/preseed installer_path: /srv/installer diff --git a/inventory/host_vars/ch-router-obsd.yml b/inventory/host_vars/ch-router-obsd.yml index 48788004..a88110f3 100644 --- a/inventory/host_vars/ch-router-obsd.yml +++ b/inventory/host_vars/ch-router-obsd.yml @@ -15,7 +15,14 @@ install: size: 10g interfaces: - bridge: br-svc - name: vi0 + name: vio0 autostart: True -network: {} +network: + nameservers: "{{ network_zones.svc.dns }}" + domain: "{{ host_domain }}" + primary: + interface: vio0 + ip: "{{ network_zones.svc.prefix | ipaddr(network_zones.svc.offsets[inventory_hostname]) | ipaddr('address') }}" + mask: "{{ network_zones.svc.prefix | ipaddr('netmask') }}" + gateway: "{{ network_zones.svc.gateway }}" diff --git a/roles/installer/debian/preseed/defaults/main.yml b/roles/installer/debian/preseed/defaults/main.yml index c5400493..18cfd952 100644 --- a/roles/installer/debian/preseed/defaults/main.yml +++ b/roles/installer/debian/preseed/defaults/main.yml @@ -1,4 +1,5 @@ --- -#preseed_force_net_ifnames_policy: path +#preseed_tmpdir: +#preseed_force_net_ifnames_policy: path preseed_no_netplan: no diff --git a/roles/installer/openbsd/autoinstall/defaults/main.yml b/roles/installer/openbsd/autoinstall/defaults/main.yml new file mode 100644 index 00000000..e3579ad0 --- /dev/null +++ b/roles/installer/openbsd/autoinstall/defaults/main.yml @@ -0,0 +1,8 @@ +--- +# obsd_autoinstall_tmpdir: + +# obsd_autoinstall_serial_device: com0 +# obsd_autoinstall_serial_baudrate: 115200 + +obsd_autoinstall_http_server: ftp2.eu.openbsd.org +obsd_autoinstall_file_sets: -comp* -game* -x* diff --git a/roles/installer/openbsd/autoinstall/tasks/main.yml b/roles/installer/openbsd/autoinstall/tasks/main.yml new file mode 100644 index 00000000..333b437f --- /dev/null +++ b/roles/installer/openbsd/autoinstall/tasks/main.yml @@ -0,0 +1,41 @@ +--- +- name: create basic cd-image directory structure + file: + path: "{{ obsd_autoinstall_tmpdir }}/files/etc" + state: directory + +- name: extract installer files from iso + vars: + arch: "{{ hostvars[hostname].install_cooked.arch | default('amd64') }}" + version: "{{ install_codename }}" + iso_extract: + image: "{{ installer_path }}/openbsd-{{ version }}/{{ arch }}/cd.iso" + dest: "{{ obsd_autoinstall_tmpdir }}/files" + files: + - "{{ version }}/{{ arch }}/cdbr" + - "{{ version }}/{{ arch }}/cdboot" + - "{{ version }}/{{ arch }}/bsd.rd" + +- name: generate bootloader and installer configuration + loop: + - auto_install.conf + - boot.conf + template: + src: "{{ item }}.j2" + dest: "{{ obsd_autoinstall_tmpdir }}/files/etc/{{ item }}" + +- name: generate random seed + shell: "head -c512 < /dev/random > {{ obsd_autoinstall_tmpdir }}/files/etc/random.seed" + +- name: generate host specific installer image + command: 'genisoimage -RTLldDN -o "cd.iso" -no-emul-boot -b "cdbr" -c "boot.catalog" files/' + args: + chdir: "{{ obsd_autoinstall_tmpdir }}/" + +# - print instructions +# * attach to console +# * select (S)hell +# * # mount_cd9660 /dev/cd0c /mnt +# * # cp /mnt/etc/auto_install.conf / +# * # autoinstall +# diff --git a/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 b/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 new file mode 100644 index 00000000..6719aae3 --- /dev/null +++ b/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 @@ -0,0 +1,30 @@ +System hostname = {{ hostvars[hostname].host_name }} + +Which network interface do you wish to configure = {{ install_interface | default(hostvars[hostname].network_cooked.primary.interface) }} +{% if 'install_dhcp' in hostvars[hostname] and hostvars[hostname].install_dhcp %} +IPv4 address = dhcp +{% else %} +IPv4 address = {{ hostvars[hostname].network_cooked.primary.ip }} +Netmask = {{ hostvars[hostname].network_cooked.primary.mask }} +Default IPv4 route = {{ hostvars[hostname].network_cooked.primary.gateway }} +{% endif %} +DNS domain name = {{ hostvars[hostname].network_cooked.domain }} +DNS nameservers = {{ hostvars[hostname].network_cooked.nameservers | join(' ') }} + +{% if obsd_autoinstall_serial_device is defined %} +Change the default console to {{ obsd_autoinstall_serial_device }} = yes +Which speed should {{ obsd_autoinstall_serial_device }} use = {{ obsd_autoinstall_tty_serial | default(115200) }} +{% endif %} + +{# TODO: what if there are more than one ssh keys? #} +Public ssh key for root account = {{ ssh_keys_root[0] }} +Password for root = ! +Setup a user = no +Start sshd(8) by default = yes +Allow root ssh login = prohibit-password + +What timezone are you in = Europe/Vienna + +Location of sets = http +HTTP Server = {{ obsd_autoinstall_http_server }} +Set name(s) = {{ obsd_autoinstall_file_sets }} diff --git a/roles/installer/openbsd/autoinstall/templates/boot.conf.j2 b/roles/installer/openbsd/autoinstall/templates/boot.conf.j2 new file mode 100644 index 00000000..d6cdcfeb --- /dev/null +++ b/roles/installer/openbsd/autoinstall/templates/boot.conf.j2 @@ -0,0 +1,5 @@ +{% if obsd_autoinstall_serial_device is defined %} +stty {{ obsd_autoinstall_serial_device }} {{ obsd_autoinstall_tty_serial | default(115200) }} +set tty {{ obsd_autoinstall_serial_device }} +{% endif %} +set image /bsd.rd diff --git a/roles/installer/openbsd/base/tasks/main.yml b/roles/installer/openbsd/base/tasks/main.yml index fcc79589..04a4f4ce 100644 --- a/roles/installer/openbsd/base/tasks/main.yml +++ b/roles/installer/openbsd/base/tasks/main.yml @@ -12,31 +12,13 @@ label: "openbsd-{{ item.0.version }} {{ item.1 }}" get_url: url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/cd{{ item.0.version | replace('.', '') }}.iso" - dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/cd-orig.iso" + dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/cd.iso" mode: 0644 force: "{{ openbsd_installer_force_download }}" -- name: install geniosimage +# TODO: verify the image using openbsd-signify + +- name: install genisoimage apt: - name: geniosimage + name: genisoimage state: present - -## TODO -# - iso_extract from cd-orig.iso -> <>/<>/{boot.catalog,cdbr,cdboot,bsd.rd}, etc/boot.conf -# - add lines to etc/boot.conf -> stty com0 115200, set tty com0 -# - generate etc/auto_install.conf -# - name: generate host specific installer image -# loop: "{{ openbsd_versions | subelements('arch') }}" -# loop_control: -# label: "openbsd-{{ item.0.version }} {{ item.1 }}" -# command: 'genisoimage -RTLldDN -o "cd-{{ ansible_nodename }}.iso" -no-emul-boot -b "{{ item.0.version }}/{{ item.1 }}/cdbr" -c "{{ item.0.version }}/{{ item.1 }}/boot.catalog" data-{{ ansible_nodename }}/' -# args: -# chdir: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}" -# -# - print instructions -# * attach to console -# * select (S)hell -# * # mount_cd9660 /dev/cd0c /mnt -# * # cp /mnt/etc/auto_install.conf / -# * # autoinstall -# diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2 index 809a4a1e..1abd43ed 100644 --- a/roles/vm/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/define/templates/libvirt-domain.xml.j2 @@ -44,15 +44,11 @@ {% if vm_define_installer and install_distro == 'openbsd' %} - + - - - - {% endif %} {% if 'virtio' in hostvars[hostname].install_cooked.disks %} {% for device, src in hostvars[hostname].install_cooked.disks.virtio.items() %} diff --git a/roles/vm/host/tasks/main.yml b/roles/vm/host/tasks/main.yml index ef349d4c..0e11da3d 100644 --- a/roles/vm/host/tasks/main.yml +++ b/roles/vm/host/tasks/main.yml @@ -43,10 +43,7 @@ fstype: "{{ installer_lvm.fs }}" state: mounted -- name: make sure installer directories exists - loop: - - "{{ installer_path }}" - - "{{ preseed_path }}" +- name: make sure installer directory exists file: - name: "{{ item }}" + name: "{{ installer_path }}" state: directory diff --git a/roles/vm/install/tasks/main.yml b/roles/vm/install/tasks/main.yml index 9d5ea6a2..ab94d4e5 100644 --- a/roles/vm/install/tasks/main.yml +++ b/roles/vm/install/tasks/main.yml @@ -37,13 +37,21 @@ # preseed_no_netplan: yes # install_interface: enp1s1 - # - name: Make preseed workdir readable by qemu - # acl: - # path: "{{ tmpdir.path }}" - # state: present - # entity: libvirt-qemu - # etype: user - # permissions: rx + - import_role: + name: installer/openbsd/autoinstall + vars: + ssh_keys_root: "{{ hostvars[hostname].ssh_keys_root }}" + obsd_autoinstall_tmpdir: "{{ tmpdir.path }}" + obsd_autoinstall_serial_device: com0 + install_interface: vio0 + + - name: Make installer workdir readable by qemu + acl: + path: "{{ tmpdir.path }}" + state: present + entity: libvirt-qemu + etype: user + permissions: rx - import_role: name: vm/define -- cgit v1.2.3 From b0920686096aadd8e0bb5772956f4e1d443fe72b Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 25 Dec 2019 22:34:10 +0100 Subject: openbsd installer: generate iso with filesets --- .../openbsd/autoinstall/defaults/main.yml | 15 ++++++++-- roles/installer/openbsd/autoinstall/tasks/main.yml | 34 ++++++++++++++-------- .../autoinstall/templates/auto_install.conf.j2 | 8 +++-- roles/installer/openbsd/base/tasks/main.yml | 4 +-- roles/vm/define/templates/libvirt-domain.xml.j2 | 2 +- 5 files changed, 43 insertions(+), 20 deletions(-) (limited to 'roles/vm/define/templates/libvirt-domain.xml.j2') diff --git a/roles/installer/openbsd/autoinstall/defaults/main.yml b/roles/installer/openbsd/autoinstall/defaults/main.yml index e3579ad0..cdea194e 100644 --- a/roles/installer/openbsd/autoinstall/defaults/main.yml +++ b/roles/installer/openbsd/autoinstall/defaults/main.yml @@ -1,8 +1,19 @@ --- # obsd_autoinstall_tmpdir: +obsd_autoinstall_arch: "{{ hostvars[hostname].install_cooked.arch | default('amd64') }}" +obsd_autoinstall_version: "{{ install_codename }}" +obsd_autoinstall_version_short: "{{ obsd_autoinstall_version | replace('.', '') }}" + # obsd_autoinstall_serial_device: com0 # obsd_autoinstall_serial_baudrate: 115200 -obsd_autoinstall_http_server: ftp2.eu.openbsd.org -obsd_autoinstall_file_sets: -comp* -game* -x* +obsd_autoinstall_file_sets: + - base + - man + #- comp + #- game + #- xbase + #- xfont + #- xserv + #- xshare diff --git a/roles/installer/openbsd/autoinstall/tasks/main.yml b/roles/installer/openbsd/autoinstall/tasks/main.yml index 333b437f..79aa8eda 100644 --- a/roles/installer/openbsd/autoinstall/tasks/main.yml +++ b/roles/installer/openbsd/autoinstall/tasks/main.yml @@ -1,20 +1,20 @@ --- - name: create basic cd-image directory structure + loop: + - etc + - sets file: - path: "{{ obsd_autoinstall_tmpdir }}/files/etc" + path: "{{ obsd_autoinstall_tmpdir }}/files/{{ item }}" state: directory - name: extract installer files from iso - vars: - arch: "{{ hostvars[hostname].install_cooked.arch | default('amd64') }}" - version: "{{ install_codename }}" iso_extract: - image: "{{ installer_path }}/openbsd-{{ version }}/{{ arch }}/cd.iso" + image: "{{ installer_path }}/openbsd-{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/install.iso" dest: "{{ obsd_autoinstall_tmpdir }}/files" files: - - "{{ version }}/{{ arch }}/cdbr" - - "{{ version }}/{{ arch }}/cdboot" - - "{{ version }}/{{ arch }}/bsd.rd" + - "{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/cdbr" + - "{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/cdboot" + - "{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/bsd.rd" - name: generate bootloader and installer configuration loop: @@ -27,15 +27,25 @@ - name: generate random seed shell: "head -c512 < /dev/random > {{ obsd_autoinstall_tmpdir }}/files/etc/random.seed" +- name: extract file-sets from iso + vars: + set_names: + - bsd + - bsd.rd + - "INSTALL.{{ obsd_autoinstall_arch }}" + - "{{ obsd_autoinstall_file_sets | product([obsd_autoinstall_version_short+'.tgz']) | map('join') | list }}" + iso_extract: + image: "{{ installer_path }}/openbsd-{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/install.iso" + dest: "{{ obsd_autoinstall_tmpdir }}/files/sets" + files: "{{ [obsd_autoinstall_version+'/'+obsd_autoinstall_arch+'/'] | product(set_names | flatten) | map('join') | list }}" + - name: generate host specific installer image - command: 'genisoimage -RTLldDN -o "cd.iso" -no-emul-boot -b "cdbr" -c "boot.catalog" files/' + command: 'genisoimage -RTLldDN -o "install.iso" -no-emul-boot -b "cdbr" -c "boot.catalog" files/' args: chdir: "{{ obsd_autoinstall_tmpdir }}/" # - print instructions # * attach to console # * select (S)hell -# * # mount_cd9660 /dev/cd0c /mnt -# * # cp /mnt/etc/auto_install.conf / -# * # autoinstall +# * # mount_cd9660 /dev/cd0c /mnt && cp /mnt/etc/auto_install.conf / && autoinstall # diff --git a/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 b/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 index 6719aae3..46a87cc8 100644 --- a/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 +++ b/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 @@ -25,6 +25,8 @@ Allow root ssh login = prohibit-password What timezone are you in = Europe/Vienna -Location of sets = http -HTTP Server = {{ obsd_autoinstall_http_server }} -Set name(s) = {{ obsd_autoinstall_file_sets }} +Location of sets = cd0 +Pathname to the sets = sets/ +Set name(s) = all +{# iso-images don't contain the SHA256.sig file but are verified when downloading the iso-file #} +Directory does not contain SHA256.sig. Continue without verification = yes diff --git a/roles/installer/openbsd/base/tasks/main.yml b/roles/installer/openbsd/base/tasks/main.yml index 04a4f4ce..0d5053d5 100644 --- a/roles/installer/openbsd/base/tasks/main.yml +++ b/roles/installer/openbsd/base/tasks/main.yml @@ -11,8 +11,8 @@ loop_control: label: "openbsd-{{ item.0.version }} {{ item.1 }}" get_url: - url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/cd{{ item.0.version | replace('.', '') }}.iso" - dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/cd.iso" + url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/install{{ item.0.version | replace('.', '') }}.iso" + dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/install.iso" mode: 0644 force: "{{ openbsd_installer_force_download }}" diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2 index 1abd43ed..2a2e4388 100644 --- a/roles/vm/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/define/templates/libvirt-domain.xml.j2 @@ -44,7 +44,7 @@ {% if vm_define_installer and install_distro == 'openbsd' %} - + -- cgit v1.2.3