Red Hat Training

A Red Hat training course is available for RHEL 8

A.3.3. %post script

El script %post es un script de post-instalación que se ejecuta después de la instalación, pero antes de reiniciar el sistema por primera vez. Puede utilizar esta sección para ejecutar tareas como la suscripción del sistema.

Tiene la opción de añadir comandos para ejecutar en el sistema una vez que la instalación se haya completado, pero antes de que el sistema se reinicie por primera vez. Esta sección debe comenzar con %post y terminar con %end.

La sección %post es útil para funciones como la instalación de software adicional o la configuración de un servidor de nombres adicional. El script de post-instalación se ejecuta en un entorno chroot, por lo tanto, la realización de tareas como la copia de scripts o paquetes RPM desde el medio de instalación no funcionan por defecto. Puede cambiar este comportamiento utilizando la opción --nochroot como se describe a continuación. Entonces el script %post se ejecutará en el entorno de instalación, no en chroot en el sistema de destino instalado.

Debido a que el script de post-instalación se ejecuta en un entorno chroot, la mayoría de los comandos de systemctl se negarán a realizar cualquier acción. Para más información, consulte la sección Comportamiento de systemctl en un entorno chroot del documento Configuring and managing system administration.

Tenga en cuenta que durante la ejecución de la sección %post, el medio de instalación debe estar todavía insertado.

A.3.3.1. Opciones de la sección de post script

Las siguientes opciones pueden utilizarse para cambiar el comportamiento de los scripts de post-instalación. Para utilizar una opción, añádala a la línea %post al principio del script. Por ejemplo:

%post --interpreter=/usr/libexec/platform-python
-- Python script omitted --
%end
--interpreter=

Permite especificar un lenguaje de scripting diferente, como Python. Por ejemplo:

%post --interpretación=/usr/libexec/plataforma-python

Se puede utilizar cualquier lenguaje de scripting disponible en el sistema; en la mayoría de los casos, se trata de /usr/bin/sh, /usr/bin/bash, y /usr/libexec/platform-python.

Tenga en cuenta que el intérprete platform-python utiliza la versión 3.6 de Python. Debes cambiar tus scripts de Python de versiones anteriores de RHEL para la nueva ruta y versión. Además, platform-python está destinado a las herramientas del sistema: Utilice el paquete python36 fuera del entorno de instalación. Para más detalles sobre Python en Red Hat Enterprise Linux 8, vea Introducción a Python en Configuring basic system settings.

--nochroot

Le permite especificar los comandos que desea ejecutar fuera del entorno chroot.

El siguiente ejemplo copia el archivo /etc/resolv.conf al sistema de archivos que se acaba de instalar.

%post --nochroot
cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
%end
--erroronfail
Muestra un error y detiene la instalación si el script falla. El mensaje de error le indicará dónde se registra la causa del fallo.
--log=

Registra la salida del script en el archivo de registro especificado. Tenga en cuenta que la ruta del archivo de registro debe tener en cuenta si utiliza o no la opción --nochroot. Por ejemplo, sin --nochroot:

%post --log=/root/ks-post.log

y con --nochroot:

%post --nochroot --log=/mnt/sysimage/root/ks-post.log