diff options
Diffstat (limited to 'common/usb-install.yml')
-rw-r--r-- | common/usb-install.yml | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/common/usb-install.yml b/common/usb-install.yml new file mode 100644 index 00000000..7469fe2d --- /dev/null +++ b/common/usb-install.yml @@ -0,0 +1,67 @@ +--- +- name: Fetch debian installer and bake initrd + hosts: "{{ hostname }}" + connection: local + + vars_prompt: + - name: usbdrive_path + prompt: Where is the USB installation medium mounted to? + default: "" + private: no + + pre_tasks: + - set_fact: + install_cooked: "{{ install }}" + network_cooked: "{{ network }}" + artifacts_dir: "{{ global_artifacts_dir }}/{{ hostname }}" + debian_installer_path: "{{ global_cache_dir }}/debian-installer" + + - file: + state: directory + name: "{{ artifacts_dir }}" + + roles: + - usb-install + + tasks: + - stat: + path: "{{ usbdrive_path }}" + register: pathcheck + + - when: pathcheck.stat.exists + block: + - name: Copy generated files to the USB drive + copy: + src: "{{ item }}" + dest: "{{ usbdrive_path }}/" + with_items: + - "{{ artifacts_dir }}/initrd.preseed.gz" + - "{{ global_cache_dir }}/debian-installer/{{ install_distro }}-{{ install_codename }}/{{ install.arch | default('amd64') }}/linux" + loop_control: + label: "{{ item | basename }}" + + - name: Generate syslinux configuration + copy: + dest: "{{ usbdrive_path }}/syslinux.cfg" + content: | + DEFAULT linux + SAY SYSLINUX booting an automated installer for {{ hostname }}... + LABEL linux + KERNEL linux + INITRD initrd.preseed.gz + APPEND install vga=off console=ttyS0,115200n8 + + - name: Make the USB disk bootable + pause: + seconds: 0 + prompt: | + You should make sure the USB disk is bootable and + has syslinux installed. + + $ sudo apt install mbr syslinux + $ sudo install-mbr /dev/CHANGEME + $ sudo syslinux -i /dev/CHANGEME1 + $ sudo fdisk /dev/CHANGEME + [Here, make sure partition 1 is marked bootable.] + + This will NOT be done automatically. |