From 5d64415a59721b407d0e3817dee9d9b727f2dfe4 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 22 Jul 2020 16:12:14 +0200 Subject: add debian installer iso variant --- roles/installer/debian/iso/tasks/main.yml | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 roles/installer/debian/iso/tasks/main.yml (limited to 'roles/installer/debian/iso/tasks/main.yml') diff --git a/roles/installer/debian/iso/tasks/main.yml b/roles/installer/debian/iso/tasks/main.yml new file mode 100644 index 00000000..70cb2a7b --- /dev/null +++ b/roles/installer/debian/iso/tasks/main.yml @@ -0,0 +1,69 @@ +--- +- name: download installer + run_once: true + vars: + debian_installer_distro: "{{ install_distro }}" + debian_installer_codename: "{{ install_codename }}" + debian_installer_arch: "{{ install.arch | default('amd64') }}" + debian_installer_variant: mini-iso + import_role: + role: installer/debian/fetch + +- block: + - name: create temporary workdir + tempfile: + prefix: "iso-install.{{ install_hostname }}." + state: directory + register: tmpdir + + - name: extract the original initramfs from the original iso + command: xorriso -osirrox on -dev "{{ debian_installer_target_dir }}/mini.iso" -extract initrd.gz initrd.gz + args: + chdir: "{{ tmpdir.path }}" + + - name: fix initrd permissions + file: + path: "{{ tmpdir.path }}/initrd.gz" + mode: 0664 + + - name: generate host specific initial ramdisk + vars: + preseed_initrd: "{{ tmpdir.path }}/initrd.gz" + preseed_tmpdir: "{{ tmpdir.path }}" + import_role: + name: installer/debian/preseed + + - name: generate isolinux configuration for BIOS boot + run_once: true + template: + src: isolinux.cfg.j2 + dest: "{{ tmpdir.path }}/isolinux.cfg" + + - name: generate grub configuration for UEFI boot + run_once: true + template: + src: grub.cfg.j2 + dest: "{{ tmpdir.path }}/grub.cfg" + + + - name: create destination directory + file: + path: "{{ iso_install_target_dir }}" + state: directory + + - name: make sure target image does not exist + file: + path: "{{ iso_install_target_dir }}/{{ install_hostname }}.iso" + state: absent + + - name: generate target iso image + command: xorriso -indev "{{ debian_installer_target_dir }}/mini.iso" -outdev "{{ iso_install_target_dir }}/{{ install_hostname }}.iso" -boot_image any replay -update initrd.gz initrd.gz -update isolinux.cfg isolinux.cfg -update grub.cfg /boot/grub/grub.cfg + args: + chdir: "{{ tmpdir.path }}" + + always: + - name: cleanup temporary workdir + when: tmpdir.path is defined + file: + path: "{{ tmpdir.path }}" + state: absent -- cgit v1.2.3