Solaris 9: Guía de instalación

Capítulo 18 Creación de contenedores Solaris Flash (tareas)

Este capítulo proporciona los procedimientos para crear contenedores Solaris Flash. Estos procedimientos incluyen la instalación de un sistema principal y la posterior creación de un contenedor Solaris Flash desde ese sistema principal. También es posible crear un contenedor diferencial si se ha instalado previamente un contenedor en un sistema clónico. Cuando se crea el contenedor diferencial, se comparan las dos imágenes: la imagen principal sin cambios y la imagen actualizada. El contenedor diferencial sólo instala las diferencias entre las dos imágenes. El capítulo especifica también los procedimientos para crear secuencias de comandos con el fin de reconfigurar o personalizar el contenedor.

Mapa de tareas: creación de contenedores Solaris Flash

Tabla 18–1 Mapa de tareas: creación de un contenedor Solaris Flash para una instalación inicial

Tarea 

Descripción 

Para obtener instrucciones 

Instalar la configuración de software elegida en el sistema principal.  

Determine la configuración que satisfaga sus criterios y use cualquiera de los métodos de instalación de Solaris para instalar el sistema principal. 

Para instalar el sistema principal en una instalación inicial

(Opcional) Crear secuencias de comandos de personalización  

Determine si necesita crear secuencias de comandos para: 

  • Personalizar o reconfigurar el contenedor

  • Proteger los cambios locales en sistemas clónicos

Creación de las secuencias de personalización

Crear el contenedor Solaris Flash.  

Use el comando flar create para crear un contenedor

Para crear un contenedor Solaris Flash en una instalación inicial

(Opcional) Guardar una copia del contenedor  

Conserve una copia del contenedor para futuras comparaciones, con el fin de actualizar un sistema clónico con un contenedor diferencial  

Para crear un contenedor Solaris Flash en una instalación inicial

Tabla 18–2 Mapa de tareas: creación de un contenedor Solaris Flash para actualizar un sistema clónico

Tarea 

Descripción 

Para obtener instrucciones 

Preparar la imagen principal 

Hacer cambios en la imagen principal, como añadir o suprimir paquetes o instalar modificaciones 

Instalación del sistema principal

(Opcional) Crear secuencias de comandos de personalización  

Determine si necesita crear secuencias de comandos para: 

  • Personalizar o reconfigurar el contenedor

  • Proteger los cambios locales en sistemas clónicos

Creación de las secuencias de personalización

Crear el contenedor diferencial Solaris Flash 

  1. Monte la imagen principal sin cambios

  2. Use el comando flar create para comparar las dos imágenes y crear el contenedor diferencial

Para actualizar una imagen principal y crear un contenedor diferencial

Instalación del sistema principal

El sistema principal se instala con la configuración de software que desea que tengan los otros sistemas. Puede instalar sistemas clónicos con una instalación inicial que sobrescriba todos los archivos del sistema o con una actualización que incluya solamente las diferencias entre las dos imágenes. En una instalación inicial, use cualquiera de los métodos para instalar el sistema operativo Solaris en el sistema principal.

Si anteriormente ha instalado un contenedor en un sistema clónico, puede actualizar este sistema con cambios mediante un contenedor diferencial. Los cambios del tipo instalar modificaciones, así como añadir o eliminar paquetes, se hacen en la imagen original. El contenedor diferencial sólo sobrescribe los archivos especificados en el contenedor. Si desea conocer el procedimiento para actualizar la imagen principal original y crear un contenedor diferencial, consulte Para actualizar una imagen principal y crear un contenedor diferencial.

Para instalar el sistema principal en una instalación inicial

  1. Identifique la configuración del sistema que desea instalar.

  2. De acuerdo con el procedimiento de instalación elegido instale el sistema operativo Solaris. Para obtener más información sobre los diversos métodos de instalación, consulte el Capítulo 3.

  3. Personalice la instalación de Solaris; para ello puede:

    • Suprimir software.

    • Agregar software.

    • Modificar archivos de configuración.

    • Agregue soporte para dispositivos periféricos en el sistema clónico.

    Puede crear secuencias de personalización o usar el comando flar create para crear el contenedor.

