Назад | Перейти на главную страницу

Кикстарт: можете ли вы определить% выбранных пакетов в% 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.

Мне любопытно узнать, есть ли какие-либо другие методы, которые кто-то успешно использует в этом направлении.

Для этого вы можете использовать возможность кикстарта включать файлы. Используйте ваш %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