背景
Kickstart(ks) 是一个用于自动化安装 Red Hat 系列(如 Red Hat Enterprise Linux, CentOS, Fedora 等)操作系统的工具。通过使用 Kickstart 文件,可以指定安装过程中的各种配置选项,从而实现无人值守安装。
ks可以用于设置主机的 hostname,但是如果直接在后置脚本(post script)里执行hostnamectl set-hostname xxx
命令,ks执行完后,hostname的配置并没有生效。
原因
ks 的后置脚本里默认是使用的 chroot
来执行的,在这个环境里systemctl等指令会不起作用。
解决
另外增加一个后置脚本,设置不以 chroot
启动,然后将对应的配置文件拷贝到系统里,具体如下
%post --nochroot
hostnamectl set-hostname {{.hostname}}
cp /etc/hostname /mnt/sysimage/etc/hostname
cp /etc/machine-info /mnt/sysimage/etc/machine-info
%end