JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Instalación de sistemas Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

Parte I Opciones de instalación de Oracle Solaris 11.1

1.  Descripción general de opciones de instalación

Parte II Instalación con medios de instalación

2.  Preparación de la instalación

3.  Uso de Live Media

4.  Uso del instalador de texto

5.  Instalaciones automatizadas que se inician desde medios

6.  Anulación de configuración o reconfiguración de una instancia de Oracle Solaris

Parte III Instalación con un servidor de instalación

7.  Instalación automatizada de varios clientes

8.  Configuración de un servidor de instalación

9.  Personalización de instalaciones

10.  Aprovisionamiento del sistema cliente

11.  Configuración del sistema cliente

12.  Instalación y configuración de zonas

13.  Ejecución de una secuencia de comandos personalizada durante el primer inicio

Implementación de controles de ejecución única en el primer inicio

Cómo garantizar una ejecución única en el primer inicio

Creación de una secuencia de comandos que se ejecute en el primer inicio

Creación de un archivo de manifiesto SMF

Uso de la herramienta de creación de manifiestos

Personalización del manifiesto generado

Creación de un paquete IPS para la secuencia de comandos y el servicio

Cómo crear y publicar el paquete IPS

Instalación del paquete del primer inicio en el cliente AI

Cómo instalar el paquete IPS

Prueba del servicio del primer inicio

Cómo actualizar la secuencia de comandos o el servicio

14.  Instalación de sistemas cliente

15.  Resolución de problemas en instalaciones automatizadas

Parte IV Tareas relacionadas

A.  Uso de Oracle Configuration Manager

B.  Uso de la Utilidad de controlador de dispositivos

Índice

Creación de un archivo de manifiesto SMF

Cree un archivo de manifiesto SMF que defina un servicio que ejecute una secuencia de comandos.

Uso de la herramienta de creación de manifiestos

Puede utilizar el comando svcbundle para generar un manifiesto de servicio válido. En el siguiente ejemplo, observe que, de manera predeterminada, un manifiesto generado por el comando svcbundle especifica un servicio temporal y la dependencia multi-user.

Ejemplo 13-3 Manifiesto generado del servicio SMF

En el comando siguiente, el nombre de la secuencia de comandos que se muestra en Creación de una secuencia de comandos que se ejecute en el primer inicio se especifica como valor de start-method. El nombre de la secuencia de comandos se especifica como /opt/site/first-boot-script.sh porque el paquete creado en Creación de un paquete IPS para la secuencia de comandos y el servicio instala la secuencia de comandos first-boot-script.sh en /opt/site/first-boot-script.sh.

En el comando siguiente, la propiedad completed se especifica mediante una lista separada por dos puntos de nombre de grupo de propiedades, nombre de propiedad, tipo de propiedad y valor de propiedad inicial.

$ svcbundle -s service-name=site/first-boot-script-svc \
-s start-method=/opt/site/first-boot-script.sh \
-s instance-property=config:completed:boolean:false \
> first-boot-script-svc-manifest.xml

En el manifiesto de servicio generado que se muestra a continuación, la secuencia de comandos del primer inicio, /opt/site/first-boot-script.sh, representa el valor del atributo exec del método start. La propiedad completed se especifica en el elemento instance que define la instancia predeterminada de este servicio, first-boot-script-svc:default.

<?xml version="1.0" ?>
<!DOCTYPE service_bundle
  SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
    Manifest created by svcbundle (2012-Jul-13 16:39:30-0700)
