Secuencias de comandos que pueden personalizar el contenedor. Se pueden usar para los fines siguientes:
Una secuencia de precreación valida el contenedor en el momento de la creación y lo prepara para una posterior personalización, especialmente los contenedores diferenciales. Esta secuencia también puede crear en el contenedor una sección definida por el usuario.
Una secuencia previa a la implementación valida el contenedor durante la instalación y lo prepara para una posterior personalización.
Una secuencia posterior a la implementación reconfigura una nueva imagen del sistema en un sistema clónico.
Una secuencia de rearranque procesa una reconfiguración final después de rearrancar el sistema.
Para obtener información sobre la creación de secuencias de comandos, consulte Pautas para la creación de una secuencia de personalización.
Esta secuencia se ejecuta durante la creación del contenedor. La secuencia tiene varios usos.
Valida el contenido y la integridad del software. La secuencia no consigue crear el contenedor si se deteriora la integridad.
Prepara los productos para una posterior personalización en sistemas clónicos.
Registra otras secuencias de instalación dinámicamente durante la creación del contenedor.
Añade un mensaje al archivo de resumen de creación de flash. El mensaje debe ser corto y registrar solamente que las secuencias se iniciaron y se terminaron, así como los resultados. Puede consultar los resultados en la sección de resumen.
Cree la secuencia de creación previa. Siga las instrucciones descritas en Pautas para la creación de una secuencia de personalización.
Almacene la secuencia en el directorio /etc/flash/precreation.
Los ejemplos siguientes son extractos de una secuencia de creación previa.
Para registrar la hora de inicio en la sección de resumen, siga el ejemplo siguiente:
echo "MyApp precreation script started">> $FLASHDIR/summary
Para comprobar la integridad del software, use el comando flcheck. No se puede usar este comando en la línea de comandos. Su sintaxis es: archivos y directorios de componentes de software
flcheck ...| - |
Por ejemplo, para validar los archivos y directorios, use el ejemplo siguiente:
flcheck archivos y directorios de los componentes de software If Not in selection - refuse creation echo "Myapp Integrity Damage">>$FLASHDIR/summary
O bien, para conservar los archivos y directorios nuevos inesperados y no malograr la creación del contenedor, siga el ejemplo siguiente:
flcheck archivos y directorios de los componentes de software If Not in selection include by force flinclude componente de software
Para registrar la implementación de las secuencias y los datos, siga el ejemplo siguiente:
Para ver datos especificos de la aplicación en una seccion definida por el usuario, use el siguiente ejemplo:
cp sección personalizable $FLASHDIR/custom_sections/MyApp
Para registrar el éxito de la instalación en la sección de resumen, use el ejemplo siguiente:
echo "product one flash preparation started." >>$FLASH_DIR/summary ... echo "product one flash preparation finished successfully">>$FLASH_DIR/summary
#!/bin/sh echo "Test precreation script started" >> $FLASH_DIR/summary cat /opt/TestApp/critical_file_list | flcheck - if [ $? != 0 ]; then echo "Test precreation script failure" >> $FLASH_DIR/summary exit 1 if echo "Test precreation script started" >> $FLASH_DIR/summary /opt/TestApplication/license_cloning $FLASH_DIR/predeployment/.TestApplicationLicenceTransfer \ $FLASH_DIR/custom_sections/TestApplicationLicenceCounter echo "Test precreation script finished" >> $FLASH_DIR/summary exit 0
Una secuencia de creación previa puede crear una sección definida por el usuario en el contenedor para proporcionar información específica de la aplicación. Esta sección va dirigida al mantenimiento de los contenedores. Se debe colocar la secuencia en el directorio $FLASH_DIR/sections. El contenedor Solaris Flash no procesa una sección definida por el usuario. Por ejemplo, una sección podría contener una descripción del contenedor o quizá una secuencia de comandos para comprobar la integridad de una aplicación.
Una sección definida por el usuario necesita el formato siguiente:
Debe contener líneas individuales
Cada línea debe finalizar con un carácter de nueva línea (ASCII 0x0a)
Pueden contener un número ilimitado de líneas individuales
Debe codificar los datos binarios mediante un algoritmo base 64 o similar
Se ejecuta esta secuencia antes de la instalación del contenedor. Si la función de la secuencia es validar el contenedor, se guarda en el contenedor. Si la función de la secuencia es conservar la configuración local del sistema clónico, se guarda en el sistema clónico. Esta secuencia también puede analizar y recoger datos locales necesarios para posteriores personalizaciones. Por ejemplo, se puede guardar la información específica del cliente antes de que los archivos que van a ser extraídos la sobrescriban. Se puede usar esta información en la etapa final después de la extracción.
Cree la secuencia de implementación previa. Siga las instrucciones descritas en Pautas para la creación de una secuencia de personalización.
Almacene la secuencia en uno de los directorios siguientes.
Para validar un contenedor, almacénelo en el directorio /etc/flash/predeployment.
Si está haciendo referencia a una secuencia de creación previa, almacénela en el directorio $FLASH_DIR/preinstall.
Si desea conservar configuraciones en un sistema clónico, proporcione la ruta a la secuencia que se almacena en el sistema clónico con la palabra clave local_customization en el perfil JumpStart.
#!/bin/sh $FLASH_DIR/TestApplication/check_hardware if [ $? != 0 ]; then echo Unsupported hardware exit 1 fi $FLASH_DIR/TestApplication/check_licence_key if [ $? != 0 ]; then echo No license for this host exit 1 fi $FLASH_DIR/TestApplication/deploy_license_key \ $FLASH_DIR/TestApplication/.TestApplicationLicenceTransfer $FLASH_DIR/TestApplication/save_data_files $FLASH_DIR/flash exit 0
Esta secuencia se guarda en el contenedor o se almacena en el directorio local del sistema clónico y se ejecuta después de la instalación. La secuencia reconfigura una nueva imagen del sistema en un sistema clónico. Si la secuencia se almacena en el contenedor, los cambios afectan a todos los sistemas clónicos. Si la secuencia se almacena en un directorio local del sistema clónico, los cambios sólo afectan a éste. Por ejemplo, la información específica del cliente que guarda una secuencia previa a la implementación se puede aplicar al entorno de copia, completando la instalación.
También es posible usar las secuencias de implementación posterior para limpiar los archivos después de instalar el contenedor. Por ejemplo, se pueden limpiar los archivos de registro que hay en /var/adm.
No todos los archivos de registro necesitan una secuencia para la limpieza. Por ello se pueden excluir de /var/tmp cuando se crea el contenedor.
Cree la secuencia de implementación posterior. Siga las instrucciones descritas en Pautas para la creación de una secuencia de personalización.
Almacene la secuencia en uno de los directorios siguientes.
Para que afecte a todos los sistemas clónicos, almacene la secuencia en el directorio /etc/flash/postdeployment.
Para que afecte sólo a un sistema clónico local, proporcione la ruta a la secuencia que se almacena en el sistema clónico con la palabra clave local_customization en el perfil JumpStart.
#!/bin/sh $FLASH_DIR/TestApplication/clone_reconfiguration $FLASH_DIR/TestApplication/restore_data $FLASH_DIR/flash
Esta secuencia se conserva en el contenedor y se ejecuta después de rearrancar el sistema. La secuencia realiza cualquier configuración final después de la reconfiguración del sistema.
Después de instalar el contenedor de Solaris Flash en un sistema clónico, se suprimen algunos archivos específicos del sistema principal y se vuelven a crear para la máquina clónica. El programa de instalación usa la orden sys-unconfig(1M) y los programas sysidtool(1M) para suprimir y volver a crear los archivos de configuración de red específicos del sistema principal. Los archivos que se vuelven a crear contienen, por ejemplo, /etc/hosts, /etc/defaultrouter y /etc/defaultdomain. Puede usar la secuencia de rearranque para cualquier reconfiguración final.
#!/bin/sh $FLASH_DIR/TestApplication/finalize_license