我已经设置了 CentOS 7 的 Kickstart .iso 安装,并且安装得很好(.iso 是用里面的 ks.cfg 文件编译的)。
我还没有弄清楚的是,我是否可以从 iso 安装中编辑系统文件,以便能够创建其中包含代理配置的文件 /etc/profile.d/proxy.sh ,并且稍后还能够传递一些yum 命令,以便它自行更新(这是我在本论坛中读到的,但如果没有代理设置,yum 无法执行任何操作)。
我尝试过简单地传递(就像我在终端中输入它们一样)ks.cfg 文件的 %post 部分中的命令,但它什么也没做,所以我可能不太清楚它是如何工作的。
这可以完成吗?或者我应该自动化 ansible 来完成它?
我尝试了以下 %post 部分:
%post
touch /etc/profile.d/proxy.sh
echo 'Proxy info' >> /etc/profile.d/proxy.sh
yum install whatever
%end
但我不认为我可以像这样向它发出命令,因为从技术上讲我位于安装介质而不是系统本身。
答案1
对我来说效果很好。
我使用了这个启动配置:
text
url --url=http://mirror.facebook.net/centos/8-stream/BaseOS/x86_64/os/
keyboard --vckeymap=us --xlayouts='us'
lang en-US.UTF-8
network --bootproto=dhcp --ipv6=auto --activate
firewall --enabled --service=ssh
timezone US/Eastern --isUtc
selinux --enforcing
bootloader --location=mbr
clearpart --all --initlabel
autopart
reboot --eject
rootpw --plaintext secret
%packages
@Core
%end
%post
echo 'Proxy info' >> /etc/profile.d/proxy.sh
%end
像这样测试过:
$ virt-install --name centos8-stream -r 4096 \
--disk pool=default,size=10 \
--os-variant centos8 \
--location http://mirror.facebook.net/centos/8-stream/BaseOS/x86_64/os/ \
-w network=default \
--graphics=none \
--console pty,target_type=serial \
--initrd-inject ks.cfg \
--extra-args='inst.ks=file:/ks.cfg console=ttyS0,115200n8'
当系统启动时,该文件正如预期的那样存在:
CentOS Stream 8
Kernel 4.18.0-373.el8.x86_64 on an x86_64
localhost login: root
Password:
Last login: Thu Apr 14 22:46:23 on ttyS0
-bash: Proxy: command not found
[root@localhost ~]# cat /etc/profile.d/proxy.sh
Proxy info
如果您看到不同的行为,请发布一个重现该行为的示例,我很乐意仔细查看。