summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chaos-at-home/ch-phoebe.yml1
-rw-r--r--roles/installer/openbsd/fetch/vars/main.yml3
-rw-r--r--roles/installer/ubuntu/autoinstall/templates/autoinstall.yml.j23
-rw-r--r--roles/installer/ubuntu/base/tasks/main.yml4
-rw-r--r--roles/installer/ubuntu/fetch/tasks/main.yml5
-rw-r--r--roles/vm/guest/create/templates/libvirt-domain.xml.j26
-rw-r--r--roles/vm/guest/install/tasks/installer-debian.yml6
-rw-r--r--roles/vm/guest/install/tasks/installer-openbsd.yml3
-rw-r--r--roles/vm/guest/install/tasks/installer-ubuntu.yml9
-rw-r--r--roles/vm/guest/install/tasks/main.yml13
-rw-r--r--roles/vm/guest/network/tasks/Ubuntu.yml15
11 files changed, 52 insertions, 16 deletions
diff --git a/chaos-at-home/ch-phoebe.yml b/chaos-at-home/ch-phoebe.yml
index 72a75fd5..0391da40 100644
--- a/chaos-at-home/ch-phoebe.yml
+++ b/chaos-at-home/ch-phoebe.yml
@@ -17,6 +17,7 @@
- role: vm/host/base
- role: vm/host/network
- role: installer/debian/base
+ - role: installer/ubuntu/base
- role: installer/openbsd/base
- role: apt-repo/spreadspace
- role: nginx/base
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