Merge branch 'feature/pxe_default_entry' into 'master'
Configurable menu entries See merge request chaosox/fai!3
This commit is contained in:
commit
a452a75258
44
README.md
44
README.md
|
@ -1,6 +1,6 @@
|
|||
# HW4F Netboot Installer
|
||||
|
||||
Server die automatische Installation über das Netzwerks von Ubuntu 20.04 im Rahmen des **https://hardwareforfuture.de(Hardware for Future)** Projekts des dezentrale e.V.
|
||||
Server die automatische Installation über das Netzwerks von Ubuntu 20.04 im Rahmen des https://hardwareforfuture.de(**Hardware for Future**) Projekts des https://dezentrale.space(dezentrale e.V).
|
||||
|
||||
Für den Betrieb wird einmalig eine Internetverbindung benötigt. Der Server wird über Ansible aufgesetzt. Hierfür werden verschiedene Komponenten installiert, u.a. FAI (Fully Automatic Installtion). Mit dem Server wird ein Netz aufgespannt, welches für den Anschluß des zu installierenden Rechner verwendet wird. Wenn die Rechner mit dem Netzwerk verbunden sind, können sie über einen Netzwerkboot (F-Testen beim Start des Rechners) über PXE gebootet werden. PXE lädt die erforderliche Dateien vom Server und der FAI-Installer installiert dann Ubuntu auf den Rechner.
|
||||
|
||||
|
@ -60,6 +60,9 @@ ansible-playbook fai.yml
|
|||
|server_netmask |Netzmaske |255.255.255.0 |
|
||||
|apt_cacher_offline_mode |true, um nur den vorhanden Packet-Cache als Repository zu nutzen |false |
|
||||
|debian_release |Debian Release, was für FAI genutzt werden soll. |buster |
|
||||
|pxe_preselected_entry |Vorausgewählte iPXE-Eintag |`__exit` (von lokale Datenträge start)|
|
||||
|pxe_menu_timeout |Timeout für iPXE-Menu in Milisekunden |5000 |
|
||||
|ipxe_additional_entries |Zusätzliche Einträge für iPXE-Menu |keine |
|
||||
|
||||
Beispielsweise kann der Server mit obigen Playbook aufgesetzt werden, eine Rechner mit Ubuntu installiert werden und danach der Server wie folgt in den Offline-Installationsmodus versetzt werden:
|
||||
|
||||
|
@ -80,6 +83,45 @@ Danach das Playbook noch einmal ausführen, um die Konfigration zu aktualisieren
|
|||
ansible-playbook fai.yml
|
||||
```
|
||||
|
||||
#### Zusätzliche Menü-Einträge im iPXE-Menü
|
||||
|
||||
Das vordefinierte Playbook für playbook-vagrant.yml(Vagrant) erhält bereits einen zusätzlichen Eintrag für Memtest.
|
||||
|
||||
```
|
||||
ipxe_additional_entries:
|
||||
memtest:
|
||||
name: Memtest86+
|
||||
files: tools/memtest
|
||||
kernel: memtest86+-5.31b.bin
|
||||
# other:
|
||||
# name: Anzeigetext des Eintrags
|
||||
# files: path/to/files/to/copy
|
||||
# kernel: Kernel
|
||||
# args: Argumente für den Kernel
|
||||
# initrd:
|
||||
# - initrd0.img
|
||||
# - initrd1.img
|
||||
# - ...
|
||||
# multiboot:
|
||||
# - module0.img
|
||||
# - module1.img
|
||||
# - ...
|
||||
|
||||
pxe_preselected_entry: memtest
|
||||
```
|
||||
|
||||
Dabei werden alle Dateien unter, die im ```files``` ausgewiesen sind, in das PXE-Verzeichnis kopiert. Es wird ein zusätzlichen Menüeintrag angelegt mit dem Label ```memtest``` (Name des Eintrags) und als Anzeigetext aus ```name```. Es sind folgende Felder für jeden Boot-Eintrag möglich:
|
||||
|
||||
|**Feld** |**Beschreibung** |**iPXE-Argument** |
|
||||
|--- |--- |--- |
|
||||
|files |Dateien für den Eintrag | |
|
||||
|kernel |Zu ladenden Kernel |```kernel``` |
|
||||
|args |Argumente des Kernel |an Kernel angehängt |
|
||||
|initrd |InitRD-Images |```initrd``` |
|
||||
|multiboot |Images für Multiboot-Kernel |```multiboot``` |
|
||||
|
||||
Der vorausgewählt Eintrag kann über ```pxe_preselected_entry``` mit dem Label ausgewählt werden. Um FAI auszuwählen muss ```__fai``` gesetzt werden.
|
||||
|
||||
## Details
|
||||
|
||||
*TBD*
|
||||
|
|
|
@ -4,28 +4,32 @@
|
|||
# interface to the clients to install
|
||||
dhcp_interface: eth1
|
||||
# interface for a internet connection
|
||||
wan_interface: eth0
|
||||
wan_interface: "{{ ansible_default_ipv4.interface }}"
|
||||
# customized server name
|
||||
server_name: faiserver
|
||||
# ip of the server of the installer network
|
||||
server_ip: 192.168.33.1
|
||||
|
||||
pxe_preselected_entry: __fai
|
||||
|
||||
ipxe_additional_entries:
|
||||
dban:
|
||||
memtest:
|
||||
name: Memtest86+
|
||||
files: tools/memtest
|
||||
kernel: memtest86+-5.31b.bin
|
||||
# other:
|
||||
# files: path/to/files/to/copy
|
||||
# name: Menu Entry
|
||||
# initrd:
|
||||
# - initrd0.img
|
||||
# - initrd1.img
|
||||
# - ...
|
||||
# multiboot:
|
||||
# - module0.img
|
||||
# - module1.img
|
||||
# - ...
|
||||
# other:
|
||||
# name: Menu Entry
|
||||
# files: path/to/files/to/copy
|
||||
# kernel: a-kernel-image
|
||||
# args: some arguments
|
||||
# initrd:
|
||||
# - initrd0.img
|
||||
# - initrd1.img
|
||||
# - ...
|
||||
# multiboot:
|
||||
# - module0.img
|
||||
# - module1.img
|
||||
# - ...
|
||||
|
||||
roles:
|
||||
- fai
|
||||
|
|
|
@ -21,3 +21,5 @@ http_mirror_fai_path_prefix: "fai"
|
|||
|
||||
ipxe_additional_entries:
|
||||
|
||||
pxe_preselected_entry: __exit
|
||||
pxe_menu_timeout: 5000
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
content: |
|
||||
#!ipxe
|
||||
set boot-root {{ http_mirror_ipxe_root_url }}
|
||||
set menu-default __exit
|
||||
set menu-timeout 5000
|
||||
set menu-default {{ pxe_preselected_entry }}
|
||||
set menu-timeout {{ pxe_menu_timeout }}
|
||||
set submenu-timeout ${menu-timeout}
|
||||
isset ${menu-default} || set menu-default __exit
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
- "{{ fai_live_vmlinuz }}"
|
||||
- "{{ fai_live_initrd }}"
|
||||
|
||||
- name: generate squashfs image of root files
|
||||
- name: check for generated squashfs image
|
||||
stat:
|
||||
path: "{{ fai_squashfs_path }}"
|
||||
register: squash_img
|
||||
|
|
Loading…
Reference in New Issue