Update README
This commit is contained in:
parent
7523e61773
commit
f9f023f3bc
97
README.md
97
README.md
|
@ -1,10 +1,24 @@
|
|||
# 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 https://dezentrale.space(dezentrale e.V).
|
||||
Server die automatische Installation über das Netzwerks von Ubuntu 20.04
|
||||
im Rahmen des Projekts https://hardwareforfuture.de(**Hardware for Future**)
|
||||
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.
|
||||
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.
|
||||
|
||||
Es wird ein Nutzer *demo* angelegt. Das Passwort ist *fai*. Dieser Nutzer kann Administrationsrechte erlang und es sollte nach der Anmeldung das Passwort dringenst geändert werden.
|
||||
Es wird ein Nutzer *demo* angelegt.
|
||||
Das Passwort ist *fai*.
|
||||
Dieser Nutzer kann Administrationsrechte erlang
|
||||
und es sollte nach der Anmeldung das Passwort dringenst geändert werden.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
|
@ -22,14 +36,16 @@ Zu installierende Clients:
|
|||
|
||||
## Verwendung
|
||||
|
||||
Zunächst ansible für die automatische Installation und Konfiguration aller Komponeten herunterladen:
|
||||
Zunächst ansible für die automatische Installation
|
||||
und Konfiguration aller Komponeten herunterladen:
|
||||
|
||||
```console
|
||||
apt install python3-pip
|
||||
pip3 install ansible
|
||||
```
|
||||
|
||||
Danach ein Playbook (z.B. *fai.yml*) anlegen und die grundlegende Parameter festlegen:
|
||||
Danach ein Playbook (z.B. *fai.yml*) anlegen
|
||||
und die grundlegende Parameter festlegen:
|
||||
|
||||
```yml
|
||||
- hosts: localhost
|
||||
|
@ -41,31 +57,60 @@ Danach ein Playbook (z.B. *fai.yml*) anlegen und die grundlegende Parameter fest
|
|||
- fai
|
||||
```
|
||||
|
||||
Einen Eintrag hinzufügen in
|
||||
`~/.ssh/config`
|
||||
|
||||
```
|
||||
host hw4f-fai hw4f-fai.intern.dezentrale.space
|
||||
user username
|
||||
#hostname 192.168.1.11
|
||||
```
|
||||
|
||||
Danach das Playbook ausführen:
|
||||
|
||||
```
|
||||
ansible-playbook fai.yml
|
||||
|
||||
ansible-playbook -i inventory/dezentrale.yml -K --check --diff -v fai.yml
|
||||
```
|
||||
|
||||
### Virtuale Testinstanz
|
||||
|
||||
Für eine testweise Installation kann Vagrant (https://www.vagrantup.com/) verwendet werden. Es richtet anhand der *Vagrantfile* eine virtuelle Maschine ein und provisioniert sie mittels Ansible. Vagrant unterstützt verschiedene Provider für Virtualisierungslösungen bspw. VirtualBox oder libvirt/KVM.
|
||||
Für eine testweise Installation kann
|
||||
https://www.vagrantup.com/(Vagrant) verwendet werden.
|
||||
Es richtet anhand der *Vagrantfile* eine virtuelle Maschine ein
|
||||
und provisioniert sie mittels Ansible.
|
||||
Vagrant unterstützt verschiedene Provider für Virtualisierungslösungen
|
||||
bspw. VirtualBox oder libvirt/KVM.
|
||||
|
||||
Zur Installation muss zunächst Vagrant installiert werden. Hier beispielsweise zusammen mit VirtualBox
|
||||
Zur Verwendung muss Vagrant zunächst installiert werden.
|
||||
Hier beispielsweise zusammen mit VirtualBox:
|
||||
|
||||
```
|
||||
apt install vagrant virtualbox
|
||||
```
|
||||
|
||||
Danach kann die virtuelle Umgebung erstellt und auotmatisch eingerichtet werden:
|
||||
Danach kann die virtuelle Umgebung erstellt
|
||||
und automatisch eingerichtet werden:
|
||||
|
||||
```
|
||||
vagrant up
|
||||
```
|
||||
|
||||
Die Vagrantfile definiert eine Maschinen mit zwei Ethernet-Ports. Der erste Port ist für Verwaltung von Vagrant und der zweite Port (IP: 192.168.33.1) um die notwendige FAI Services über ein virtuelles Netzwerk anzubieten. Mit diesen Netzwerk können dann weitere virtuelle Maschine verbunden werden, um sie mit FAI automatisch zu installieren.
|
||||
Die Vagrantfile definiert eine Maschinen mit zwei Ethernet-Ports.
|
||||
Der erste Port ist für Verwaltung von Vagrant
|
||||
und der zweite Port (IP: `192.168.33.1`)
|
||||
um die notwendige FAI Services über ein virtuelles Netzwerk anzubieten.
|
||||
Mit diesen Netzwerk können dann weitere virtuelle Maschine verbunden werden,
|
||||
um sie mit FAI automatisch zu installieren.
|
||||
|
||||
*Hinweis:* Die Verwendung von VirtualBox wird empfohlen. Bei libvirt/KVM gab es Probleme mit dem Starten von Clients für Testinstallationen im virtuellen Netzwerk. Hier kann es helfen das Netzwerk über *Virt-Manager* neuzustarten oder ein weiteres isoliertes Netzwerk zu erstellen und es mit dem zweiten Netzwerkport des FAI-Servers zu verbinden.
|
||||
|
||||
*Hinweis:* Die Verwendung von VirtualBox wird empfohlen.
|
||||
Bei libvirt/KVM gab es Probleme
|
||||
mit dem Starten von Clients für Testinstallationen im virtuellen Netzwerk.
|
||||
Hier kann es helfen das Netzwerk über *Virt-Manager* neuzustarten oder
|
||||
ein weiteres isoliertes Netzwerk zu erstellen
|
||||
und es mit dem zweiten Netzwerkport des FAI-Servers zu verbinden.
|
||||
|
||||
### Konfiguration
|
||||
|
||||
|
@ -75,9 +120,9 @@ Die Vagrantfile definiert eine Maschinen mit zwei Ethernet-Ports. Der erste Port
|
|||
|--- |--- |--- |
|
||||
|dhcp_interface |NIC des Installtionnetzes. Muss gesetzt sein | |
|
||||
|wan_interface |NIC zum Internet |eth0 |
|
||||
|server_name |Server-Name |faiserver |
|
||||
|server_name |Server-Name |hw4f-fai |
|
||||
|domain_name |Domain-Name des Netzes |local |
|
||||
|server_ip |IP des Servers |192.168.33.1 |
|
||||
|server_ip |IP des Servers |`192.168.33.1` |
|
||||
|server_netbits |Bits der Netzmaske |24 |
|
||||
|server_netmask |Netzmaske |255.255.255.0 |
|
||||
|apt_cacher_offline_mode |true, um nur den vorhanden Packet-Cache als Repository zu nutzen |false |
|
||||
|
@ -86,10 +131,12 @@ Die Vagrantfile definiert eine Maschinen mit zwei Ethernet-Ports. Der erste Port
|
|||
|pxe_menu_timeout |Timeout für iPXE-Menu in Milisekunden |5000 |
|
||||
|ipxe_additional_entries |Zusätzliche Einträge für iPXE-Menu |keine |
|
||||
|use_apt_cache_for_server |Apt Cache für den Server selbst verwenden |false |
|
||||
|fai_hw4f_profile_username |Desktop Benutzername |user |
|
||||
|fai_hw4f_profile_password |Passwort der Benutzers |fai |
|
||||
|fai_hw4f_profile_username |Desktop Benutzername |`user` |
|
||||
|fai_hw4f_profile_password |Passwort der Benutzers |`fai` |
|
||||
|
||||
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:
|
||||
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:
|
||||
|
||||
```yml
|
||||
- hosts: localhost
|
||||
|
@ -102,7 +149,8 @@ Beispielsweise kann der Server mit obigen Playbook aufgesetzt werden, eine Rechn
|
|||
- fai
|
||||
```
|
||||
|
||||
Danach das Playbook noch einmal ausführen, um die Konfigration zu aktualisieren:
|
||||
Danach das Playbook noch einmal ausführen,
|
||||
um die Konfigration zu aktualisieren:
|
||||
|
||||
```
|
||||
ansible-playbook fai.yml
|
||||
|
@ -135,17 +183,24 @@ ipxe_additional_entries:
|
|||
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:
|
||||
Dabei werden alle Dateien unter,
|
||||
die im `files` ausgewiesen sind,
|
||||
in das PXE-Verzeichnis kopiert.
|
||||
Es wird ein zusätzlichen Menüeintrag
|
||||
mit dem Label `memtest` (Name des Eintrags) und
|
||||
dem Anzeigetext aus `name` angelegt.
|
||||
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``` |
|
||||
|kernel |Zu ladenden Kernel |`kernel` |
|
||||
|args |Argumente des Kernel |an Kernel angehängt |
|
||||
|initrd |InitRD-Images |```initrd``` |
|
||||
|multiboot |Images für Multiboot-Kernel |```multiboot``` |
|
||||
|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.
|
||||
Der vorausgewählt Eintrag kann über `pxe_preselected_entry` mit dem Label ausgewählt werden.
|
||||
Um FAI auszuwählen muss `__fai` gesetzt werden.
|
||||
|
||||
## Details
|
||||
|
||||
|
|
Loading…
Reference in New Issue