Creación de las secuencias de personalización

Las secuencias permiten personalizar el contenedor. Se pueden usar para los fines siguientes:

Si desea conocer las pautas de creación de secuencias, consulte Pautas para la creación de una secuencia de personalización.

Para crear una secuencia de creación previa

Esta secuencia se ejecuta durante la creación del contenedor. La secuencia tiene varios usos.

  1. Cree la secuencia de creación previa. Siga las pautas descritas en Pautas para la creación de una secuencia de personalización.

  2. Almacene la secuencia en el directorio /etc/flash/precreation.


Ejemplo 18–1 Extractos de una secuencia de creación previa

Los ejemplos siguientes son extractos de una secuencia de creación previa.



Ejemplo 18–2 Secuencia de creación previa

#!/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
fi
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

Uso de una secuencia de creación previa para crear una sección del contenedor definida por el usuario

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:

Para crear una secuencia previa a la implementación

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.

  1. Cree la secuencia de implementación previa. Siga las pautas descritas en Pautas para la creación de una secuencia de personalización.

  2. 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.


Ejemplo 18–3 Secuencia de implementación previa

#!/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

Para crear una secuencia posterior a la implementación

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.


Nota –

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.


  1. Cree la secuencia de implementación posterior. Siga las pautas descritas en Pautas para la creación de una secuencia de personalización.

  2. 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.


Ejemplo 18–4 Secuencia de implementación posterior

#!/bin/sh
$FLASH_DIR/TestApplication/clone_reconfiguration
$FLASH_DIR/TestApplication/restore_data $FLASH_DIR/flash

Para crear una secuencia de rearranque

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 el comando 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.

  1. Cree la secuencia de rearranque.

  2. Almacene la secuencia en el directorio /etc/flash/reboot.


Ejemplo 18–5 Creación de una secuencia de rearranque

#!/bin/sh
$FLASH_DIR/TestApplication/finalize_license

Creación de un contenedor Solaris Flash

Puede crear un contenedor con una instalación inicial que sobrescriba todos los archivos del sistema clónico o bien puede crear un contenedor diferencial que sobrescriba sólo los cambios especificados. Si desea ver una visión general de los contenedores diferenciales, consulte Planificación para crear el contenedor diferencial Solaris Flash para una actualización.

Para crear un contenedor Solaris Flash en una instalación inicial

Después de instalar el sistema principal, puede crear un contenedor Solaris Flash que le servirá en la instalación de otros sistemas. Siga este procedimiento.

  1. Arranque el sistema principal y ejecútelo de la manera más inactiva posible.

    Si es posible, ejecútelo en modo monousuario. Si no es posible, cierre todas las aplicaciones que desee agregar al contenedor, así como aquellas que precisen gran cantidad de recursos del sistema operativo.

    Se puede crear un contenedor Solaris Flash con el sistema principal ejecutándose en modo multiusuario o monousuario o bien arrancado desde:

    • El DVD de Solaris 9.

    • El Software 1 de 2 de Solaris 9.

    • Una imagen del software de Solaris 9. Si utiliza soporte CD, la imagen puede incluir el CD de idiomas de Solaris 9 si es necesario.

  2. Para crear el contenedor, use el comando flar create.


    # flar create -n nombre opciones ruta/nombre_archivo
    
    nombre

    El nombre asignado al contenedor. El nombre que especifique es el valor de la palabra clave content_name.

    opciones

    Para ver una descripción de las opciones, consulte flar create.

    ruta

    La ruta al directorio en el que desea guardar el archivo del contenedor. Si no especifica ninguna ruta, flar create guarda el contenedor en el directorio actual.

    nombre_archivo

    El nombre de archivo del contenedor.

    • Si la creación del contenedor resulta satisfactoria, el comando flar create devuelve el código de salida 0.

    • En caso contrario, devuelve un código de salida distinto de cero.

  3. Haga una copia del contenedor y guárdela; la podrá usar en el futuro para actualizar un sistema clónico con un contenedor diferencial.

Ejemplos: creación de un contenedor para una instalación inicial

Los sistemas de archivos se pueden copiar exactamente o personalizar mediante la exclusión de algunos directorios o archivos. Se pueden conseguir los mismos resultados utilizando distintas opciones. Use las opciones más adecuadas en función de su entorno.

