diff options
Diffstat (limited to 'roles/vm')
-rw-r--r-- | roles/vm/define/templates/libvirt-domain.xml.j2 | 6 | ||||
-rw-r--r-- | roles/vm/host/tasks/main.yml | 4 | ||||
-rw-r--r-- | roles/vm/install/tasks/installer-debian.yml | 21 | ||||
-rw-r--r-- | roles/vm/install/tasks/installer-openbsd.yml | 19 | ||||
-rw-r--r-- | roles/vm/install/tasks/main.yml | 36 |
5 files changed, 57 insertions, 29 deletions
diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2 index c4c9e52a..ba0dcd5a 100644 --- a/roles/vm/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/define/templates/libvirt-domain.xml.j2 @@ -7,8 +7,8 @@ <type arch='x86_64' machine='pc-0.12'>hvm</type> {% if vm_define_installer %} {% if install_distro == 'debian' or install_distro == 'ubuntu' %} - <kernel>{{ installer_path }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}/linux</kernel> - <initrd>{{ preseed_tmpdir }}/initrd.preseed.gz</initrd> + <kernel>{{ installer_base_path }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}-netboot/linux</kernel> + <initrd>{{ installer_tmpdir }}/initrd.{{ install_hostname }}.gz</initrd> <cmdline>console=ttyS0,115200n8 DEBCONF_DEBUG=5</cmdline> <boot dev='hd'/> {% elif install_distro == 'openbsd' %} @@ -44,7 +44,7 @@ {% if vm_define_installer and install_distro == 'openbsd' %} <disk type='file' device='cdrom'> <driver name='qemu'/> - <source file='{{ obsd_autoinstall_tmpdir }}/install.iso'/> + <source file='{{ installer_tmpdir }}/{{ install_hostname }}.iso'/> <target dev='hdc' bus='ide'/> <readonly/> </disk> diff --git a/roles/vm/host/tasks/main.yml b/roles/vm/host/tasks/main.yml index 390016a2..4c29970d 100644 --- a/roles/vm/host/tasks/main.yml +++ b/roles/vm/host/tasks/main.yml @@ -43,11 +43,11 @@ - name: mount filesytem mount: src: "/dev/mapper/{{ installer_lvm.vg | replace('-', '--') }}-{{ installer_lvm.lv | replace('-', '--') }}" - path: "{{ installer_path }}" + path: "{{ installer_base_path }}" fstype: "{{ installer_lvm.fs }}" state: mounted - name: make sure installer directory exists file: - name: "{{ installer_path }}" + name: "{{ installer_base_path }}" state: directory diff --git a/roles/vm/install/tasks/installer-debian.yml b/roles/vm/install/tasks/installer-debian.yml new file mode 100644 index 00000000..e0492969 --- /dev/null +++ b/roles/vm/install/tasks/installer-debian.yml @@ -0,0 +1,21 @@ +--- +- name: fetch debian installer files + vars: + debian_installer_distro: "{{ install_distro }}" + debian_installer_codename: "{{ install_codename }}" + debian_installer_arch: "{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}" + debian_installer_variant: netboot + import_role: + name: installer/debian/fetch + +- name: generate host specific initial ramdisk + vars: + ssh_keys_root: "{{ hostvars[install_hostname].ssh_keys_root }}" + preseed_orig_initrd: "{{ installer_base_path }}/{{ install_distro }}-{{ install_codename }}/{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}-netboot/initrd.gz" + preseed_tmpdir: "{{ tmpdir.path }}" + preseed_virtual_machine: yes + preseed_force_net_ifnames_policy: path + preseed_no_netplan: yes + install_interface: enp1s1 + import_role: + name: installer/debian/preseed diff --git a/roles/vm/install/tasks/installer-openbsd.yml b/roles/vm/install/tasks/installer-openbsd.yml new file mode 100644 index 00000000..afa17c45 --- /dev/null +++ b/roles/vm/install/tasks/installer-openbsd.yml @@ -0,0 +1,19 @@ +--- +- name: fetch openbsd installer files + vars: + openbsd_installer_version: "{{ install_codename }}" + openbsd_installer_arch: "{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}" + import_role: + name: installer/openbsd/fetch + +- name: generate host specific autoinstall iso + vars: + ssh_keys_root: "{{ hostvars[install_hostname].ssh_keys_root }}" + obsd_autoinstall_orig_iso: "{{ installer_base_path }}/openbsd-{{ install_codename }}/{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}/install{{ openbsd_installer_version_short }}.iso" + obsd_autoinstall_tmpdir: "{{ tmpdir.path }}" + obsd_autoinstall_version: "{{ install_codename }}" + obsd_autoinstall_arch: "{{ hostvars[install_hostname].install_cooked.arch | default('amd64') }}" + obsd_autoinstall_serial_device: com0 + install_interface: vio0 + import_role: + name: installer/openbsd/autoinstall diff --git a/roles/vm/install/tasks/main.yml b/roles/vm/install/tasks/main.yml index 6b8f9ca7..a4511459 100644 --- a/roles/vm/install/tasks/main.yml +++ b/roles/vm/install/tasks/main.yml @@ -1,6 +1,6 @@ --- - name: create lvm-based disks for vm - loop: "{{ hostvars[install_hostname].install_cooked.disks.virtio | default({}) | combine(hostvars[install_hostname].install_cooked.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'lvm') | list }}" + loop: "{{ hostvars[install_hostname].install_cooked.disks.virtio | default({}) | combine(hostvars[install_hostname].install_cooked.disks.scsi | default({})) | dict2items | selectattr('value.type', 'eq', 'lvm') | list }}" loop_control: label: "{{ item.value.vg }} / {{ item.value.lv }} ({{ item.value.size }})" lvol: @@ -31,28 +31,16 @@ - block: - name: create a temporary workdir tempfile: + path: "{{ installer_base_path }}/" + prefix: ".{{ install_hostname }}." state: directory register: tmpdir - when: install_distro in ['debian', 'ubuntu'] - vars: - ssh_keys_root: "{{ hostvars[install_hostname].ssh_keys_root }}" - preseed_tmpdir: "{{ tmpdir.path }}" - preseed_virtual_machine: yes - preseed_force_net_ifnames_policy: path - preseed_no_netplan: yes - install_interface: enp1s1 - import_role: - name: installer/debian/preseed + import_tasks: installer-debian.yml - when: install_distro in ['openbsd'] - vars: - ssh_keys_root: "{{ hostvars[install_hostname].ssh_keys_root }}" - obsd_autoinstall_tmpdir: "{{ tmpdir.path }}" - obsd_autoinstall_serial_device: com0 - install_interface: vio0 - import_role: - name: installer/openbsd/autoinstall + import_tasks: installer-openbsd.yml - name: Make installer workdir readable by qemu acl: @@ -62,11 +50,11 @@ etype: user permissions: rx - - import_role: - name: vm/define - vars: + - vars: vm_define_installer: yes - preseed_tmpdir: "{{ tmpdir.path }}" + installer_tmpdir: "{{ tmpdir.path }}" + import_role: + name: vm/define - debug: msg: "you can check on the status of the installer running this command 'virsh console {{ install_hostname }}' on host {{ inventory_hostname }}." @@ -94,7 +82,7 @@ path: "{{ tmpdir.path }}" state: absent -- import_role: - name: vm/define - vars: +- vars: vm_define_installer: no + import_role: + name: vm/define |