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。