diff options
Diffstat (limited to 'roles/vm')
-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 |
6 files changed, 40 insertions, 12 deletions
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 |