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