背景
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