mariuszczyz.centos_pxe

CentOS 7/8 i Fedora PXE Boot - Automatyczna Instalacja i Konfiguracja Systemu Operacyjnego

Ta rola konfiguruje podstawową strukturę dla lokalnego środowiska PXE, pozwalającego na przeprowadzenie automatycznej instalacji CentOS 7, CentOS 8, Fedory 31 i innych (z własną konfiguracją).

Instaluje i konfiguruje następujące elementy:

ISOs instalacyjne i lokalne repozytorium RPM - jeśli obrazy instalacyjne ISO nie znajdują się lokalnie, zostaną pobrane i zamontowane. Po zamontowaniu ich zawartość zostanie użyta do wygenerowania lokalnego lustra RPM, używanego podczas procesu instalacji. Lustro może być również wykorzystywane później do dodatkowej instalacji pakietów RPM.

Serwer TFTP & PXE - potrzebujemy tego, aby umożliwić klientom w sieci rozruch przez PXE.

Ta rola wstępnie konfiguruje usługę PXE z następującymi opcjami:

  • Rozruch z lokalnego dysku. Nie instaluj nic
  • Ręczna instalacja Fedory 31 z interfejsem graficznym
  • Ręczna instalacja CentOS 7 z interfejsem graficznym
  • Ręczna instalacja CentOS 8 z interfejsem graficznym
  • Podstawowa automatyczna instalacja Fedory 31 Kickstart w trybie tekstowym
  • Podstawowa automatyczna instalacja CentOS 7 Kickstart w trybie tekstowym
  • Podstawowa automatyczna instalacja CentOS 8 Kickstart w trybie tekstowym

Instaluje również wszystkie niezbędne obrazy jądra potrzebne do prawidłowego uruchomienia zdalnych klientów PXE.

Serwer WWW Apache - z niewielką wstępną konfiguracją zostanie użyty do stworzenia lokalnie dostępnych list katalogowych generowanych przez serwer wszystkich pakietów RPM.

Lokalne lustro będzie naśladować tę samą strukturę katalogów, co publicznie dostępne lustra.

Będą dostępne lokalnie pod adresem: (zamień hostname.localdomain na własny adres)

Pliki Kickstart - ta rola wdraża automatyczną instalację CentOS7/8 i Fedory 31 za pomocą plików Kickstart Anacondy z szablonów. Są one umieszczane w katalogu kickstart w katalogu głównym serwera WWW i są dostępne dla wszystkich klientów.

Dodatkowe Uwagi

Podczas tworzenia nowej maszyny wirtualnej w VirtualBox lub KVM przydziel minimum 2 GB pamięci RAM dla systemu gościa. Proces instalacji CentOS najprawdopodobniej się nie powiedzie, jeśli użyjesz mniej pamięci. Ilość pamięci można zmniejszyć po pomyślnej instalacji.

Zaleca się, aby użytkownik końcowy zapoznał się z szablonami konfiguracji Kickstart i dostosował je do własnych potrzeb. W obecnej formie są one bardzo podstawowe. Wszystkie z nich zakładają:

  • automatyczne partycjonowanie z LVM
  • wyłączony SELinux
  • wyłączony firewall
  • minimalny wybór oprogramowania
  • dozwolony dostęp root
  • jeden nie-rootowy użytkownik administrator
  • konfiguracja sieci DHCP

Ideą minimalnego działania z instalacją Anacondy i Kickstart jest opieranie się na post-instalacyjnej konfiguracji dostosowującej.

Wymagania

Apache

Standardowa instalacja serwera WWW Apache jest wymagana, aby proces Kickstart mógł uzyskać dostęp do lokalnych pakietów instalacyjnych.

Możesz zainstalować prostą rolę Apache z Galaxy:

ansible-galaxy install mariuszczyz.centos_apache

DHCPd

Działająca lokalna usługa DHCP.

Alternatywnie, można skonfigurować dedykowany serwer DHCP na serwerze PXE przez użycie tej roli: Rola Ansible do instalacji i konfiguracji serwera DHCP CentOS i Fedora.

Obrazy ISO Instalacji Systemu Operacyjnego

Ta rola zakłada, że obrazy ISO instalacji systemu operacyjnego są w /isos/. Możesz je zostawić lub zmienić to w pliku defaults/main.yml. Jednak obrazy ISO muszą być wcześniej pobrane przed uruchomieniem tej roli. W przeciwnym razie, nie będzie miała dostępu do wszystkich plików potrzebnych do prawidłowego ustawienia środowiska przedrozruchowego. Zadanie pobierania ISO zostało celowo pominięte w tej roli.

Pliki Kickstart

Minimalne zmiany potrzebne do działania plików instalacji Kickstart:

rootpw --iscrypted PASSWORD_HASH - hash hasła root

Instrukcje dotyczące tworzenia hasła roota w formie hasha Kickstart

Uruchom to polecenie w CLI: openssl passwd -6

