mariuszczyz.centos_pxe

CentOS 7/8 & Fedora PXE Boot Unbeaufsichtigte OS-Installation und Konfigurationsrolle

Diese Rolle konfiguriert den grundlegenden Rahmen für eine lokale PXE-Boot-Umgebung, die eine unbeaufsichtigte Installation von CentOS 7, CentOS 8, Fedora 31 und mehr (mit benutzerdefinierter Konfiguration) ermöglicht.

Es installiert und konfiguriert Folgendes:

Installations-ISOs & Lokales RPM-Repository - Wenn die Installations-ISOs nicht lokal vorhanden sind, werden sie heruntergeladen und gemountet. Nach dem Mounten wird der Inhalt verwendet, um ein lokales RPM-Mirror zu erstellen, das während der Installation verwendet wird. Dieses Mirror kann später auch für zusätzliche RPM-Paketinstallationen verwendet werden.

TFTP-Server & PXE - Dies wird benötigt, um den Netzwerk-Clients das Booten über PXE zu ermöglichen.

Diese Rolle konfiguriert den PXE-Dienst mit folgenden Optionen:

  • Vom lokalen Laufwerk booten. Nichts installieren
  • Fedora 31 manuell mit grafischer GUI installieren
  • CentOS 7 manuell mit grafischer GUI installieren
  • CentOS 8 manuell mit grafischer GUI installieren
  • Grundlegende unbeaufsichtigte Fedora 31 Kickstart-Installation im Textmodus
  • Grundlegende unbeaufsichtigte CentOS 7 Kickstart-Installation im Textmodus
  • Grundlegende unbeaufsichtigte CentOS 8 Kickstart-Installation im Textmodus

Außerdem installiert es alle erforderlichen Kernel-Images, die für das ordnungsgemäße Booten der Remote-PXE-Clients benötigt werden.

Apache Webserver - Mit sehr wenig Vorabkonfiguration wird er verwendet, um ein lokal zugängliches servergeneriertes Verzeichnis mit allen RPM-Paketen zu erstellen.

Das lokale Mirror wird die gleiche Verzeichnisstruktur wie öffentlich verfügbare Mirrors nachahmen.

Diese sind lokal erreichbar unter: (Ersetzen Sie hostname.localdomain durch Ihre eigene Adresse)

Kickstart-Dateien - Diese Rolle installiert CentOS7/8 & Fedora 31 unbeaufsichtigte Installation Anaconda Kickstart-Dateien aus Vorlagen. Diese werden in einem Kickstart-Verzeichnis im Wurzelverzeichnis des Webservers abgelegt und sind für alle Clients zugänglich.

Zusätzliche Hinweise

Beim Erstellen einer neuen VM in VirtualBox oder KVM sollten mindestens 2 GB RAM für den Gast zugewiesen werden. Der Installationsprozess von CentOS wird höchstwahrscheinlich fehlschlagen, wenn weniger als das verwendet wird. Die RAM-Menge kann nach einer erfolgreichen Installation reduziert werden.

Es wird empfohlen, die Kickstart-Konfigurationsvorlagen zu überprüfen und anzupassen. In ihrer aktuellen Form sind sie sehr einfach. Alle gehen von Folgendem aus:

  • Automatische Partitionierung mit LVM
  • SELinux deaktiviert
  • Firewall deaktiviert
  • Minimale Softwareauswahl
  • Root-Login erlaubt
  • Ein einzelner nicht-root Administrator Benutzer
  • DHCP-Client-Netzwerkkonfiguration

Die Idee, so wenig wie möglich mit der Anaconda- und Kickstart-Installation zu tun, ist, sich auf die Anpassung der Konfiguration nach der Installation zu verlassen.

Anforderungen

Apache

Eine Standardinstallation des Apache-Webservers ist erforderlich, damit der Kickstart-Prozess lokal auf die Installationspakete zugreifen kann.

Eine einfache Apache-Rolle kann von Galaxy installiert werden:

ansible-galaxy install mariuszczyz.centos_apache

DHCPd

Ein funktionierender lokaler DHCP-Dienst.

Alternativ kann ein dedizierter DHCP-Server auf dem PXE-Boot-Server eingerichtet werden, indem diese Rolle verwendet wird: CentOS & Fedora DHCP Server Installation und Konfiguration Ansible-Rolle.

Betriebssystem-Installations-ISO-Bilder

Diese Rolle geht davon aus, dass sich die ISO-Images für die Betriebssysteminstallation im Verzeichnis /isos/ befinden. Lassen Sie es so oder ändern Sie es in defaults/main.yml. Die ISO-Bilder müssen jedoch vor dem Ausführen dieser Rolle heruntergeladen werden. Andernfalls hat es keinen Zugriff auf alle Dateien, die zur ordnungsgemäßen Einrichtung der Pre-Boot-Umgebung benötigt werden. Der Download der ISOs wurde absichtlich aus dieser Rolle ausgeschlossen.

Kickstart-Dateien

Die minimalen Änderungen, die für die Funktion der Kickstart-Installationsdateien erforderlich sind:

rootpw --iscrypted PASSWORD_HASH - Root-Passwort-Hash

Anweisungen zum Erstellen eines Kickstart-Root-Passwort-Hashes

