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)
- http://hostname.localdomain/fedora31
- http://hostname.localdomain/centos7
- http://hostname.localdomain/centos8
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
CentOS 7/8 and Fedora PXE Boot Server Role
ansible-galaxy install mariuszczyz.centos_pxe