Kickstart: можете ли вы определить% пакетов в%pre
Я искал вокруг, и еще не видел пример того, чтобы кто-то использовал логику для определения пакетов / групп пакетов для вариантов ниже %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.
Мне любопытно узнать, есть ли другие методы, которые кто-либо успешно использует в этом направлении.
1 ответ
Для этого вы можете использовать возможность кикстарта включать файлы. Используй свой %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