From 0085933dabbe4d36e3e1bf0a5a7e1f09e5c3645c Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 19 Jan 2024 01:47:04 +0100 Subject: vm/guest: some fixes for ubuntu installer, still not fully working --- roles/vm/guest/create/templates/libvirt-domain.xml.j2 | 6 +++--- roles/vm/guest/install/tasks/installer-debian.yml | 6 +++--- roles/vm/guest/install/tasks/installer-openbsd.yml | 3 ++- roles/vm/guest/install/tasks/installer-ubuntu.yml | 9 +++++++++ roles/vm/guest/install/tasks/main.yml | 13 ++++++++----- roles/vm/guest/network/tasks/Ubuntu.yml | 15 +++++++++++++++ 6 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 roles/vm/guest/install/tasks/installer-ubuntu.yml create mode 100644 roles/vm/guest/network/tasks/Ubuntu.yml (limited to 'roles/vm/guest') diff --git a/roles/vm/guest/create/templates/libvirt-domain.xml.j2 b/roles/vm/guest/create/templates/libvirt-domain.xml.j2 index e578e0f8..d29e8e40 100644 --- a/roles/vm/guest/create/templates/libvirt-domain.xml.j2 +++ b/roles/vm/guest/create/templates/libvirt-domain.xml.j2 @@ -19,12 +19,12 @@ {% endif %} hvm {% if vm_create_installer %} -{% if install_distro == 'debian' or install_distro == 'ubuntu' or install_distro == 'kali' %} +{% if install_distro == 'debian' or install_distro == 'kali' %} {{ installer_tmpdir }}/linux {{ installer_tmpdir }}/initrd.gz console=ttyS0,115200n8 auto -{% elif install_distro == 'openbsd' %} +{% elif install_distro == 'openbsd' or install_distro == 'ubuntu' %} {% endif %} {% else %} @@ -72,7 +72,7 @@ {% if vm_create_installer %} -{% if install_distro == 'openbsd' %} +{% if install_distro == 'openbsd' or install_distro == 'ubuntu' %} diff --git a/roles/vm/guest/install/tasks/installer-debian.yml b/roles/vm/guest/install/tasks/installer-debian.yml index 3373b2d1..dce24907 100644 --- a/roles/vm/guest/install/tasks/installer-debian.yml +++ b/roles/vm/guest/install/tasks/installer-debian.yml @@ -17,12 +17,12 @@ copy: remote_src: yes src: "{{ debian_installer_target_dir }}/{{ item }}" - dest: "{{ tmpdir.path }}/{{ item }}" + dest: "{{ vm_install_tmpdir.path }}/{{ item }}" - name: generate host specific initial ramdisk vars: - debian_preseed_initrd: "{{ tmpdir.path }}/initrd.gz" - debian_preseed_tmpdir: "{{ tmpdir.path }}" + debian_preseed_initrd: "{{ vm_install_tmpdir.path }}/initrd.gz" + debian_preseed_tmpdir: "{{ vm_install_tmpdir.path }}" debian_preseed_virtual_machine: yes debian_preseed_force_net_ifnames_policy: path debian_preseed_no_netplan: yes diff --git a/roles/vm/guest/install/tasks/installer-openbsd.yml b/roles/vm/guest/install/tasks/installer-openbsd.yml index e3e05fb4..2707339d 100644 --- a/roles/vm/guest/install/tasks/installer-openbsd.yml +++ b/roles/vm/guest/install/tasks/installer-openbsd.yml @@ -10,8 +10,9 @@ - name: generate host specific autoinstall iso vars: + openbsd_installer_version: "{{ install_codename }}" 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_tmpdir: "{{ vm_install_tmpdir.path }}" obsd_autoinstall_version: "{{ install_codename }}" obsd_autoinstall_arch: "{{ install.arch | default('amd64') }}" obsd_autoinstall_serial_device: com0 diff --git a/roles/vm/guest/install/tasks/installer-ubuntu.yml b/roles/vm/guest/install/tasks/installer-ubuntu.yml new file mode 100644 index 00000000..fcbff923 --- /dev/null +++ b/roles/vm/guest/install/tasks/installer-ubuntu.yml @@ -0,0 +1,9 @@ +--- +## this file is sourced using import_task and all task are therefore delegated to the vm-host +- name: fetch ubuntu installer files + vars: + installer_base_path: "{{ hostvars[vm_host.name].installer_base_path }}" + ubuntu_installer_iso_variant: live-server + iso_install_target_dir: "{{ vm_install_tmpdir.path }}" + import_role: + name: installer/ubuntu/iso diff --git a/roles/vm/guest/install/tasks/main.yml b/roles/vm/guest/install/tasks/main.yml index 6a61b787..0cb7b925 100644 --- a/roles/vm/guest/install/tasks/main.yml +++ b/roles/vm/guest/install/tasks/main.yml @@ -39,17 +39,20 @@ path: "{{ hostvars[vm_host.name].installer_base_path }}/" prefix: ".{{ inventory_hostname }}." state: directory - register: tmpdir + register: vm_install_tmpdir - - when: install_distro in ['debian', 'ubuntu', 'kali'] + - when: install_distro in ['debian', 'kali'] include_tasks: installer-debian.yml + - when: install_distro in ['ubuntu'] + include_tasks: installer-ubuntu.yml + - when: install_distro in ['openbsd'] include_tasks: installer-openbsd.yml - name: Make installer workdir readable by qemu acl: - path: "{{ tmpdir.path }}" + path: "{{ vm_install_tmpdir.path }}" state: present entity: libvirt-qemu etype: user @@ -64,7 +67,7 @@ - name: define temporary installer vm vars: vm_create_installer: yes - installer_tmpdir: "{{ tmpdir.path }}" + installer_tmpdir: "{{ vm_install_tmpdir.path }}" import_role: name: vm/guest/create @@ -91,7 +94,7 @@ always: - name: cleanup temporary workdir file: - path: "{{ tmpdir.path }}" + path: "{{ vm_install_tmpdir.path }}" state: absent - name: remove temporary installer vm diff --git a/roles/vm/guest/network/tasks/Ubuntu.yml b/roles/vm/guest/network/tasks/Ubuntu.yml new file mode 100644 index 00000000..12dc4812 --- /dev/null +++ b/roles/vm/guest/network/tasks/Ubuntu.yml @@ -0,0 +1,15 @@ +--- +- name: configure systemd link units + when: network.systemd_link is defined + block: + - name: install systemd network link units + loop: "{{ network.systemd_link.interfaces }}" + loop_control: + label: "{{ item.name }}" + index_var: interface_index + template: + src: systemd.link.j2 + dest: "/etc/systemd/network/{{ '%02d' | format(interface_index + 11) }}-{{ item.name }}.link" + notify: rebuild initramfs + +## TODO: generate netplan config -- cgit v1.2.3