对于Kickstart执行后安装脚本的限制,我仍然不太清楚。
我最初的理解是,启动文件的%post区域是在安装完成后在系统上执行命令。我可能误解的是这个执行的上下文,尽管我指示Kickstart文件使用Bash作为解释器。我有一个Bash脚本,它将CentOS系统配置为我们网络的信息亭。单独的脚本可以正常工作,但通常在安装完成并已登录到GNOME会话后才能很好地执行。我想拿这个脚本,经过一些修改,让Kickstart运行它,以尽可能接近无人值守。仅仅是脚本的复制和粘贴就会产生一些显著的不良效果。首先,post脚本需要几个小时才能完成。如果手动在GNOME内部运行,在最坏的情况下只需一分钟即可执行。第二,当它完成时,有几个方面似乎根本不起作用。例如,配置了firewalld的部分似乎没有运行,因为我的自定义区域和服务完全没有。此脚本的另一个版本尝试chmod触发器文件以有条件地执行另一个脚本,并且在创建触发器文件时,该文件上的chmod似乎无法工作。此外,我所理解的是anaconda的日志文件: /tmp/program.log和/tmp/install.log,没有显示任何异常的失败。
我有一个经过轻微修改的Bash脚本副本,其中删除了一些敏感元素(当它这样做时会注意到):https://pastebin.com/uSkcdynf。Kickstart文件非常标准,只有该部分的%post和%end之间粘贴了这个脚本。
发布于 2019-04-06 14:14:38
@哈西尔,你把钉子打在了头上。我对chroot的理解比我开始这次冒险的时候要好,但仍然没有达到我的感觉。跳出色度使我有能力使变化更加持久,更不用说速度的提高也是显而易见的。
我想向其他人提出的另一个警告是,如果您的脚本依赖于使用通过Anaconda安装的程序,那么您需要做一些测试,看看一旦chroot坏了,这些程序是否还能工作。例如,我无法使用git,因为程序找不到默认的模板目录。即使在我通过全球吐露说明了这一点之后,仍然存在着所有其他类型的片状问题,这些问题并没有明显的解决办法。将我的脚本的工作流程缩减到基础,对于完成这一工作确实有很大帮助。
https://unix.stackexchange.com/questions/510731
复制相似问题