-->
<service_bundle type="manifest" name="site/first-boot-script-svc">
    <service version="1" type="service" name="site/first-boot-script-svc">
        <!--
            The following dependency keeps us from starting until the
            multi-user milestone is reached.
        -->
        <dependency restart_on="none" type="service"
            name="multi_user_dependency" grouping="require_all">
            <service_fmri value="svc:/milestone/multi-user"/>
        </dependency>
        <exec_method timeout_seconds="60" type="method" name="start"
            exec="/opt/site/first-boot-script.sh"/>
        <!--
            The exec attribute below can be changed to a command that SMF
            should execute to stop the service.  See smf_method(5) for more
            details.
        -->
        <exec_method timeout_seconds="60" type="method" name="stop"
            exec=":true"/>
        <!--
            The exec attribute below can be changed to a command that SMF
            should execute when the service is refreshed.  Services are
            typically refreshed when their properties are changed in the
            SMF repository.  See smf_method(5) for more details.  It is
            common to retain the value of :true which means that SMF will
            take no action when the service is refreshed.  Alternatively,
            you may wish to provide a method to reread the SMF repository
            and act on any configuration changes.
        -->
        <exec_method timeout_seconds="60" type="method" name="refresh"
            exec=":true"/>
        <property_group type="framework" name="startd">
            <propval type="astring" name="duration" value="transient"/>
        </property_group>
        <instance enabled="true" name="default">
            <property_group type="application" name="config">
                <propval type="boolean" name="completed" value="false"/>
            </property_group>
        </instance>
        <template>
            <common_name>
                <loctext xml:lang="C">
                    <!--
                        Replace this comment with a short name for the
                        service.
                    -->
                </loctext>
            </common_name>
            <description>
                <loctext xml:lang="C">
                    <!--
                        Replace this comment with a brief description of
                        the service
                    -->
                </loctext>
            </description>
        </template>
    </service>
</service_bundle>

Personalización del manifiesto generado

Es posible que el manifiesto de servicio generado con el comando svcbundle cumpla sus requisitos sin necesidad de realizar modificaciones. En el siguiente ejemplo, se muestra una modificación del manifiesto de servicio.

Si modifica un manifiesto de servicio, utilice el comando svccfg validate para garantizar que el manifiesto siga siendo válido.

Ejemplo 13-4 Manifiesto personalizado del servicio SMF

En la siguiente copia del manifiesto de servicio generado, el tiempo de espera predeterminado de exec_method de 60 segundos se incrementó para el método start. Asegúrese de que el método start dispone de tiempo suficiente para ejecutar la secuencia de comandos del primer inicio.

<?xml version="1.0" ?>
<!DOCTYPE service_bundle
  SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
    Manifest created by svcbundle (2012-Jul-13 16:39:30-0700)
-->
<service_bundle type="manifest" name="site/first-boot-script-svc">
    <service version="1" type="service" name="site/first-boot-script-svc">
        <!--
            The following dependency keeps us from starting until the
            multi-user milestone is reached.
        -->
        <dependency restart_on="none" type="service"
            name="multi_user_dependency" grouping="require_all">
            <service_fmri value="svc:/milestone/multi-user"/>
        </dependency>
        <!--
            Make sure the start method has adequate time to run the script.
        -->
        <exec_method timeout_seconds="360" type="method" name="start"
            exec="/opt/site/first-boot-script.sh"/>
        <!--
            The exec attribute below can be changed to a command that SMF
            should execute to stop the service.  See smf_method(5) for more
            details.
        -->
        <exec_method timeout_seconds="60" type="method" name="stop"
            exec=":true"/>
        <!--
            The exec attribute below can be changed to a command that SMF
            should execute when the service is refreshed.  Services are
            typically refreshed when their properties are changed in the
            SMF repository.  See smf_method(5) for more details.  It is
            common to retain the value of :true which means that SMF will
            take no action when the service is refreshed.  Alternatively,
            you may wish to provide a method to reread the SMF repository
            and act on any configuration changes.
        -->
        <exec_method timeout_seconds="60" type="method" name="refresh"
            exec=":true"/>
        <property_group type="framework" name="startd">
            <propval type="astring" name="duration" value="transient"/>
        </property_group>
        <instance enabled="true" name="default">
            <property_group type="application" name="config">
                <propval type="boolean" name="completed" value="false"/>
            </property_group>
        </instance>
        <template>
            <common_name>
                <loctext xml:lang="C">
                    <!--
                        Replace this comment with a short name for the
                        service.
                    -->
                </loctext>
            </common_name>
            <description>
                <loctext xml:lang="C">
                    <!--
                        Replace this comment with a brief description of
                        the service
                    -->
                </loctext>
            </description>
        </template>
    </service>
</service_bundle>
$ svccfg validate first-boot-script-svc-manifest.xml