Я смотрел вокруг и еще не видел примера, чтобы кто-нибудь использовал логику для определения пакетов / групп пакетов для выбора параметров ниже %packages
. Я пытаюсь установить пакеты для кикстарта на основе критериев, обнаруженных в %pre
, например:
%pre
if [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = 'Dell Inc.' ]; then
echo 'srvadmin-all'
elif [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = 'VMware, Inc.' ]; then
echo 'open-vm-tools'
fi
%end
Я никогда не видел примера условной логики в %packages
раздел, но я думал о печати всего вывода в файл, на который ссылается %include
заявление, но у меня были проблемы с %include
под %packages
начиная с RHEL7.
Мне любопытно узнать, есть ли какие-либо другие методы, которые кто-то успешно использует в этом направлении.
Для этого вы можете использовать возможность кикстарта включать файлы. Используйте ваш %pre
раздел, чтобы записать файл, содержащий нужные вам пакеты, а затем включить файл в %packages
раздел.
Например:
%pre --interpreter=/bin/bash
touch /tmp/packages
if [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = "Dell Inc." ]; then
echo 'srvadmin-all' >> /tmp/packages
elif [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = "VMware, Inc." ]; then
echo 'open-vm-tools' >> /tmp/packages
fi
%end
%packages
@core
@base
chrony
%include /tmp/packages
%end