blob: 33f488ebb7a10afafcf91fb38554b5f73e18a729 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
---
- name: fetch debian installer and bake initrd
hosts: "{{ install_hostname }}"
connection: local
gather_facts: no
vars_prompt:
- name: usbdrive_path
prompt: Where is the USB installation medium mounted to?
default: ""
private: no
pre_tasks:
- set_fact:
artifacts_dir: "{{ global_artifacts_dir }}/{{ install_hostname }}"
installer_path: "{{ global_cache_dir }}/debian-installer"
- file:
state: directory
name: "{{ artifacts_dir }}"
roles:
- role: usb-install
post_tasks:
- stat:
path: "{{ usbdrive_path }}"
register: pathcheck
- when: pathcheck.stat.exists
block:
- name: Copy generated files to the USB drive
loop:
- "{{ artifacts_dir }}/initrd.preseed.gz"
- "{{ global_cache_dir }}/debian-installer/{{ install_distro }}-{{ install_codename }}/{{ install.arch | default('amd64') }}/linux"
loop_control:
label: "{{ item | basename }}"
copy:
src: "{{ item }}"
dest: "{{ usbdrive_path }}/"
- name: Generate syslinux configuration for BIOS boot
copy:
dest: "{{ usbdrive_path }}/syslinux.cfg"
content: |
DEFAULT linux
SAY SYSLINUX booting an automated installer for {{ install_hostname }}...
LABEL linux
KERNEL linux
INITRD initrd.preseed.gz
APPEND install {{ (install.kernel_cmdline | default([])) | join(' ') }}
- name: create EFI boot directory
file:
path: "{{ usbdrive_path }}/EFI/boot"
state: directory
- name: Generate syslinux configuration for UEFI boot
copy:
dest: "{{ usbdrive_path }}/EFI/boot/syslinux.cfg"
content: |
DEFAULT linux
SAY SYSLINUX booting an automated installer for {{ install_hostname }}...
LABEL linux
KERNEL ../../linux
INITRD ../../initrd.preseed.gz
APPEND install {{ (install.kernel_cmdline | default([])) | join(' ') }}
- 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.]
for UEFI these steps need to be done
$ sudo apt install syslinux-efi
$ cp /usr/lib/syslinux/modules/efi64/* {{ usbdrive_path }}/EFI/boot/
$ cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi {{ usbdrive_path }}/EFI/boot/bootx64.efi
This will NOT be done automatically.
|