Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Creación de una imagen de instalación personalizada de Oracle Solaris 11 Oracle Solaris 11 Information Library (Español) |
1. Introducción a la creación de una imagen de instalación personalizada
2. Diseño de una imagen de instalación personalizada
Requisitos del sistema para la generación de imágenes
Cómo crear y generar una imagen personalizada
Modificación del contenido del manifiesto
Especificación del título de la imagen
Modificación del menú de inicio
Especificación del área de generación
Visualización de los paquetes para instalar
Visualización de los paquetes para desinstalar
Especificación de un editor para un sistema instalado
Configuración de los puntos de comprobación de la generación
Creación y utilización de secuencias de comandos personalizadas
Cómo crear y utilizar una secuencia de comandos personalizada
El constructor de distribuciones crea imágenes según los valores especificados en los archivos XML, denominados archivos de manifiesto. Los archivos de manifiesto contienen especificaciones para el contenido y los parámetros para las imágenes ISO que se crean mediante el constructor de distribuciones. El paquete distribution-constructor proporciona manifiestos de ejemplo que se pueden utilizar para crear un LiveCD personalizado, una imagen ISO AI x86 o SPARC, o una imagen de instalación de texto x86 o SPARC.
Los elementos de cada archivo de manifiesto ofrecen valores predeterminados que crearán el tipo de imagen ISO que necesita. Puede editar de forma manual estos elementos preestablecidos en un archivo de manifiesto para personalizar la imagen resultante. Además, puede crear secuencias de comandos personalizadas para modificar aún más la imagen. A continuación, haga referencia a las nuevas secuencias de comandos en el archivo de manifiesto.
El paquete distribution-constructor proporciona los siguientes archivos de manifiesto de ejemplo.
Tabla 2-2 Manifiestos de ejemplo
|
Puede utilizar la herramienta Package Manager para instalar el paquete necesario. Puede acceder a Package Manager desde la barra de menús del escritorio del sistema operativo Oracle Solaris. En la barra de menús, vaya a Sistema>Administración>Package Manager.
También puede utilizar comandos IPS como los siguientes para instalar este paquete:
# pkg install distribution-constructor
Hará referencia al archivo de manifiesto por nombre cuando utilice el comando distro_const para crear una imagen.
Nota - Siempre haga copias de seguridad del archivo de manifiesto original y de las secuencias de comando predeterminadas antes de copiarlos.
Por ejemplo, puede editar el elemento de destino en el manifiesto para especificar una ubicación distinta del área de generación donde se puede construir la imagen. Además, puede controlar el editor para asegurarse de que su sistema pueda contactarse con el editor para descargar los paquetes necesarios para generar la imagen. Si es necesario, puede editar el elemento de nombre de software para especificar un editor y una ubicación de depósito diferentes.
Para obtener información, consulte Modificación del contenido del manifiesto y la página del comando man dc_manifest(4).
Si decide crear nuevas secuencias de comandos, actualice las referencias de la secuencia de comandos en la sección de ejecución del archivo de manifiesto.
Para obtener instrucciones, consulte Creación y utilización de secuencias de comandos personalizadas.
Para obtener instrucciones, consulte el Capítulo 3, Generación de una imagen.
Todos los campos de cada archivo de manifiesto ofrecen valores predeterminados que crearán el tipo de imagen ISO que necesita. Puede editar de forma manual estos campos predefinidos en un archivo de manifiesto para personalizar aún más la imagen resultante.
Según qué manifiesto de ejemplo seleccione, los elementos principales son los siguientes.
Tabla 2-3 Elementos del manifiesto
|
Utilice el elemento siguiente para especificar un nombre personalizado o predeterminado para la imagen que va a generar.
<distro name="Oracle_Solaris_Text_X86" add_timestamp="false">
Si tiene pensado realizar una serie de generaciones de una imagen y conservar las imágenes incrementales, puede cambiar la variable de indicador de fecha y hora a "true", y automáticamente se agregará un indicador de fecha y hora al nombre de cada imagen.
Si necesita especificar un proxy HTTP, anule la marca de comentario del elemento distro name que incluye la variable de proxy, e introduzca la ubicación del proxy.
Este elemento del menú de inicio especifica las modificaciones del menú de inicio que se aplicarán a la imagen.
En el ejemplo siguiente, un menú de inicio especializado con el título “boot1” se aplicará a la imagen. El atributo de tiempo de espera especifica el tiempo que debe transcurrir antes de que la entrada de inicio predeterminada se active automáticamente.
<boot_mods title="boot1" timeout="5">
En el elemento del menú de inicio, puede agregar entradas de menú de inicio individuales agregando un nuevo elemento boot_entry para cada entrada nueva. Las entradas se agregan secuencialmente al menú de inicio según el orden del valor del atributo insert_at de "start" o "end" para cada entrada de inicio.
Nota - Agregue nuevas entradas antes de la entrada existente "with magnifier".
Consulte el siguiente ejemplo de un elemento boot_entry individual.
<boot_entry> <title_suffix>with screen reader</title_suffix> <kernel_args>-B assistive_tech=reader</kernel_args> </boot_entry>
Para obtener más información, consulte la página del comando man dc_manifest(4).
Puede personalizar el elemento target. Este elemento define el conjunto de datos de generación de ZFS que se utilizará para la generación. Este conjunto de datos es el área donde se creará la imagen. Debe introducir una ubicación del conjunto de datos válida. Debe controlar el área de generación predeterminada para asegurarse de que la generación no destruya el contenido que necesita conservar en el sistema. Si es necesario, modifique el área de generación.
Nota - El nombre del sistema de archivos no debe incluir el nombre de zpool.
Observe el ejemplo siguiente.
<target> <logical> <zpool action="use_existing" name="rpool"> <dataset> <filesystem name="dc/sample-dataset-location" action="preserve"/> </dataset> </zpool> </logical> </target>
El elemento siguiente especifica un editor donde el constructor de distribuciones puede obtener paquetes para descargar y utilizar para generar la imagen.
<software name="transfer-ips-install">
En el elemento de origen en esta sección, edite los elementos de nombre de editor y nombre de origen para especificar qué editor se debe utilizar y dónde se ubica el depósito de paquetes. Se pueden mostrar varios editores. Cuando el constructor de distribuciones intenta ubicar paquetes para instalar, los editores se buscan en el orden en que se muestran aquí.
Si es necesario especificar reflejos para un editor, edite el nombre de reflejo y elimine el comentario.
Observe el ejemplo siguiente.
<source> <publisher name="publisher1"> <origin name="http://example.oracle.com/primary-pub"/> <mirror name="mirror.example.com"/> </publisher> <publisher name="publisher2"> <origin name="http://example2.com/dev/solaris"></origin> </publisher> <publisher name="publisher3.org"> <origin name="http://example3.com/dev"></origin> </publisher> </source>
Para obtener más información sobre cómo utilizar los editores, consulte Adición y actualización de paquetes de software de Oracle Solaris 11.
El elemento software_data con el atributo install muestra el conjunto de paquetes que se van a instalar para generar un tipo de imagen determinado, según el manifiesto que esté utilizando. Por ejemplo, el manifiesto dc_livecd.xml muestra los paquetes necesarios para generar una imagen LiveCD. Cada etiqueta de nombre muestra un nombre de paquete o el nombre del grupo de paquetes que contiene muchos paquetes.
<software_data action="install"> <name>pkg:/group/system/solaris-desktop</name> <name>pkg:/system/install/gui-install</name> <name>pkg:/system/install/media/internal</name> </software_data>
Si tiene paquetes que desea agregar a la imagen, adjunte los nombres de paquete agregando una etiqueta de nombre a cada paquete.
De manera predeterminada, se instala la versión más reciente del paquete actual disponible en el depósito especificado. Si se requiere otra versión, agregue el número de versión a la referencial del paquete utilizando el formato siguiente:
<name>pkg:/group/system/solaris-desktop@0.5.11-0.build#</name>
Nota - Es posible que los paquetes con una versión concreta especificada no se instalen si se están instalando otros paquetes con una versión en conflicto. Para obtener más información, consulte la página del comando man pkg(5).
Ejemplo 2-1 Adición de paquetes y editores adicionales
En este ejemplo, se especifica un segundo editor, mypublisher. También se especifican paquetes adicionales, mypackage1 y mypackage2.
Durante el proceso de generación, los editores se comprueban en el orden en que aparecen en la lista. Si los paquetes especificados no se encuentran en el primer editor, se buscan en el editor siguiente.
<software name="transfer-ips-install" type="IPS"> <destination> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="/usr/share/distro_const/lang_facets.xml"/> </destination> <source> <publisher name="solaris"> <origin name="http://pkg.oracle.com/solaris/release"/> </publisher> <publisher name="mypublisher"> <origin name="http://mypublisher.company.com"/> </publisher> </source> <software_data action="install"> <name>pkg:/group/system/solaris-large-server</name> <name>pkg:/system/install/text-install</name> <name>pkg:/system/install/media/internal</name> <name>pkg:/mypackage1</name> <name>pkg:/mypackage2</name> </software_data> </software>
El elemento software_data con el atributo uninstall se puede usar para desinstalar un paquete individual o para desinstalar una definición de grupo de paquetes.
En el ejemplo siguiente, solaris-desktop es el nombre de un grupo de paquetes que contiene varios paquetes individuales.
<software_data action="uninstall"> <name>pkg:/group/system/solaris-desktop</name> </software_data>
Puede desinstalar un grupo de paquetes. Desinstalar un grupo de paquetes significa en realidad que sólo se desinstala la definición del grupo. Los paquetes individuales que se instalaron previamente como parte de ese grupo no se desinstalan. Sin embargo, puede desinstalar los paquetes individuales sin desinstalar el grupo de paquetes. Conservar el grupo de paquetes puede ser útil como referencia. También puede utilizar la etiqueta de nombre para desinstalar un paquete individual. Anexe paquetes adicionales para desinstalar al final de la sección de desinstalación.
El elemento siguiente afecta un sistema una vez que se ha instalado la imagen creada mediante el constructor de distribuciones en ese sistema.
<software name="set-ips-attributes">
Proporcione las etiquetas de nombre de editor y nombre de reflejo opcional para especificar desde dónde el sistema instalado puede acceder a paquetes adicionales para descargarlos e instalarlos.
En este elemento también puede definir atributos IPS. Consulte la información de la propiedad IPS de la página del comando man pkg(1).
El elemento de ejecución del manifiesto muestra una serie de puntos de comprobación que se ejecutan durante el proceso de construcción de la imagen. Los puntos de comprobación se ejecutan en el orden en que se muestran en esta sección. Los puntos de comprobación predeterminados necesarios para generar la imagen de instalación predeterminada se incluyen en cada manifiesto.
Cada etiqueta de nombre de punto de comprobación incluye el atributo mod-path que especifica dónde se ubica el punto de comprobación.
Algunas de las etiquetas de punto de comprobación predeterminadas incluyen argumentos con valores predeterminados incluidos. En el siguiente ejemplo de punto de comprobación del manifiesto de ejemplo dc_ai_sparc.xml se crea el archivo de inicio para la generación de la imagen y se indica una secuencia de comandos para realizar la tarea. El punto de comprobación de ejemplo, además, incluye campos de argumento con valores específicos proporcionados para cada argumento.
<checkpoint name="ba-arch" desc="Boot Archive Archival" mod_path="solaris_install/distro_const/checkpoints/ boot_archive_archive" checkpoint_class="BootArchiveArchive"> <kwargs> <arg name="size_pad">0</arg> <arg name="bytes_per_inode">0</arg> <arglist name="uncompressed_files"> <argitem>etc/svc/repository.db</argitem> <argitem>etc/name_to_major</argitem> <argitem>etc/minor_perm</argitem> <argitem>etc/driver_aliases</argitem> <argitem>etc/driver_classes</argitem> <argitem>etc/path_to_inst</argitem> <argitem>etc/default/init</argitem> <argitem>etc/nsswitch.conf</argitem> <argitem>etc/passwd</argitem> <argitem>etc/shadow</argitem> <argitem>etc/inet/hosts</argitem> </arglist> </kwargs> </checkpoint>
Como se muestra en este ejemplo, el elemento <kwargs> contiene argumentos de palabra clave que se deben introducir en el punto de comprobación durante la generación. Dentro del elemento <kwargs> hay elementos <arg name> que se pueden utilizar para especificar palabras clave individuales para introducir en el punto de comprobación. Además, el elemento <arglist> contiene una lista de diversos valores <argitem> para introducir en el punto de comprobación. En este ejemplo se incluye una lista de archivos sin comprimir en el elemento <arglist>.
Cada elemento de lista <kargs> está entre comillas dobles. Cuando no se utilizan comillas dobles, o cuando un juego de comillas dobles encierra toda la cadena, la cadena entera, incluidos los espacios y las líneas nuevas, se interpreta como un argumento. No utilice comas entre los argumentos.
Si crea una secuencia de comandos personalizada para utilizar durante la generación de una imagen, debe agregar un elemento de punto de comprobación que indique la ubicación de la secuencia de comandos. El punto de comprobación de una secuencia de comandos personalizada sólo necesita un elemento <args> que indique la ubicación de la secuencia de comandos personalizada. Para obtener más información y ejemplos, consulte Creación y utilización de secuencias de comandos personalizadas.
Utilice las opciones de comando distro_const para control la pausa y el reinicio del proceso de generación en determinados puntos de comprobación. Consulte Cómo generar una imagen en etapas.
Ejemplo 2-2 Adición de paquetes SVR4
En este ejemplo, se agrega un nuevo punto de comprobación al manifiesto. Este nuevo punto de comprobación muestra los paquetes SVR4 que se van a agregar a la imagen y su ubicación. A continuación, se hace referencia a este nuevo punto de comprobación en la sección de ejecución.
En primer lugar, se crea el nuevo punto de comprobación agregando un nuevo elemento de software. Este punto de comprobación especifica SVR4 como el tipo de software, dónde encontrar los paquetes y el lugar en el que se van a instalar los paquetes.
Además, los paquetes SVR4 específicos que se van a instalar se muestran en el elemento software_data.
<software name=transfer-svr4-install type="SVR4"> <destination> <dir path={PKG_IMAGE_PATH}/> </destination> <source> <dir path="/path/to/packages"/> </source> <software_data action="install"> <name>SUNWpackage1</name> <name>SUNWpackage2</name> </software_data> </software>
Si se incluyen en el punto de comprobación, los valores de {PKG_IMAGE_PATH} y {BOOT_ARCHIVE} son sustituidos por la utilidad distro_const con <ZFS Dataset>/build_data/pkg_image y <ZFS Dataset>/build_data/boot_archive respectivamente. En este ejemplo, los paquetes SVR4 se instalarán en <ZFS Dataset>/build_data/pkg_image.
Por último, se hace referencia al nuevo punto de comprobación en la sección de ejecución.
<execution stop_on_error="true"> <checkpoint name="transfer-ips-install" desc="Transfer pkg contents from IPS" mod_path="solaris_install/transfer/ips" checkpoint_class="TransferIPS"/> <checkpoint name="set-ips-attributes" desc="Set post-install IPS attributes" mod_path="solaris_install/transfer/ips" checkpoint_class="TransferIPS"/> <checkpoint name="transfer-svr4-install" desc="Transfer pkg contents from SVR4 packages" mod_path="solaris_install/transfer/svr4" checkpoint_class="TransferSVR4"/>
Tenga en cuenta que el nombre del software debe coincidir con el nombre del punto de comprobación. En este ejemplo, ambos son “transfer-svr4–install”.
El constructor de distribuciones permite especificar secuencias de comandos adicionales que se pueden utilizar para realizar personalizaciones según el tipo de imagen que esté generando. Los archivos de manifiesto hacen referencia a las secuencias de comandos y las secuencias de comandos transforman la imagen genérica en una distribución de medios específicos. En la sección de ejecución de los archivos manifiesto se hace referencia a estas secuencias de comandos. Se puede especificar cualquier cantidad de puntos de comprobación de secuencia de comandos personalizada.
Nota - La admisión de las secuencias de comandos se limita a cualquier secuencia de comandos predeterminada y no modificada incluida en los paquetes de aplicaciones. Si decide personalizar estas secuencias de comandos, primero, realice una copia de seguridad de las secuencias de comandos originales.
Antes de empezar
Cuando cree sus propias secuencias de comandos personalizadas, tenga en cuenta lo siguiente:
Las secuencias de comandos pueden ser programas Python, secuencias de comandos de shell o binarios.
Las secuencias de comandos se ejecutan en el orden en el que aparecen en la sección de ejecución del archivo de manifiesto.
La salida estándar (stdout) y la salida de error (stderr) de los comandos ejecutados en las secuencias de comandos (tanto en los módulos shell como python) se capturan en archivos de registro que ofrecen un informe sobre el intento o la finalización de la generación.
Asegúrese de que un usuario con el rol de usuario root pueda ejecutar estas secuencias de comandos.
Asegúrese de especificar la ruta completa de las secuencias de comandos. Los puntos de comprobación se ejecutan en el orden en el que aparecen en la sección de ejecución del manifiesto.
Al agregar una referencia para una secuencia de comandos nueva en la sección de ejecución de un archivo de manifiesto, debe especificar el nombre de un punto de comprobación que se pueda utilizar para pausar la generación de la imagen antes o después de que esta secuencia de comandos realice su tarea. Si lo desea, puede incluir un mensaje personalizado asociado con el nombre del punto de comprobación. Si este mensaje se omite, la ruta de la secuencia de comandos se utilizará como el mensaje del punto de comprobación predeterminado. El mensaje del punto de comprobación muestra cuando se ejecuta el punto de comprobación durante el proceso de generación.
Nota - En lugar de utilizar números, utilice nombres significativos para los puntos de comprobación. Si se agregan secuencias de comandos nuevas, estos nuevos puntos para esos nuevos comandos intenten una numeradas punto pedido.
El siguiente punto de comprobación de ejemplo hace referencia a una secuencia de comandos personalizada llamada “my-script”.
<checkpoint name="my-script" desc="my new script" mod_path="solaris_install/distro_const/checkpoints/custom_script" checkpoint_class="CustomScript"> <args>/tmp/myscript.sh</args> </checkpoint>
Aquí {PKG_IMAGE_PATH} se especifica como el parámetro de generación en la sección de argumentos.
<checkpoint name="my-script" desc="my new script" mod_path="solaris_install/distro_const/checkpoints/my_script" checkpoint_class="CustomScript"> <args>/tmp/myscript.sh {PKG_IMAGE_PATH}</args> </checkpoint>
Si se incluyen en el punto de comprobación, los valores de {PKG_IMAGE_PATH} y {BOOT_ARCHIVE} son sustituidos por la utilidad distro_const con <ZFS Dataset>/build_data/pkg_image y <ZFS Dataset>/build_data/boot_archive respectivamente.
Puede generar la imagen en un solo paso. También, para comprobar el estado de la generación, puede detener y reiniciar el proceso de generación en distintos puntos de comprobación.
Para obtener instrucciones, consulte el Capítulo 3, Generación de una imagen.
La salida de la generación muestra la ubicación de los archivos de registro.