Linux

讓一個 kickstart 文件從它的 %post 部分執行一個獨立的腳本文件

  • August 19, 2019

如果我想從我的 RHEL7 kickstart%post部分執行一個作為它自己的文件的 shell 腳本,我需要把那個額外的文件放在哪裡,我將使用什麼路徑來執行它?例如,如果我的kickstart.cfg文件位於我的isolinux目錄中,我是否會將額外的 shell 腳本放在 isolinux 文件中,然後通過放入./shell-script我的%post部分來執行它?我想我的一些困惑來自於不理解 ISO 如何在安裝時解包所有內容以成為系統。

我想這樣做是為了在我的 ISO 中實現更多的模組化,因為我想執行的 shell 腳本有幾千行長,我覺得這會使 kickstart 文件複雜化,特別是如果我想在安裝後執行多個腳本。

作為參考,這是我的 kickstart 文件:

lang en_US
keyboard us
timezone <location> --isUtc
rootpw <password> --iscrypted
#platform x86, AMD64, or Intel EM64T
reboot
text
cdrom
bootloader --location=mbr --append="rhgb quiet crashkernel=auto"
zerombr
clearpart --all --initlabel
autopart
auth --passalgo=sha512 --useshadow
selinux --enforcing
firewall --enabled --ssh
skipx
firstboot --disable
%pre
%end
%post
<RUN SHELL SCRIPT HERE>
%end
%packages
%end

我將腳本放在我的isolinux目錄中,並將以下內容添加到%post我的 kickstart 文件部分:

%post --nochroot --logfile=/mnt/sysimage/root/ks-post.log
cp /run/install/repo/script.sh /mnt/sysimage/root/
sh /mnt/sysimage/root/script.sh
%end

請注意,為了將文件複製到/root新安裝系統的目錄中,您需要該--nochroot標誌。這給我帶來了一些問題,因為我嘗試執行的腳本中有一些路徑以/基目錄開頭。我仍然想出瞭如何解決這個問題,但我已經打開了一張關於它的新票。

引用自:https://serverfault.com/questions/978639