Los sistemas de archivos de los ejemplos siguientes se han simplificado para aumentar la claridad. En lugar de usar nombres de sistema de archivos como /var, /usr o /opt, la estructura de archivos del sistema principal para estos ejemplos es la siguiente:


/aaa/bbb/ccc/ddd
/aaa/bbb/fff
/aaa/eee
/ggg

Precaución – Precaución –

Utilice con precaución las opciones de exclusión de archivos de flar create. Si excluye algún directorio, es posible que otros que le hayan pasado por alto se queden en el contenedor, como los archivos de configuración del sistema. El sistema sufriría incoherencias y la instalación no funcionaría. Es mejor excluir directorios y archivos que contengan datos que pueden eliminarse con facilidad sin afectar al sistema; por ejemplo, archivos de datos de gran tamaño.



Ejemplo 18–6 Creación de un contenedor duplicado exacto

En este ejemplo, el nombre del contenedor es archive1. Se copia exactamente del sistema principal y, a continuación, se comprime. El contenedor es una copia exacta del sistema principal, y se almacena en archive1.flar.


# flar create -n archive1 -c archive1.flar

Para comprobar la estructura de archivos del contenedor, escriba:


# flar info -l archive1.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb/fff
aaa/eee
aaa/eee
ggg


Ejemplo 18–7 Creación de un contenedor con exclusión e inclusión de archivos y directorios

En este ejemplo, el nombre del contenedor es archive2. Se copia del sistema principal, pero no se trata de una copia exacta de éste. Se excluye el contenido del directorio /aaa, pero permanece el contenido de /aaa/bbb/ccc .


# flar create -n archive2 -x /aaa -y /aaa/bbb/ccc  archive2.flar

Para comprobar la estructura de archivos del contenedor, escriba el comando siguiente. Aparecerán los directorios excluidos que contienen archivos copiados, pero sólo los archivos que se restauraron contendrán datos.


# flar info -l aaa
aaa
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb
ggg


Ejemplo 18–8 Creación de un contenedor con exclusión e inclusión de archivos y directorios mediante listas

En este ejemplo, el nombre del contenedor es archive5. Se copia del sistema principal, pero no se trata de una copia exacta de éste.

El archivo exclude contiene la lista siguiente:


/aaa

El archivo include contiene la lista siguiente:


/aaa/bbb/ccc

Se excluye el contenido del directorio /aaa, pero permanece el contenido de /aaa/bbb/ccc .


# flar create -n archive5 -X exclude -f include  archive5.flar

Para comprobar la estructura de archivos del contenedor, escriba el comando siguiente. Aparecerán los directorios excluidos que contengan archivos copiados, pero sólo los archivos que se restauraron contendrán datos.


# flar info -l archive5.flar
aaa
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb
ggg


Ejemplo 18–9 Creación de un contenedor con exclusión de archivos y directorios mediante una lista y restaurando un directorio

Puede combinar las opciones -x, -y, -X y -f. En este ejemplo se combinan las opciones -X e -y. El contenedor se denomina archive5. Se copia del sistema principal, pero no se trata de una copia exacta de éste.

El archivo exclude contiene la lista siguiente:


/aaa

La opción -y restaura el directorio ccc. El comando siguiente produce el contenedor.


# flar create -n archive5 -X exclude -y /ccc  archive5.flar

Para comprobar la estructura de archivos del contenedor, escriba el comando siguiente. Aparecerán los directorios excluidos que contengan archivos copiados, pero sólo los archivos que se restauraron contendrán datos.


# flar info -l archive5.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
ggg


Ejemplo 18–10 Creación de un contenedor con exclusión e inclusión de archivos y directorios mediante una lista con la opción -z

En este ejemplo, el nombre del contenedor es archive3. Se copia del sistema principal, pero no se trata de una copia exacta de éste. Los archivos y directorios que se deben seleccionar se incluyen en el archivo filter1. Dentro de los archivos, los directorios están marcados con un signo más (+) o menos (-) para indicar qué archivos se deben excluir y cuáles restaurar. En este ejemplo se excluye el directorio /aaa con un signo menos y se restaura el subdirectorio /aaa/bbb/ccc con un signo más. El archivo filter1 contiene la lista siguiente:


