Не сомневаюсь, что благородные доны — администраторы Linux — стремятся максимально минимизировать набор устанавливаемых на сервер пакетов. Это экономичнее, безопаснее и вселяет в администратора ощущение полного контроля и понимания происходящих процессов.
Поэтому типичный сценарий начальной установки операционной системы выглядит как выбор минимального варианта, а далее — наполнение необходимыми пакетами.
Однако, минимальный вариант, предлагаемый установщиком CentOS, оказывается не совсем минимальным. Есть способ уменьшить размер начальной установки системы стандартным документированным способом.
Используя операционную систему CentOS в работе рано или поздно открываешь для себя автоматизацию ее установки при помощи механизма Kickstart. Я давно уже не инсталлирую CentOS стандартным установщиком. За время работы накопился достаточный арсенал настроечных kickstart файлов, позволяющих в автоматическом режиме разворачивать системы, в том числе на LVM, крипто разделах, с минимальным GUI и т.п.
И вот, в каком-то из релизов 7-ой версии RedHat добавила удивительную опцию в Kickstart, позволяющую еще более минимизировать образ устанавливаемой системы:
--nocore
Disables installation of the Core package group which is otherwise always installed by default. Disabling the Core package group should be only used for creating lightweight containers; installing a desktop or server system with --nocore will result in an unusable system.
RedHat честно предупреждает о возможных последствиях применения этой опции, однако годы использования мною в реальном окружении подтверждает ее стабильность и применимость.
Ниже представлен пример kickstart файла минимальнейшей установки. Отважные могут исключить из него yum. Будьте готовы к сюрпризам:
install
text
url --url="http://server/centos/7/os/x86_64/"
eula --agreed
firstboot --disable
keyboard --vckeymap=us --xlayouts='us'
lang en_US.UTF-8
timezone Africa/Abidjan
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
%addon com_redhat_kdump --disable
%end
Хочу заметить, что CentOS/RedHat лояльнее Fedora в интерпретации опции. Последняя настолько сильно выхолостит систему, что потребуется повторная установка с добавлением жизненно важных утилит.
В качестве бонуса приведу «заклинание» по установке минимального графического окружения в CentOS/RedHat (7-ой версии):
yum -y groupinstall x11
yum -y install gnome-classic-session
systemctl set-default graphical.target
Как минимальный образ операционной системы, так и минимальное графическое окружение опробовано мною и работает на реальных системах.