Dostępne opcje algorytmu:

 -6                  Algorytm oparty na SHA512
 -5                  Algorytm oparty na SHA256
 -apr1               Algorytm haszowania MD5, wariant Apache
 -1                  Algorytm haszowania MD5
 -aixmd5             Algorytm haszowania MD5 AIX
 -crypt              Standardowy algorytm haszowania Unix (domyślny)

To polecenie poprosi o hasło i wyświetli hash:

Uwaga: poniżej nie ma prawdziwego hasła

Hasło:
Weryfikacja - Hasło:
$6$gdGbs42fZoKUVwQH$eY2nId.oONxK9MneuM58Vg2NPEuftngWmwfK09YW4DQLs3Hcq5F5HEohDEcM.Ci3p8gQrVuygTfScim7MY6QI1

Pozostałe ustawienia można opcjonalnie dostosować do własnych potrzeb, takich jak partycjonowanie, strefa czasowa, dodatkowe pakiety itp.

Zmienne Roli

Zmienna Komentarz Przykład
ISOS_PATH Katalog, w którym obrazy instalacyjne ISO będą przechowywane lokalnie /isos
NAME Nazwa systemu operacyjnego fedora31
ISO_LOCATION Pełna ścieżka do obrazu ISO /isos/CentOS-7-x86_64-Everything-1908.iso
MOUNT_POINT Pełna ścieżka, gdzie obraz ISO powinien być zamontowany w lokalnym systemie plików /var/www/centos7
KICKSTART_HASHED_ROOT_PASSWORD Hashowane hasło root Kickstart. Użyj "pwkickstart" lub "openssl passwd -6", aby wygenerować bEzYf1S49$yu
NON_ROOT_USER_NAME Użytkownik administratora, który ma być utworzony w nowym systemie mariusz
NON_ROOT_USER_PASSWORD Hashowane hasło użytkownika Kickstart. Użyj "pwkickstart" lub "openssl passwd -6", aby wygenerować bEzYf1S49$yu
TIMEZONE Lokalna strefa czasowa America/Chicago
NTP_SERVERS Serwery czasu sieciowego. Lokalnie lub publicznie. ntp.localdomain
FEDORA_HOSTNAME Domyślna nazwa hosta dla nowego serwera Fedory fedora31.localdomain
FEDORA_NETWORK_INSTALLATION_URL To jest miejsce, z którego Anaconda pobierze paczki Fedory http://mirror.steadfastnet.com/fedora/releases/31/Everything/x86_64/os/
CENTOS7_HOSTNAME Domyślna nazwa hosta dla nowego serwera CentOS 7 centos7.localdomain
CENTOS7_NETWORK_INSTALLATION_URL To jest miejsce, z którego Anaconda pobierze paczki CentOS http://192.168.1.109/centos7
CENTOS8_HOSTNAME Domyślna nazwa hosta dla nowego serwera CentOS 8 centos8.localdomain
CENTOS8_BASE_OS_URL URL repozytorium pakietów CentOS 8 BaseOS http://mirror.steadfastnet.com/centos/8/BaseOS/x86_64/os/
CENTOS8_APPSTREAM_REPO_URL URL repozytorium pakietów CentOS 8 AppStream http://mirror.steadfastnet.com/centos/8/AppStream/x86_64/kickstart/

Zależności

mariuszczyz.centos_apache
mariuszczyz.centos_dhcpd

Zainstaluj zależności z Ansible Galaxy za pomocą requirements.yml

# Instalacja z Ansible Galaxy
- src: mariuszczyz.centos_apache
- src: mariuszczyz.centos_dhcpd

Przykład Playbooka

Ręcznie

Pobierz tę rolę z Ansible Galaxy ręcznie:

ansible-galaxy install mariuszczyz.centos_pxe

Nie ręcznie

Galaxy

Lub dołącz tę rolę z Ansible Galaxy za pomocą requirements.yml

# requirements.yml
# Instalacja z Ansible Galaxy
- src: mariuszczyz.centos_pxe

Opcja z GitHub

# requirements.yml
# Instalacja z repozytorium GitHub
- src: https://www.github.com/mariuszczyz/centos_pxe

Następnie uruchom to, aby zainstalować wszystkie zależności z Ansible Galaxy:

ansible-galaxy install -r requirements.yml

Uruchom to

Jeśli chcesz uruchomić tę rolę indywidualnie, utwórz nowy plik: playbook.yml (nazwa nie ma znaczenia) z następującą zawartością:

- hosts: servers
  user: TWOJ UŻYTKOWNIK
  become: True

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

Uruchom to:

ansible-playbook -i hosts playbook.yml

Licencja

BSD

Informacje o autorze

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

O projekcie

CentOS 7/8 and Fedora PXE Boot Server Role

Zainstaluj
ansible-galaxy install mariuszczyz.centos_pxe
Licencja
Unknown
Pobrania
117
Właściciel