Führen Sie diesen Befehl in der CLI aus: openssl passwd -6

Verfügbare Algorithmusoptionen:

 -6                  SHA512-basierter Passwortalgorithmus
 -5                  SHA256-basierter Passwortalgorithmus
 -apr1               MD5-basierter Passwortalgorithmus, Apache-Variante
 -1                  MD5-basierter Passwortalgorithmus
 -aixmd5             AIX MD5-basierter Passwortalgorithmus
 -crypt              Standard Unix Passwortalgorithmus (Standard)

Es wird nach dem Passwort gefragt und der Hash ausgegeben:

Hinweis: kein echtes Passwort unten

Password:
Verifying - Password:
$6$gdGbs42fZoKUVwQH$eY2nId.oONxK9MneuM58Vg2NPEuftngWmwfK09YW4DQLs3Hcq5F5HEohDEcM.Ci3p8gQrVuygTfScim7MY6QI1

Die restlichen Einstellungen können optional an Ihre Bedürfnisse angepasst werden, wie Partitionierung, Zeitzone, zusätzliche Pakete usw.

Rollenvariablen

Variable Kommentar Beispiel
ISOS_PATH Verzeichnis, in dem ISO-Installationsbilder lokal gespeichert werden /isos
NAME Name des Betriebssystems fedora31
ISO_LOCATION Voller Pfad zum ISO-Bild /isos/CentOS-7-x86_64-Everything-1908.iso
MOUNT_POINT Voller Pfad, wo das ISO-Bild im lokalen Dateisystem gemountet werden soll /var/www/centos7
KICKSTART_HASHED_ROOT_PASSWORD Kickstart-Hash des Root-Passworts. Verwenden Sie „pwkickstart“ oder „openssl passwd -6“, um es zu generieren bEzYf1S49$yu
NON_ROOT_USER_NAME Nicht-root Admin-Benutzerkonto, das im neuen System erstellt werden soll mariusz
NON_ROOT_USER_PASSWORD Kickstart-Hash des Benutzerpassworts. Verwenden Sie „pwkickstart“ oder „openssl passwd -6“, um es zu generieren bEzYf1S49$yu
TIMEZONE Lokale Zeitzone America/Chicago
NTP_SERVERS Netzwerkzeitserver. Lokal oder öffentlich. ntp.localdomain
FEDORA_HOSTNAME Standard-Hostname für den neuen Fedora-Server fedora31.localdomain
FEDORA_NETWORK_INSTALLATION_URL Hierher wird Anaconda die Fedora-Pakete abrufen http://mirror.steadfastnet.com/fedora/releases/31/Everything/x86_64/os/
CENTOS7_HOSTNAME Standard-Hostname für den neuen Fedora-Server centos7.localdomain
CENTOS7_NETWORK_INSTALLATION_URL Hierher wird Anaconda die CentOS-Pakete abrufen http://192.168.1.109/centos7
CENTOS8_HOSTNAME Standard-Hostname für den neuen Fedora-Server centos8.localdomain
CENTOS8_BASE_OS_URL CentOS 8 BaseOS-Pakete Repository-URL http://mirror.steadfastnet.com/centos/8/BaseOS/x86_64/os/
CENTOS8_APPSTREAM_REPO_URL CentOS 8 AppStream-Pakete Repository-URL http://mirror.steadfastnet.com/centos/8/AppStream/x86_64/kickstart/

Abhängigkeiten

mariuszczyz.centos_apache
mariuszczyz.centos_dhcpd

Installieren Sie die Abhängigkeiten aus Ansible Galaxy mit requirements.yml

# Installation von Ansible Galaxy
- src: mariuszczyz.centos_apache
- src: mariuszczyz.centos_dhcpd

Beispiel-Playbook

Manuell

Laden Sie diese Rolle manuell von Ansible Galaxy herunter:

ansible-galaxy install mariuszczyz.centos_pxe

Nicht manuell

Galaxy

Oder schließen Sie diese Rolle von Ansible Galaxy über requirements.yml ein:

# requirements.yml
# Installation von Ansible Galaxy
- src: mariuszczyz.centos_pxe

Github-Option

# requirements.yml
# Installation aus dem Github-Repository
- src: https://www.github.com/mariuszczyz/centos_pxe

Führen Sie dann dies aus, um alle Abhängigkeiten von Ansible Galaxy zu installieren:

ansible-galaxy install -r requirements.yml

Ausführen

Wenn Sie diese Rolle einzeln ausführen möchten, erstellen Sie eine neue Datei: playbook.yml (nennen Sie sie wie gewünscht) mit folgendem Inhalt:

- hosts: servers
  user: IHRE BENUTZERNAME
  become: True

  roles:
    - { role: mariuszczyz.centos_pxe, tags: ['centos_pxe'] }

Führen Sie es aus:

ansible-playbook -i hosts playbook.yml

Lizenz

BSD

Autoreninformationen

Autor: Mariusz Czyz
Datum: 12/2019
mariuszczyz.com

Über das Projekt

CentOS 7/8 and Fedora PXE Boot Server Role

Installieren
ansible-galaxy install mariuszczyz.centos_pxe
GitHub Repository
Lizenz
Unknown
Downloads
117
Besitzer