spis treści
w artykule udostępnię listę przykładowych poleceń RHEL/CentOS 8 Kickstart, których możesz użyć do automatyzacji instalacji dla Red Hat i CentOS. Nie omówiłem %pre
I %post
etapu instalacji w tym artykule, ponieważ może to tylko wydłużyć ten już długi artykuł. Chociaż postaram się opisać najczęściej używane polecenia kickstart w środowisku produkcyjnym w czasie rzeczywistym.
Kickstart Generator
możesz użyć oficjalnego narzędzia Red Hat Kickstart Generator, aby utworzyć plik kickstart, aby zautomatyzować instalację.
Po prostu postępuj zgodnie z opcjami wyświetlanymi na ekranie, a otrzymasz przykładowy plik kickstartu według własnego wyboru.
walidator Kickstartu
przed rozpoczęciem instalacji za pomocą pliku kickstartu zaleca się sprawdzenie zawartości pliku konfiguracyjnego Kickstartu. Zainstaluj pykickstart
aby zainstalować ksvalidator
narzędzie
# dnf -y install pykickstart
aby zweryfikować plik kickstartu, podaj ścieżkę bezwzględną i plik kickstartu za pomocą ksvalidator
:
# ksvalidator kickstart.conf
poniżej znajduje się lista poleceń Kickstart, które możesz ręcznie dodać i utworzyć własny plik Kickstart, aby zautomatyzować cały proces instalacji Red Hat / CentOS. Na koniec artykułu załączam przykładowy plik konfiguracyjny kickstartu, którego użyłem do zainstalowania maszyny Wirtualnej w Oracle VirtualBox
Dodaj komentarz (Opcjonalnie)
możesz dodać komentarz, aby zidentyfikować Kickstart jak dodałem do identyfikacji. To opcjonalne i możesz zignorować:
# version=RHEL8# RHEL/CentOS 8 Kickstart Example
wykonaj sprawdzenie mediów
Możesz sprawdzić media przed rozpoczęciem instalacji
polecenie Kickstart – mediacheck
To polecenie wymusza na programie instalacyjnym sprawdzenie mediów przed rozpoczęciem instalacji.
To polecenie wymaga, aby instalacje były obsługiwane, więc jest domyślnie wyłączone.
składnia:
mediacheck
tryb instalacji
aby instalacja była w pełni automatyczna, należy podać jeden z dostępnych trybów w pliku Kickstart:
polecenie Kickstart – graficzne
- wykonuje instalację Kickstartu w trybie graficznym.
- możesz również połączyć go z
--non-interactive
, który wykonuje instalację w całkowicie nieinteraktywnym trybie. - ten tryb zakończy instalację, gdy wymagana jest interakcja z użytkownikiem.
polecenie Kickstart – tekst
- wykonuje instalację Kickstartu w trybie tekstowym.
- możesz również połączyć go z
--non-interactive
, który wykonuje instalację w całkowicie nieinteraktywnym trybie. - ten tryb zakończy instalację, gdy wymagana jest interakcja z użytkownikiem.
polecenie Kickstart – cmdline
- wykonuje instalację w całkowicie nieinteraktywnym trybie wiersza poleceń.
- każdy monit o interakcję zatrzymuje instalację.
- to polecenie nie ma opcji.
w moim przykładzie RHEL/CentOS 8 Kickstart wybieram text
jako preferowaną metodę instalacji
# Install in text modetext
Utwórz dodatkowe repo
Możesz skonfigurować dodatkowe repozytoria yum, które mogą być używane jako źródła do instalacji pakietów.
polecenie Kickstart – repo
- domyślnie wszystkie dostarczone repozytoria są automatycznie tworzone i montowane na
/run/install/repo/<repo_name>
- możesz dodać wiele
repo
wiersze.
składnia:
repo --name=repoid
Here,
-
--baseurl=
The URL to the repository. -
--mirrorlist=
The URL pointing at a list of mirrors for the repository. -
--metalink=
The URL with metalink for the repository.
aby uzyskać pełną listę obsługiwanych opcji, sprawdź przewodnik Red Hat Dla zaawansowanej instalacji
w moim przykładzie RHEL/CentOS 8 Kickstart stworzę równieżAppStream
repo, który jest częścią obrazu ISO.
# Create additional repo during installationrepo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
metoda instalacji
istnieją różne metody instalacji do wyboru, takie jakcdrom
harddrive
hmc
nfs
liveimg
luburl
.
najczęściej używamyurl
cdrom
Infs
w środowisku produkcyjnym, więc wyjaśnię tę metodę instalacji:
polecenie Kickstart – NFS
wykonuje instalację z określonego serwera NFS.
składnia:
nfs OPTIONS
opcje:
-
--server=
serwer, z którego ma zostać zainstalowany (Nazwa hosta lub IP). -
--dir=
katalog zawierający katalog variant drzewa instalacji. -
--opts=
opcje montowania używane do montażu eksportu NFS. (opcjonalnie)
polecenie Kickstart – url
wykonuje instalację z obrazu drzewa instalacji na zdalnym serwerze za pomocą FTP, HTTP lub HTTPS.
składnia:
url --url=FROM
obowiązkowe opcje:
-
--url=
Lokalizacja, z której chcesz zainstalować. Obsługiwane protokoły to HTTP, HTTPS, FTP i file.
opcje opcjonalne:
-
--proxy=
określ serwer proxy HTTP, HTTPS lub FTP, który będzie używany podczas instalacji.
aby uzyskać pełną listę obsługiwanych opcji, sprawdź przewodnik Red Hat dla zaawansowanej instalacji
polecenie Kickstart – cdrom
- wykonuje instalację z pierwszego napędu optycznego w systemie.
- to polecenie nie ma opcji.
w moim przykładzie RHEL/CentOS 8 Kickstart użyję NFS jako metody instalacji
# Installation medianfs --server=10.10.10.12 --dir=/images/
Układy klawiatury
- ustawia jeden lub więcej dostępnych układów klawiatury dla systemu.
- wszystkie dostępne układy można wyświetlić na stronie podręcznika xkeyboard-config(7) pod Layouts.
składnia:
keyboard --vckeymap|--xlayouts OPTIONS
opcje:
-
--vckeymap=
Określ klawisz VConsole, który powinien być używany. Poprawne nazwy odpowiadają liście plików w katalogu/usr/lib/kbd/keymaps/xkb/
, bez rozszerzenia.map.gz
. -
--xlayouts=
określa listę układów X, które powinny być używane jako lista rozdzielana przecinkami bez spacji. Akceptuje wartości w tym samym formacie co setxkbmap (1), albo w formacie układu (np. cz), albo w formacie układu (variant) (np. cz (qwerty)).
w moim przykładzie RHEL/CentOS 8 Kickstart użyję English US
jako układu klawiatury
# Keyboard layoutskeyboard --vckeymap=us --xlayouts='us'
Ustaw język systemowy
polecenie Kickstart – lang
- ustawia język, który ma być używany podczas instalacji i domyślny język, który ma być używany w zainstalowanym systemie.
- możesz użyć
locale -a | grep _
lublocalectl list-locales
, aby uzyskać listę obsługiwanych lokalizacji.
składnia:
lang language
w moim przykładzie RHEL/CentOS 8 Kickstart użyjęen_US.UTF-8
# System languagelang en_US.UTF-8
informacje o sieci
polecenie Kickstart – sieć
- konfiguruje informacje o sieci dla systemu docelowego i aktywuje urządzenia sieciowe w środowisku instalacyjnym.
- urządzenie określone w pierwszym poleceniu sieciowym jest aktywowane automatycznie.
- Aktywacja urządzenia może być również jawnie wymagana przez opcję –activate.
Syntax:
network OPTIONS
Options:
-
--activate
activate this device in the installation environment. -
--no-activate
do not activate this device in the installation environment. -
--nodefroute
prevent the device from using the default route. -
--bootproto=
One of dhcp, bootp, ibft, or static. The default option is dhcp; -
--noipv4
Wyłącz IPv4 na tym urządzeniu. -
--noipv6
Wyłącz IPv6 na tym urządzeniu.
w moim przykładzie RHEL/CentOS 8 Kickstart przypisuję sieć do 2 interfejsóweth0
Ieth1
# Network informationnetwork --bootproto=static --ip=10.10.10.15 --netmask=255.255.255.0 --gateway=10.10.10.1 --nameserver=8.8.8.8 --device=eth0 network --bootproto=dhcp --device=eth0 --activatenetwork --bootproto=dhcp --device=eth1 --onboot=off --activatenetwork --hostname=centos8-4.example.com
Przypisz hasło roota
- ustawia hasło roota systemu na argument hasła.aby utworzyć zaszyfrowane hasło, możesz użyć Pythona:
$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
- aby utworzyć zaszyfrowane hasło, możesz użyć Pythona:
$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
- to generuje hash twojego hasła zgodny z sha512 przy użyciu losowej soli.
składnia:
rootpw password
opcje:
-
--iscrypted
jeśli ta opcja jest obecna, przyjmuje się, że argument hasła jest już zaszyfrowany. -
--plaintext
jeśli ta opcja jest obecna, przyjmuje się, że argument hasła jest w postaci zwykłego tekstu. -
--lock
jeśli ta opcja jest obecna, konto root jest domyślnie zablokowane. Oznacza to, że użytkownik root nie będzie mógł zalogować się z konsoli.
w moim przykładzie RHEL/CentOS 8 Kickstart utworzyłem już i przypisałem hasło roota
# Root passwordrootpw --iscrypted $6$w7El/FYx9mbTG6x9$Te.Yg6dq0TsQwGpdSjeDGSw4J9ZBAkLXzT9ODMV7I7lHvX3n5.9PCS4jIkS2GbVLZOpVRLvrua3wwbwA.cfWX.
Uruchom agenta konfiguracji przy pierwszym uruchomieniu
polecenie Kickstart – firstboot
- określa, czy aplikacja Początkowa konfiguracja uruchamia przy pierwszym uruchomieniu systemu.
- jeśli jest włączona, należy zainstalować pakiet początkowy.
- jeśli nie podano, ta opcja jest domyślnie wyłączona.
składnia:
firstboot OPTIONS
opcje:
-
--enable
lub--enabled
: Wstępna konfiguracja jest uruchamiana przy pierwszym uruchomieniu systemu. -
--disable
lub--disabled
: Początkowa konfiguracja nie jest uruchamiana przy pierwszym uruchomieniu systemu. -
--reconfig
:Włącz początkową konfigurację, aby uruchomić się podczas rozruchu w trybie rekonfiguracji.
w moim przykładzie RHEL/CentOS 8 Kickstart włączęfirstboot
# Run the Setup Agent on first bootfirstboot --enable
Configure X Window System
możesz zainstalować i skonfigurować X Window System lub wyłączyć go
polecenie Kickstart – xconfig
- jeśli zainstalujesz menedżera wyświetlania wśród opcji wyboru pakietu, ten pakiet tworzy konfigurację x, A zainstalowany system domyślnie ma wartość
graphical.target
. - , który nadpisuje efekt opcji
skipx
. - aby skonfigurować System X Window użyj „
xconfig
„
polecenie Kickstart – skipx
aby uniknąć konfiguracji systemu X Window użyj skipx
w moim RHEL/CentOS 8 kickstart przykład wyłączę System X Windows
# Do not configure the X Window Systemskipx
Włącz lub Wyłącz usługi systemowe
polecenia Kickstart – usługi
- modyfikuje domyślny zestaw usług, które będą działać pod domyślnym celem systemd.
- lista wyłączonych usług jest przetwarzana przed listą włączonych usług.
- dlatego, jeśli usługa pojawi się na obu listach, zostanie włączona.
składnia:
services
w moim przykładzie RHEL/CentOS 8 włączę chronyd
usługa
# System servicesservices --enabled="chronyd"
Ustaw strefę czasową
polecenie kickstart – Strefa czasowa
- ustawia systemową strefę czasową.
- możesz użyć
timedatectl list-timezones
aby uzyskać listę obsługiwanych wartości strefy czasowej
składnia:
timezone timezone
opcje opcjonalne:
-
--utc
jeśli istnieje, system zakłada, że zegar sprzętowy jest ustawiony na czas UTC (Greenwich Mean). -
--nontp
wyłącz automatyczne uruchamianie usługi NTP. -
--ntpservers=
Określ listę serwerów NTP, które mają być używane jako lista oddzielona przecinkami bez spacji.
w moim przykładzie RHEL/CentOS 8 Kickstart użyję Asia/Kolkata
jako mojej strefy czasowej
# System timezonetimezone Asia/Kolkata --isUtc
Uchwyt reboot węzła
polecenie Kickstart – reboot
-
reboot
” instruuje program instalacyjny do ponownego uruchomienia po pomyślnym zakończeniu instalacji (bez argumentów). - normalnie Kickstart wyświetla komunikat i czeka na naciśnięcie klawisza przed ponownym uruchomieniem.
- Określ reboot, aby zautomatyzować instalację
w moim przykładzie RHEL/CentOS 8 Kickstart użyję reboot, ponieważ planuję zautomatyzować całą instalację
# Reboot the nodereboot
Utwórz partycję dysku
możesz użyć różnych zmiennych do skonfigurowania układu dysku
polecenie kickstart – ignoredisk
- powoduje, że program instalacyjny ignoruje podane dyski.
- jest to przydatne, jeśli używasz automatycznego partycjonowania i chcesz mieć pewność, że niektóre dyski są ignorowane.
w moim przykładzie RHEL/CentOS 8 Kickstart chcę użyć tylko sda
dysku do instalacji
# Choose the disks to be usedignoredisk --only-use=sda
polecenie Kickstart – clearpart
- usuwa partycje z systemu, przed utworzeniem nowych partycji.
- domyślnie nie są usuwane żadne partycje.
w moim przykładzie CentOS/RHEL 8 usunie wszystkie istniejące partycje:
# Partition clearing informationclearpart --all
polecenie Kickstart – część lub partycja
- tworzy partycję w systemie.
- ten temat jest bardzo obszerny i planuję podać różne przykłady układu partycji, aby zainstalować Linuksa
w moim przykładowym przykładzie kickstartu zainstaluję CentOS 8 za pomocą Logical Volume Manager. Tutaj stworzę
- główny wolumin logiczny
- partycja wymiany
- partycja rozruchowa
# Disk partitioning informationpart pv.409 --fstype="lvmpv" --ondisk=sda --size=14847part /boot --fstype="ext4" --ondisk=sda --size=512volgroup rhel --pesize=4096 pv.409logvol swap --fstype="swap" --size=953 --name=swap --vgname=rhellogvol / --fstype="ext4" --size=13887 --name=root --vgname=rhel
utwórz nowego użytkownika (stałego)
Możesz również utworzyć nowego Użytkownika za pomocą kickstartu, który będzie również obecny po instalacji
polecenie Kickstart – użytkownik
użyj user
aby utworzyć nowego Użytkownika za pomocą składni kickstart
:
user --name=username
w moim przykładzie RHEL/CentOS 8 stworzę jednego użytkownikadeepak
# Create useruser --name=deepak --shell=/bin/bash --homedir=/home/deepak --iscrypted --password=$6$uSejt/TeWMJVQ/F8$/oFsIanDHS/5b9ssy7gZbQwNkORgRjsQIw4JyFjlTWDh9TVsEXWEy2APpCUNTHipOOEe..ubg3qBZOwpaPtsB.
Utwórz użytkownika (tylko do instalacji)
możesz utworzyć użytkownika tylko do monitorowania procesu instalacji. Po zakończeniu instalacji Ten użytkownik zostanie usunięty z węzła
polecenie Kickstart – sshpw
- podczas instalacji możesz wchodzić w interakcje z programem instalacyjnym i monitorować jego postęp przez połączenie SSH
- użyj polecenia Sshpw, aby utworzyć tymczasowe konta, za pomocą których można się zalogować.
- każda instancja polecenia tworzy osobne konto, które istnieje tylko w środowisku instalacyjnym.
- te konta nie są przenoszone do zainstalowanego systemu.
składnia:
sshpw --username=name password
w moim przykładzie kickstartu CentOS/RHEL 8 tworzę użytkownikaadmin
aby monitorować instalację:
sshpw --username=admin --iscrypted --password=$6$PMLcSXd.w5pBvC.u$D06Ip60h/iWExxQ09gMi5aAbFaDK.NtLOgOZ56uU6kw.uUy/9/Mmw6vYBjs8Hw50y0Rx4m0yMdH0Vt5EUEsRI.
Utwórz nową grupę
Możesz również utworzyć nową grupę za pomocą kickstartu
polecenie Kickstart – Grupa
- jeśli grupa o podanej nazwie lub GID już istnieje, polecenie to nie powiedzie się.
- polecenie user może być użyte do utworzenia nowej grupy dla nowo utworzonego użytkownika.
- tworzy nową grupę użytkowników w systemie.
składnia:
group --name=name
obowiązkowe opcje
-
--name=
podaje nazwę grupy.
Włącz lub wyłącz zaporę
możesz włączyć lub wyłączyć zaporę podczas etapu instalacji
polecenie Kickstart – firewall
określa konfigurację zapory dla zainstalowanego systemu.
składnia:
firewall --enabled|--disabled
tutaj,
-
--enabled
lub--enable
– Odrzuć połączenia przychodzące, które nie są w odpowiedzi na żądania wychodzące, takie jak odpowiedzi DNS lub żądania DHCP. -
--disabled
lub--disable
– nie Konfiguruj żadnych reguł iptables.
Włącz moduł
Możesz również włączyć moduł za pomocą kickstartu
polecenie Kickstart – moduł
Użyj tego polecenia, aby włączyć strumień modułu pakietu w skrypcie kickstart.
składnia:
module --name=NAME
obowiązkowe opcje
-
--name=
Określa nazwę modułu, który ma być włączony. Zastąp nazwę rzeczywistą nazwą.
Włącz lub wyłącz SELinux
Możesz również włączyć lub wyłączyć selinux za pomocą kickstartu
polecenie Kickstart – selinux
- ustawia stan SELinux na zainstalowanym systemie.
- domyślna Polityka SELinux jest wymuszana.
składnia:
selinux
opcje:
-
--enforcing
włącza SELinux z wymuszaniem domyślnej polityki docelowej. -
--permissive
wyświetla ostrzeżenia oparte na polityce SELinux, ale w rzeczywistości nie wymusza tej polityki. -
--disabled
wyłącza SELinux całkowicie w systemie.
wybór pakietów
Kickstart używa sekcji uruchamianych przez polecenie %packages do wyboru pakietów do zainstalowania.
polecenie Kickstart – %packages
- w ten sposób można instalować pakiety, grupy, środowiska, strumienie modułów i profile modułów.
- użyj polecenia %packages, aby rozpocząć sekcję Kickstart, która opisuje pakiety oprogramowania do zainstalowania.
- sekcja %packages musi kończyć się poleceniem %end.
określanie grup
- Określ grupy, jeden wpis do linii, zaczynając od symbolu@, a następnie pełną nazwę grupy lub identyfikator grupy
- możesz uzyskać listę obsługiwanych opcji z listy „
dnf grouplist
„
%packages@X Window System@Desktop@Sound and Video%end
określanie poszczególnych pakietów
- określ poszczególne pakiety według nazwy, jednego wpisu do linii. W nazwach pakietów można używać znaku gwiazdki (*) jako symbolu wieloznacznego. Na przykład:
%packagessqlitecurlaspelldocbook*%end
In my RHEL/CentOS 8 kickstart example I have used „Virtualization Host
„
%packages@^Virtualization Hostkexec-tools%end
Enable or Disable Kdump
Kickstart command – %addon com_redhat_kdump
This command configures the kdump kernel crash dumping mechanism.
Syntax:
%addon com_redhat_kdump %end
Options:
-
--enable
Enable kdump on the installed system. -
--disable
Disable kdump on the installed system. -
--reserve-mb=
ilość pamięci, którą chcesz zarezerwować dla kdump, w MiB
w moim przykładzie RHEL/CentOS 8 Kickstart użyłemauto
, aby automatycznie zarezerwować wymaganą pamięć dla kdump:
%addon com_redhat_kdump --enable --reserve-mb='auto'%end
zastosuj politykę haseł
polecenie Kickstart – pwpolicy
- użyj tego polecenia, aby wymusić niestandardową politykę haseł podczas instalacji.
- zasada wymaga utworzenia haseł dla konta głównego, użytkowników lub użytkowników luks.
- czynniki takie jak długość i Siła hasła decydują o ważności hasła.
lista obsługiwanych opcji znajduje się w Przewodniku Red Hat do zaawansowanej instalacji
w moim przykładzie RHEL / CentOS 8 Kickstart, którego użyłem poniżej polityka haseł:
%anacondapwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notemptypwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyokpwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty%end
RHEL/CentOS 8 Kickstart Example File
Below is one sample kickstart file example from my server which I use to install Virtual Machine on Oracle VirtualBox
Red_Hat_CentOS_8_Kickstart_Example