Todos los campos del archivo de manifiesto proporcionan valores preestablecidos que crearán el tipo de imagen ISO que necesita. Puede editar manualmente estos campos preestablecidos en un archivo de manifiesto para personalizar aún más la imagen resultante.
En la tabla siguiente, se describen los principales elementos de los archivos de manifiesto de ejemplo.
|
Utilice el siguiente elemento para proporcionar un nombre predeterminado o personalizado para la imagen que desea generar:
<distro name="Oracle_Solaris_Text_X86" add_timestamp="false">
Si desea generar varias versiones de una imagen y conservar las imágenes incrementales, puede cambiar la variable timestamp a “true”, y se anexará automáticamente un indicador de fecha y hora al nombre de cada imagen.
Si necesita especificar un proxy HTTP, quite el comentario del elemento distro name que incluye la variable proxy y proporcione la ubicación del proxy.
Este elemento de menú de inicio especifica las modificaciones del menú de inicio que se aplicarán a la imagen.
En el ejemplo siguiente, se aplicará a la imagen un menú de inicio especializado con el título “boot1”. El atributo timeout especifica el tiempo que transcurre antes de que se active automáticamente la entrada de inicio predeterminada.
<boot_mods title="boot1" timeout="5">
Dentro del elemento de menú de inicio, puede agregar entradas de menú de inicio individuales. Para ello, agregue un elemento boot_entry nuevo para cada entrada nueva. Se agregan entradas de forma secuencial al menú de inicio en el orden determinado por el valor de atributo insert_at de “inicio” o “fin” para cada entrada de inicio.
Vea 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 información detallada, consulte la página del comando man dc_manifest(4).
Puede personalizar el elemento target. Este elemento define el conjunto de datos de la agrupación ZFS que se utilizará para la generación. Este conjunto de datos representa el área donde se creará la imagen. Debe proporcionar una ubicación válida para el conjunto de datos. Debe comprobar el área de generación predeterminada para asegurarse de que la creación no destruirá el contenido que necesita conservar en el sistema. Modifique el área de generación si es necesario.
En el siguiente ejemplo, se muestra un elemento target.
<target> <logical> <zpool action="use_existing" name="rpool"> <dataset> <filesystem name="dc/sample-dataset-location" action="preserve"/> </dataset> </zpool> </logical> </target>
El siguiente elemento especifica un editor en el que el constructor de distribuciones puede obtener paquetes para descargar y usar para generar la imagen.
<software name="transfer-ips-install">
En el elemento source anidado en la sección de nombre de software, edite los elementos publisher name y origin name para especificar qué editor se debe utilizar y dónde se encuentra el repositorio de paquetes. La ubicación del repositorio puede ser una ruta NFS o un directorio local. Se pueden enumerar varios editores. Cuando el constructor de distribuciones intenta ubicar paquetes para instalar, la búsqueda en los editores se realiza en el orden en que se muestran aquí.
Si se deben especificar reflejos para un editor, quite el comentario y edite el elemento mirror name.
En el ejemplo siguiente, se muestra un elemento source detectado en el elemento software name.
<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"/> </publisher> <publisher name="publisher3.org"> <origin name="http://example3.com/dev"/> </publisher> <publisher name="publisher4"> <origin name="file:///net/myserver/publisher4/repo"/> </publisher> </source>
Para obtener más información sobre el uso de los editores, consulte Agregación y actualización de software en Oracle Solaris 11.2 .
El elemento software_data con el atributo install muestra el conjunto de paquetes que instalará para crear un determinado tipo de imagen, según el manifiesto que se utiliza. Por ejemplo, el manifiesto dc_livecd.xml muestra los paquetes necesarios para generar una imagen Live Media. Cada etiqueta name muestra el nombre de un paquete o el nombre de un paquete de grupo 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, agregue una etiqueta name a cada paquete para anexar los nombres de paquetes.
De forma predeterminada, se instala la última versión de paquete disponible en el repositorio especificado. Si se necesita otra versión, anexe el número de versión a la referencia de paquete con el siguiente formato:
<name>pkg:/group/system/solaris-desktop@0.5.11-0.build#</name>
Además, es posible que no se instalen paquetes con una determinada versión si se instalan otros paquetes con una versión en conflicto según se especifica en el archivo de manifiesto de un servicio de instalación automatizada. Consulte el Capítulo 9, Personalización de instalaciones de Instalación de sistemas Oracle Solaris 11.2 .
En este ejemplo, se especifica un segundo editor, mypublisher. Se especifican paquetes adicionales, mypackage1 y mypackage2.
Durante el proceso de generación, los editores se comprueban en el orden en que se muestran. Si no se encuentran paquetes en el primer editor, los paquetes especificados se buscan en el siguiente editor.
<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 utilizar para desinstalar un paquete individual o para desinstalar una definición de paquete de grupo.
El atributo uninstall resulta especialmente útil si desea instalar un paquete de grupo completo, pero desea omitir uno o más paquetes individuales de dicho grupo. Puede utilizar el atributo uninstall para eliminar primero la definición de paquete de grupo. A continuación, puede desinstalar paquetes individuales que se instalaron como parte de un paquete de grupo.
Por ejemplo, es posible que haya decidido generar una imagen de instalación Live Media. La imagen de instalación Live Media predeterminada incluye un explorador Firefox en el paquete de grupo del escritorio.
Si desea omitir el explorador Firefox de la imagen que desea generar, debe hacer lo siguiente:
Instale el paquete de grupo solaris-desktop que incluye todo el software para el escritorio Live Media habitual. Consulte Enumeración de los paquetes para instalar.
Desinstale la definición de paquete de grupo solaris-desktop con el atributo uninstall, de la siguiente manera:
<software_data action="uninstall"> <name>pkg:/group/system/solaris-desktop</name> </software_data>
Ahora que los paquetes individuales no están enlazados en una definición de grupo, puede volver a utilizar el atributo uninstall para desinstalar el paquete de Firefox.
<software_data action="uninstall"> <name>pkg:/web/browser/firefox</name> </software_data>
También puede combinar los pasos 2 y 3 en una entrada, de la siguiente forma:
<software_data action="uninstall"> <name>pkg:/group/system/solaris-desktop</name> <name>pkg:/web/browser/firefox</name> </software_data>
Anexe paquetes adicionales para desinstalar al final de la sección de desinstalación.
El elemento software name afecta un sistema una vez que ese sistema se instaló con la imagen creada mediante el constructor de distribuciones.
<software name="set-ips-attributes">
Proporcione la etiqueta publisher name y la etiqueta opcional mirror name para especificar dónde puede obtener el sistema instalado otros paquetes para descargar e instalar.
También puede establecer atributos IPS en este elemento. Consulte información sobre la propiedad IPS en la página del comando man pkg(1).
El elemento execution del manifiesto muestra una serie de puntos de comprobación que se ejecutan durante el proceso de creación de imágenes. 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.
Durante el proceso de creación de imágenes, los puntos de comprobación modifican el contenido del área de generación especificada en el manifiesto.
El área de generación contiene los siguientes directorios:
ZFS dataset/build_data/pkg_image
ZFS dataset/build_data/boot_archive
Donde la variable ZFS dataset está especificada por el elemento target en el manifiesto.
Durante el proceso de generación, todos los elementos que se incluirán en la imagen final se agregan al directorio pkg_image. Los archivos del directorio boot_archive independiente se utilizan durante el proceso de generación para crear un archivo de almacenamiento de inicio que también se agrega al directorio pkg_image.
En la siguiente lista, se ofrece una breve descripción de cada punto de comprobación predeterminado en el orden en que se ejecutan en la mayoría de los manifiestos.
transfer-ips-install: en este punto de comprobación, el constructor de distribuciones establece contacto con los editores IPS y agrega a la imagen los paquetes que se enumeran en el elemento software_data del manifiesto.
set-ips-attributes: en este punto de comprobación, el constructor establece el editor que utilizará el sistema instalado. Los valores establecidos por este punto de comprobación no son relevantes si desea generar una imagen de instalación automatizada.
pre-pkg-img-mod: en este punto de comprobación, el constructor importa en la imagen los archivos del servicio SMF que se especificaron en el elemento configuration del manifiesto. Además, el constructor modifica algunos archivos para optimizar la imagen.
Todos los cambios realizados hasta este punto de comprobación se incluyen en la imagen que se desea generar y en el archivo raíz. Debe agregar nuevos puntos de comprobación para las secuencias de comandos personalizadas antes o inmediatamente después del punto de comprobación pre-pkg-img-mod si desea asegurarse de que los cambios de las secuencias de comandos personalizadas se incorporen en el archivo raíz y en la imagen.
ba-init: en este punto de comprobación, el constructor rellena el archivo raíz con los archivos enumerados en la sección ba-init del manifiesto. Estos archivos se copian del área pkg_image al área root_archive.
ba-config: en este punto de comprobación, el constructor realiza modificaciones adicionales en los archivos copiados al archivo raíz. El constructor crea enlaces simbólicos a otros archivos que no se necesitan hasta más adelante en el proceso de inicio a fin de minimizar el tamaño del archivo raíz.
ba-arch: en este punto de comprobación, el constructor empaqueta el archivo raíz y crea el archivo raíz como un archivo dentro del directorio pkg_image. El constructor también aplica todas las optimizaciones al archivo raíz que son específicas del tipo de sistema que se desea crear. Después de este punto de comprobación, los cambios en las especificaciones del archivo de inicio realizados por secuencias de comandos personalizadas no se integrarán en el archivo raíz porque éste ya se empaquetó.
grub-setup: en este punto de comprobación, el constructor configura el menú de GRUB2 según las entradas especificadas en la sección boot_entry del manifiesto. Este punto de comprobación sólo se aplica a las imágenes de los sistemas x86.
pkg-img-mod: en este punto de comprobación, el constructor crea los principales archivos de la imagen que se desea generar y optimiza el área pkg_image. El constructor mueve los archivos del directorio pkg_image y crea el archivo de la imagen. Todos los elementos del directorio pkg_image se incluyen en la imagen. Las adiciones posteriores a este punto de comprobación no se incluirán en la imagen.
create-iso: en este punto de comprobación, se generan los archivos .iso, incluidos todos los elementos del directorio pkg_image.
create-usb: en este punto de comprobación, se genera el archivo .usb a partir del archivo .iso generado.
Al observar los campos específicos incluidos en las secciones de punto de comprobación, cada etiqueta checkpoint name incluye el atributo mod-path que especifica dónde se encuentra la secuencia de comandos del punto de comprobación.
Algunas de las etiquetas checkpoint predeterminadas incluyen argumentos con valores predeterminados proporcionados. En el siguiente punto de comprobación de ejemplo del manifiesto dc_ai_sparc.xml, se crea un archivo de inicio para la generación de imágenes y se hace referencia a una secuencia de comandos que llevará a cabo esa tarea. En el punto de comprobación de ejemplo, también se incluyen campos de argumentos con valores específicos proporcionados para cada uno de ellos.
<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 palabras clave que se deben transferir al punto de comprobación durante el proceso de generación. Dentro del elemento kwargs, hay elementos arg name que se pueden utilizar para especificar palabras clave individuales que se transferirán al punto de comprobación. Además, el elemento arglist contiene una lista de varios valores argitem que se transferirán al punto de comprobación. En este ejemplo, se incluye una lista de archivos no comprimidos en el elemento arglist.
Todos los elementos de lista kargs se escriben entre comillas dobles. Cuando no se utilizan comillas dobles o si un juego de comillas dobles abarca la cadena completa, entonces la cadena completa, 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 usar durante la generación de una imagen, debe agregar un elemento checkpoint que haga referencia a 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 haga referencia a la ubicación de la secuencia de comandos personalizada. Para obtener información adicional y ejemplos, consulte Creación y uso de secuencias de comandos personalizadas.
Utilice las opciones del comando distro_const para controlar cómo detener y reiniciar el proceso de generación en puntos de comprobación determinados. Consulte Cómo generar una imagen en etapas.
Ejemplo 2-2 Agregación de paquetes SVR4En este ejemplo, se agrega un nuevo punto de comprobación al manifiesto. Este nuevo punto de comprobación muestra los paquetes SVR4 que se agregarán a la imagen y su ubicación. Luego, se hace referencia a este nuevo punto de comprobación en la sección de ejecución.
En primer lugar, se agrega un nuevo elemento software para crear el nuevo punto de comprobación. Este punto de comprobación especifica SVR4 como tipo de software, dónde se encuentran los paquetes y dónde se instalarán.
Además, los paquetes SVR4 específicos que se instalarán se enumeran en el elemento software_data.
<software name="transfer-svr4-install" type="SVR4"> <destination> <dir path="{PKG_IMAGE_PATH}"/> </destination> <source> <publisher/> <origin name="/path/to/packages"/> </publisher> </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 reemplazados por la utilidad distro_const por 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. La etiqueta checkpoint name puede ser cualquier cadena, pero para este ejemplo, checkpoint_class debe ser TransferSVR4.
<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 los elementos software name y checkpoint name deben coincidir. En este ejemplo, ambos son “transfer-svr4–install”.
Ejemplo 2-3 Creación de hashes de los mediosEste punto de comprobación permite a los usuarios generar automáticamente hashes de los medios generados por distro_const mediante el punto de comprobación de sumas de comprobación en el manifiesto DC.
<checkpoint name="checksums" desc="Checksum calculation for media" mod_path="solaris_install/distro_const/checkpoints/checksums" checkpoint_class="Checksums"> <kwargs> <arglist name="algorithms"> <argitem file_path="/tmp/md5sums.txt">md5</argitem> <argitem>sha1</argitem> <argitem>sha224</argitem> <argitem>sha256</argitem> <argitem>sha384</argitem> <argitem>sha512</argitem> </arglist> </kwargs> </checkpoint>
El elemento arglist incluye todos los algoritmos que se utilizan para generar los hashes de los medios generados. Cada argitem especifica un algoritmo. Los algoritmos válidos se pueden determinar mediante la ejecución de /usr/bindigest -l. Cada argitem puede tener un atributo path que especifique la ruta absoluta de un archivo adicional que se agregará con los hashes producidos por ese algoritmo. Si no se especifican algoritmos, el valor predeterminado es md5.
Mientras se genera la imagen, se generan archivos para cada algoritmo que contienen sumas de comprobación para cada medio.