Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

31.7. 安装后脚本

您可以选择在安装完成后添加要在系统中运行的命令。此部分必须位于 kickstart 文件的末尾,且必须以 %post 命令开头。这部分可用于安装其他软件和配置其他名称服务器等功能。
备注
如果您使用静态 IP 信息配置网络(包括名称服务器),您可以访问网络并解析 %post 部分中的 IP 地址。如果您为 DHCP 配置网络,则安装执行 %post 部分时,/etc/resolv.conf 文件没有完成。您可以访问网络,但不能解析 IP 地址。因此,如果您使用 DHCP,您必须在 %post 部分中指定 IP 地址。
备注
post-install 脚本在 chroot 环境中运行;因此,从安装介质中复制脚本或 RPM 等任务不起作用。
--nochroot
允许您指定在 chroot 环境之外运行的命令。
以下示例将 /etc/resolv.conf 文件复制到刚安装的文件系统中。
%post --nochroot 
cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
--interpreter /usr/bin/python
允许指定不同的脚本语言,如 Python。使用您选择的脚本语言替换 /usr/bin/python
--log /path/to/logfile
记录安装后脚本的输出。请注意,无论您是否使用 --nochroot 选项,日志文件的路径都必须考虑。例如,没有 --nochroot:
该命令可在 Red Hat Enterprise Linux 5.5 及更新的版本中使用。
%post --log=/root/ks-post.log
使用 --nochroot
%post --nochroot --log=/mnt/sysimage/root/ks-post.log

31.7.1. 例子

使用 --log 选项将系统注册到订阅资产管理器服务器,以记录结果(在 Red Hat Enterprise Linux 5.5 及更高版本中):
%post --log=/root/ks-post.log
/usr/sbin/subscription-manager register --username=admin@example.com --password=secret --serverurl=sam-server.example.com --org="Admin Group" --environment="Dev" --servicelevel=standard
从 NFS 共享运行名为 runme 的脚本:
mkdir /mnt/temp 
mount -o nolock 10.10.0.2:/usr/new-machines /mnt/temp open -s -w -- 
/mnt/temp/runme 
umount /mnt/temp
备注
在 kickstart 模式中 不支持 NFS 文件锁定,因此挂载 NFS 挂载时需要 -o nolock