Если бы я хотел запустить сценарий оболочки, который был отдельным файлом из моего кикстарта RHEL7 %post
в разделе, куда мне нужно поместить этот дополнительный файл и какой путь я бы использовал для его запуска? Например, если мой kickstart.cfg
файл находится в моем isolinux
каталог, поместил бы я дополнительный сценарий оболочки в файл isolinux, а затем запустил бы его, поместив ./shell-script
в моем %post
раздел? Я предполагаю, что часть моего замешательства связана с тем, что я не понимаю, как ISO распаковывает все, чтобы стать системой во время установки.
Я хочу сделать это для большей модульности в моем ISO, поскольку сценарий оболочки, который я хочу запустить, состоит из нескольких тысяч строк, которые, как мне кажется, сворачивают файл кикстарта, особенно если я хочу запустить несколько сценариев после установки.
Для справки вот мой файл кикстарта:
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
раздел моего файла кикстарта:
%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
флаг. Это вызвало у меня некоторые проблемы, поскольку в скрипте, который я пытаюсь запустить, есть пути, начинающиеся с /
как базовый каталог. Я все еще придумал, как это исправить, но открыл новый тикет об этом.