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
Другие вопросы по тегам