Nie mam wątpliwości, że szlachetni administratorzy Linuxa dążą do maksymalnego zminimalizowania zestawu pakietów instalowanych na serwerze. Jest to bardziej ekonomiczne, bezpieczniejsze i daje administratorowi poczucie pełnej kontroli oraz zrozumienia zachodzących procesów.
Dlatego typowy scenariusz wstępnej instalacji systemu operacyjnego polega na wyborze minimalnej wersji, a następnie na uzupełnieniu jej o niezbędne pakiety.

Jednak minimalna wersja oferowana przez instalator CentOS okazuje się nieco za mało minimalna. Istnieje sposób na zmniejszenie rozmiaru początkowej instalacji systemu w standardowy sposób opisany w dokumentacji.
Korzystając z systemu operacyjnego CentOS, prędzej czy później odkrywasz automatyzację jego instalacji za pomocą mechanizmu Kickstart. Od dawna nie instaluję CentOS przy użyciu standardowego instalatora. W ciągu mojej pracy zgromadziłem wystarczająco dużo plików konfiguracyjnych kickstart, które pozwalają na automatyczne uruchamianie systemów, w tym na LVM, sekcjach szyfrowych, z minimalnym GUI itd.
I oto, w jakiejś wersji siódmej RedHat dodał zaskakującą opcję do Kickstart, która umożliwia jeszcze większe zminimalizowanie obrazu instalowanego systemu:
—nocore
Dezaktywuje instalację grupy pakietów, która w przeciwnym razie jest zawsze instalowana domyślnie. Dezaktywacja grupy pakietów powinna być stosowana tylko do tworzenia lekkich kontenerów; instalacja systemu desktopowego lub serwera z —nocore spowoduje, że system stanie się nieużywalny. RedHat szczerze ostrzega przed możliwymi konsekwencjami stosowania tej opcji, jednak lata moje używanie jej w rzeczywistym środowisku potwierdzają jej stabilność i zastosowalność. Poniżej znajduje się przykład pliku kickstart dla minimalnej instalacji. Odważni mogą wykluczyć z niego yum. Przygotujcie się na niespodzianki:
install texturl --url="http://server/centos/7/os/x86_64/"eula --agreed firstboot --disablekeyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 timezone Africa/Abidjanauth --enableshadow --passalgo=sha512 rootpw --plaintext ***ignoredisk --only-use=sdazerombr bootloader --location=mbr clearpart --all --initlabelpart /boot/efi --fstype="efi" --size=100 --fsoptions="umask=0077,shortname=winnt" part / --fstype="ext4" --size=1 --grownetwork --bootproto=dhcp --hostname=localhost --onboot=on --activate#reboot poweroff%packages --nocore --nobase --excludedocs yum%enddon com_redhat_kdump --disable%end
Chcę zauważyć, że CentOS/RedHat jest bardziej wyrozumiały niż Fedora w interpretacji tej opcji. Ostatnia tak mocno wyblaknie system, że konieczna będzie ponowna instalacja z dodatkiem niezbędnych narzędzi.
install
text
url --url="http://server/centos/7/os/x86_64/"
eula --agreed
firstboot --disable
keyboard --vckeymap=us --xlayouts='us'
lang pl_PL.UTF-8
timezone Europe/Warsaw
auth --enableshadow --passalgo=sha512
rootpw --plaintext ***
ignoredisk --only-use=sda
zerombr
bootloader --location=mbr
clearpart --all --initlabel
part /boot/efi --fstype="efi" --size=100 --fsoptions="umask=0077,shortname=winnt"
part / --fstype="ext4" --size=1 --grow
network --bootproto=dhcp --hostname=localhost --onboot=on --activate
#reboot
poweroff
%packages --nocore --nobase --excludedocs
yum
%end
don com_redhat_kdump --disable
%end
Chcę zwrócić uwagę na to, że CentOS/RedHat jest bardziej tolerancyjny wobec Fedory w interpretacji tej opcji. Ostatni tak bardzo wyczyści system, że konieczna będzie ponowna instalacja z dodatkiem niezbędnych narzędzi.
Jako bonus podam "zaklęcie" na zainstalowanie minimalnego środowiska graficznego w CentOS/RedHat (wersja 7):
yum -y groupinstall x11
yum -y install gnome-classic-session
systemctl set-default graphical.target
Zarówno minimalny obraz systemu operacyjnego, jak i minimalne środowisko graficzne były przeze mnie testowane i działają na rzeczywistych systemach.
Źródło: habr.com
