Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

32.7. Сценарий %post

Можно задать команды, которые будут выполнены сразу после завершения установки. Эта секция должна располагаться в конце файла кикстарта, после команд (см. Раздел 32.4, «Параметры кикстарта»), и начинаться с директивы %post. Порядок секций %pre и %post не имеет значения.
Эта секция подходит для установки дополнительных программ и настройки сервера имен.

Примечание

Если вы используете статическую настройку IP, включая сервер имен, в секции %post можно обращаться к сети и разрешать IP-адреса. Если для определения сетевых параметров используется DHCP, файл /etc/resolv.conf не будет создан к моменту, когда программа установки выполняет команды %post. Вы можете обращаться к сети, но разрешение IP-адресов недоступно, поэтому если вы используете DHCP, в секции %post надо указывать IP-адреса.

Примечание

Сценарий %post выполняется в окружении chroot, поэтому выполнить некоторые задачи (такие как копирование сценариев или пакетов RPM с установочных носителей) не удастся.
--nochroot
Позволяет указать команды для выполнения вне окружения chroot.
В следующем примере файл /etc/resolv.conf будет скопирован в только что созданную файловую систему.
%post --nochroot 
cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
--interpreter /usr/bin/python
Позволяет указать другой язык сценариев, например, Python. Замените /usr/bin/python предпочитаемым языком сценариев.
--log /путь/к/файлу
Сохраняет протокол выполнения постустановочного сценария в файл. Путь должен учитывать наличие --nochroot. Пример без --nochroot:
%post --log=/root/ks-post.log
с --nochroot:
%post --nochroot --log=/mnt/sysimage/root/ks-post.log

32.7.1. Примеры

Пример 32.1. Регистрация системы в Red Hat Network Satellite и сохранение событий в журнал:

%post --log=/root/ks-post.log
wget -O- http://proxy-or-sat.example.com/pub/bootstrap_script | /bin/bash
/usr/sbin/rhnreg_ks --activationkey=<ключ_активации>

Пример 32.2. Запуск сценария с именем runme, находящегося на общем NFS-ресурсе:

mkdir /mnt/temp 
mount -o nolock 10.10.0.2:/usr/new-machines /mnt/temp 
openvt -s -w -- /mnt/temp/runme 
umount /mnt/temp
NFS-блокировка файлов при автоматизированной установке не поддерживается, поэтому при монтировании NFS-ресурса требуется указать -o nolock.

Пример 32.3. Выполнение subscription-manager в секции %post

Red Hat Enterprise Linux 6 предоставляет программу subscription-manager для регистрации системы и подписки на обновления. subscription-manager можно добавить в секцию %post. Параметр --autosubscribe позволяет автоматически подписать систему после регистрации.
%post --log=/root/ks-post.log
/usr/sbin/subscription-manager register --username пользователь_rhn --password пароль_rhn --autosubscribe