我一直在寻找,但还没有看到任何人使用逻辑来确定下面选项的软件包/软件包组选择的示例%packages
。我试图让 kickstart 根据在中发现的标准安装软件包%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
,但我正在考虑将所有输出打印到一个用语句引用的文件中,但自 RHEL7 以来%include
我一直遇到问题%include
。%packages
我很好奇,想知道是否有其他人按照这种方法成功使用了这些方法。
答案1
您可以使用 kickstart 的包含文件功能来实现这一点。使用您的%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