summaryrefslogtreecommitdiff
path: root/common/usb-install.yml
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb-install.yml')
-rw-r--r--common/usb-install.yml67
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.