- /aaa
+ /aaa/bbb/ccc

El comando siguiente produce el contenedor.


# flar create -n archive3 -z filter1 archive3.flar

Para comprobar la estructura de archivos del contenedor, escriba el comando siguiente. Aparecerán los directorios excluidos que contengan archivos copiados, pero sólo los archivos que se restauraron contendrán datos.


# flar info -l archive3.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
ggg


Ejemplo 18–11 Creación de un contenedor desde un entorno de arranque alternativo

En este ejemplo, el nombre del contenedor es archive4. Se copia exactamente del sistema principal y, a continuación, se comprime. El contenedor es una copia exacta del sistema principal, y se almacena en archive4.flar. La opción -R se usa para crear el contenedor desde otro árbol de directorios.


# flar create -n archive4 -c -R /x/yy/zz archive4.flar


Ejemplo 18–12 Creación de un contenedor y adición de palabras clave para describirlo

En este ejemplo, el nombre del contenedor es archive3. Este contenedor se copia exactamente desde el sistema principal y después se comprime. Las opciones añaden descripciones a la sección de identificación del contenedor, que posteriormente pueden permitir identificarlo. Si desea conocer las palabras claves, sus valores y formatos, consulte Palabras clave de Solaris Flash.


# flar create -n archive3 -i 20000131221409 -m pumbaa \
-e "Solaris 8 Print Server" -a "Mighty Matt" -U "Internal Finance" \
-T server archive3.flar 

Después de crear el contenedor puede acceder a la sección de identificación que contiene la descripción detallada. Observe este ejemplo de sección de identificación:


section_begin=identification
     files_archived_method=cpio
     files_compressed_method=compress
     files_archived_size=259323342
     files_unarchived_size=591238111
     creation_date=20000131221409
     creation_master=pumbaa
     content_name=Finance Print Server
     content_type=server
     content_description=Solaris 8 Print Server
     content_author=Mighty Matt
     content_architectures=sun4u,sun4m
     creation_node=pumbaa
     creation_hardware_class=sun4u
     creation_platform=SUNW,Sun-Fire
     creation_processor=sparc
     creation_release=5.9
     creation_os_name=SunOS
     creation_os_version=s81_49
     x-department=Internal Finance

Para actualizar una imagen principal y crear un contenedor diferencial

