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') 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