Linux
讓一個 kickstart 文件從它的 %post 部分執行一個獨立的腳本文件
如果我想從我的 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
標誌。這給我帶來了一些問題,因為我嘗試執行的腳本中有一些路徑以/
基目錄開頭。我仍然想出瞭如何解決這個問題,但我已經打開了一張關於它的新票。