Antes de crear un contenedor diferencial necesita dos imágenes para comparar: una imagen principal sin cambios y una imagen principal actualizada. Una imagen es la principal sin cambios que se ha conservado inalterada. Esta imagen se almacenó y se debe acceder a ella. La segunda imagen es la principal sin cambios que se actualiza con modificaciones menores. El sistema de archivos raíz (/) es el predeterminado para la imagen nueva, pero se puede acceder a ella si se ha almacenado en cualquier otro lugar. Con estas dos imágenes, puede crear un contenedor diferencial que incluya solamente las diferencias entre ambas. Se puede instalar el contenedor diferencial en copias que se instalaron anteriormente con la imagen principal sin cambios.

  1. Preparar el sistema principal con cambios. Antes de realizar los cambios, el sistema principal debe ejecutar un duplicado del contenedor original.


    Nota –

    Se debe proteger de los cambios una copia de la imagen principal sin cambios y debe quedar disponible para el montaje posterior.


  2. Actualice la imagen principal sin cambios con cualquiera de los cambios siguientes.

    • Suprima paquetes.

    • Añada paquetes o modificaciones.

    • Modifique los archivos de configuración.

    • Agregue soporte para dispositivos periféricos en el sistema clónico.

  3. (Opcional) Cree secuencias de comandos de personalización. Consulte Creación de las secuencias de personalización.

  4. Entregue la imagen principal sin cambios en un punto de montaje.

    • Si la imagen principal sin cambios se almacena en un entorno de arranque inactivo, recupérela mediante el comando lumount.


      # lumount nombre_entorno_de_arranque punto_montaje
      
      nombre_entorno_ de_arranque

      Especifica el entorno de arranque donde se almacena la imagen principal sin cambios

      punto_montaje

      Especifica un sistema de archivos raíz (/) donde se almacena la imagen

      En el ejemplo siguiente, el entorno de arranque inactivo es unchanged_master1. El punto de montaje es el directorio /a en el sistema principal.


      # lumount  unchanged_master1 /a
      
    • Si la imagen se almacena en una copia, monte ésta mediante NFS.

      1. En el sistema principal, comparta el sistema de archivos raíz de la copia (/) y proporcione a la raíz principal permisos en el sistema clónico.


        # share -F nfs -o rw,root=sistema_principal "/"
        

        sistema_principal es el nombre del sistema principal.

      2. Monte la copia en el sistema principal.


        # mount -F nfs sistema_copia:/ dir_principal
        
        sistema_copia

        Especifica el nombre del sistema para montar

        dir_principal

        Especifica el directorio donde se almacena la imagen principal sin cambios.

    • Si guardó una imagen con el comando ufsdump, use el comando ufsrestore para recuperar una copia. Si desea más información sobre cómo usar estos comandos, consulte “UFS Backup and Restore Commands (Reference)” in System Administration Guide: Basic Administration.

  5. Cree el archivo diferencial.


    # flar create -n nombre_contenedor -A dir_imagen_principal_sin_cambios\
     opciones ruta/nombre_archivo
    
    nombre_contenedor

    Especifica el nombre asignado al contenedor. El nombre_contenedor que especifique es el valor de la palabra clave content_name. El nombre se enumera en la sección de identificación del contenedor.

    -A dir_imagen_principal_sin_cambios

    Crea un contenedor diferencial comparando una nueva imagen del sistema con la imagen que especifica el argumento dir_imagen_principal_sin_cambios. De forma predeterminada, la nueva imagen del sistema es la raíz (/). Puede cambiar la imagen predeterminada con la opción -R. dir_imagen_principal_sin_cambios es un directorio donde la imagen del sistema sin cambios se almacena o se monta a través de UFS, NFS o lumount.

    Puede incluir y excluir algunos archivos mediante las opciones para la selección del contenido. Si desea una lista de opciones, consulte flar create.

    opciones

    Para ver una descripción de las opciones, consulte flar create.

    ruta

    Especifica la ruta al directorio donde desee guardar el contenedor. Si no especifica ninguna ruta, flar create guarda el contenedor en el directorio actual.

    nombre_archivo

    Especifica el nombre del contenedor.

    • Si la creación del contenedor diferencial es satisfactoria, el comando flar create devuelve el código de salida 0.

    • Si la creación del contenedor diferencial falla, el comando flar create devuelve un código de salida distinto de 0.

    Para conocer los procedimientos de instalación de un contenedor, consulte Referencias a procedimientos para la instalación de contenedores Solaris Flash.

Ejemplos: creación de un contenedor diferencial


Ejemplo 18–13 Creación de un contenedor diferencial con la nueva imagen principal en el sistema principal

En este ejemplo, el directorio para la imagen principal sin cambios es unchanged_master1. La nueva imagen principal que contiene cambios es el directorio raíz (/). Se compara la nueva imagen principal con la imagen principal sin cambios y el contenedor diferencial resultante se comprime. El contenedor diferencial se almacena en el archivo diffarchive1.flar. El contenedor incluye archivos que se suprimen, cambian o añaden, cuando se instalan.


# flar create -n diffarchive1 -A /a/unchanged_master1 -c diffarchive1.flar


Ejemplo 18–14 Creación de un contenedor diferencial con las imágenes almacenadas en un entorno de arranque inactivo

En este ejemplo, la imagen principal sin cambios, unchanged_master1, se almacena en un entorno de arranque inactivo y se accede a ella mediante el montaje del entorno de arranque. La nueva imagen principal es el directorio raíz (/). Se compara la nueva imagen principal con la principal sin cambios y el contenedor diferencial resultante se comprime. Se almacena el contenedor en diffarchive4.flar. El contenedor incluye archivos que se suprimen, cambian o añaden, cuando se instalan.


# lumount unchanged_master1 /a
# flar create -n diffarchive4 -A /a -c  diffarchive4.flar