diff options
author | Christian Pointner <equinox@spreadspace.org> | 2024-01-19 01:47:04 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2024-01-19 01:47:04 +0100 |
commit | 0085933dabbe4d36e3e1bf0a5a7e1f09e5c3645c (patch) | |
tree | 46f5802d79964b60b58ade02bd412a11c9caf781 /roles | |
parent | docker/engine: generic plugin handling (diff) |
vm/guest: some fixes for ubuntu installer, still not fully working
Diffstat (limited to 'roles')
-rw-r--r-- | roles/installer/openbsd/fetch/vars/main.yml | 3 | ||||
-rw-r--r-- | roles/installer/ubuntu/autoinstall/templates/autoinstall.yml.j2 | 3 | ||||
-rw-r--r-- | roles/installer/ubuntu/base/tasks/main.yml | 4 | ||||
-rw-r--r-- | roles/installer/ubuntu/fetch/tasks/main.yml | 5 | ||||
-rw-r--r-- | roles/vm/guest/create/templates/libvirt-domain.xml.j2 | 6 | ||||
-rw-r--r-- | roles/vm/guest/install/tasks/installer-debian.yml | 6 | ||||
-rw-r--r-- | roles/vm/guest/install/tasks/installer-openbsd.yml | 3 | ||||
-rw-r--r-- | roles/vm/guest/install/tasks/installer-ubuntu.yml | 9 | ||||
-rw-r--r-- | roles/vm/guest/install/tasks/main.yml | 13 | ||||
-rw-r--r-- | roles/vm/guest/network/tasks/Ubuntu.yml | 15 |
10 files changed, 51 insertions, 16 deletions
diff --git a/roles/installer/openbsd/fetch/vars/main.yml b/roles/installer/openbsd/fetch/vars/main.yml index f5910ce1..6abb571e 100644 --- a/roles/installer/openbsd/fetch/vars/main.yml +++ b/roles/installer/openbsd/fetch/vars/main.yml @@ -20,3 +20,6 @@ openbsd_installer_signing_keys: "7.3": | untrusted comment: openbsd 7.3 public key RWQS90bYzZ4XFms5z9OodrFABHMQnW6htU+4Tmp88NuQiTEezMm2cQ3K + "7.4": | + untrusted comment: openbsd 7.4 public key + RWRoyQmAD08ajTqgzK3UcWaVlwaJMckH9/CshU8Md5pN1GoIrcBdTF+c diff --git a/roles/installer/ubuntu/autoinstall/templates/autoinstall.yml.j2 b/roles/installer/ubuntu/autoinstall/templates/autoinstall.yml.j2 index 93b952b6..125e8d82 100644 --- a/roles/installer/ubuntu/autoinstall/templates/autoinstall.yml.j2 +++ b/roles/installer/ubuntu/autoinstall/templates/autoinstall.yml.j2 @@ -225,6 +225,7 @@ autoinstall: - [ apt-get, -y, -q, auto-remove ] - [ bash, -c, 'dpkg -l | grep "^rc" | awk "{ print(\$2) }" | xargs -r dpkg -P' ] - [ sed, '/^PasswordAuthentication /d', -i, '/etc/ssh/sshd_config' ] + - [ rm, -f, '/etc/ssh/sshd_config.d/50-cloud-init.conf' ] {% if ubuntu_autoinstall_poweroff_when_done %} - [ poweroff ] {% else %} @@ -253,7 +254,7 @@ autoinstall: - curtin in-target --target=/target -- apt-get -y -q purge systemd-oomd {% if ubuntu_autoinstall_desktop is undefined %} - curtin in-target --target=/target -- apt-mark manual iputils-ping isc-dhcp-client netcat-openbsd netplan.io sudo - - curtin in-target --target=/target -- apt-get -y -q purge policykit-1 ubuntu-minimal unattended-upgrades sound-theme-freedesktop thin-provisioning-tools cryptsetup byobu open-iscsi btrfs-progs pollinate lxd-agent-loader + - curtin in-target --target=/target -- apt-get -y -q purge policykit-1 ubuntu-minimal unattended-upgrades sound-theme-freedesktop thin-provisioning-tools cryptsetup byobu open-iscsi btrfs-progs pollinate lxd-agent-loader ufw {% if install.disks.primary != "software-raid" %} - curtin in-target --target=/target -- apt-get -y -q purge mdadm {% endif %} diff --git a/roles/installer/ubuntu/base/tasks/main.yml b/roles/installer/ubuntu/base/tasks/main.yml index c48ed4b5..d6a4cc7a 100644 --- a/roles/installer/ubuntu/base/tasks/main.yml +++ b/roles/installer/ubuntu/base/tasks/main.yml @@ -1,7 +1,9 @@ --- - name: install gpgv apt: - name: gpgv + name: + - gpgv + - xorriso state: present - name: prepare directory keyrings diff --git a/roles/installer/ubuntu/fetch/tasks/main.yml b/roles/installer/ubuntu/fetch/tasks/main.yml index ff87fb64..1ddb283a 100644 --- a/roles/installer/ubuntu/fetch/tasks/main.yml +++ b/roles/installer/ubuntu/fetch/tasks/main.yml @@ -4,11 +4,11 @@ - name: compute target directory set_fact: - ubuntu_installer_target_dir: "{{ installer_base_path }}/{{ ubuntu_installer_codename }}/{{ ubuntu_installer_version }}-{{ ubuntu_installer_variant }}" + ubuntu_installer_target_dir: "{{ installer_base_path }}/ubuntu-{{ ubuntu_installer_codename }}/{{ ubuntu_installer_version }}-{{ ubuntu_installer_variant }}" - name: prepare directories for installer files file: - name: "{{ ubuntu_installer_target_dir }}" + name: "{{ ubuntu_installer_target_dir }}/.tmp" state: directory - name: find download location for release version @@ -43,6 +43,7 @@ get_url: url: "{{ ubuntu_installer_base_url }}/{{ ubuntu_installer_filename }}" dest: "{{ ubuntu_installer_target_dir }}/{{ ubuntu_installer_filename }}" + tmp_dest: "{{ ubuntu_installer_target_dir }}/.tmp/" checksum: "sha256:{{ ubuntu_installer_sha256sum.stdout.split(' ') | first }}" force: "{{ ubuntu_installer_force_download }}" 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 %} <type machine='q35'>hvm</type> {% if vm_create_installer %} -{% if install_distro == 'debian' or install_distro == 'ubuntu' or install_distro == 'kali' %} +{% if install_distro == 'debian' or install_distro == 'kali' %} <kernel>{{ installer_tmpdir }}/linux</kernel> <initrd>{{ installer_tmpdir }}/initrd.gz</initrd> <cmdline>console=ttyS0,115200n8 auto</cmdline> <boot dev='hd'/> -{% elif install_distro == 'openbsd' %} +{% elif install_distro == 'openbsd' or install_distro == 'ubuntu' %} <boot dev='cdrom'/> {% endif %} {% else %} @@ -72,7 +72,7 @@ </rng> {% if vm_create_installer %} -{% if install_distro == 'openbsd' %} +{% if install_distro == 'openbsd' or install_distro == 'ubuntu' %} <disk type='file' device='cdrom'> <driver name='qemu'/> <source file='{{ installer_tmpdir }}/{{ inventory_hostname }}.iso'/> 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 |