JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Installation des systèmes Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Français)
search filter icon
search icon

Informations document

Préface

Partie I Options d'installation Oracle Solaris 11.1

1.  Présentation des options d'installation

Partie II Installation à partir du média d'installation

2.  Préparation à l'installation

3.  Utilisation de Live Media

4.  Utilisation du programme d'installation en mode texte

5.  Installations automatisées initialisées à partir d'un média

6.  Annulation de la configuration ou reconfiguration d'une instance Oracle Solaris

Partie III Installation à l'aide d'un serveur d'installation

7.  Installation automatisée de plusieurs clients

8.  Configuration d'un serveur d'installation

9.  Personnalisation des installations

10.  Approvisionnement du système client

11.  Configuration du système client

12.  Installation et configuration des zones

13.  Exécution d'un script personnalisé lors de la première initialisation

Implémentation des contrôles d'exécution unique à la première initialisation

Procédure d'exécution unique à la première initialisation

Création d'un script à exécuter à la première initialisation

Création d'un fichier manifeste SMF

Utilisation de l'outil de création de manifeste

Personnalisation du manifeste généré

Création d'un package IPS pour le script et le service

Création et publication du package IPS

Installation du package de première initialisation sur le client AI

Installation du package IPS

Test du service de première initialisation

Mise à jour du script ou du service

14.  Installation de systèmes clients

15.  Dépannage des installations automatisées

Partie IV Exécution de tâches connexes

A.  Utilisation d'Oracle Configuration Manager

B.  Utilisation de l'utilitaire des pilotes de périphérique

Index

Création d'un fichier manifeste SMF

Créez un fichier manifeste SMF qui définit un service qui exécute ce script.

Utilisation de l'outil de création de manifeste

La commande svcbundle permet de générer un manifeste de service valide. Dans l'exemple suivant, notez que, par défaut, un manifeste généré par la commande svcbundle spécifie un service transitoire et spécifie la dépendance multi-user.

Exemple 13-3 Manifeste de service SMF généré

Dans la commande suivante, le nom du script indiqué dans Création d'un script à exécuter à la première initialisation est spécifié comme valeur de start-method. Le nom du script est spécifié en tant que /opt/site/first-boot-script.sh car le package créé dans Création d'un package IPS pour le script et le service installe le script first-boot-script.sh dans /opt/site/first-boot-script.sh.

Dans la commande suivante, la propriété completed est spécifiée par une liste séparée par des deux-points de noms de groupes de propriétés, de noms de propriétés, de types de propriétés et de valeurs initiales de propriétés.

$ 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

Dans le manifeste de service généré affiché ci-dessous, le script de première initialisation, /opt/site/first-boot-script.sh, correspond à la valeur de l'attribut exec de la méthode start. La propriété completed est spécifiée dans l'élément instance qui définit l'instance par défaut de ce service, 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>

Personnalisation du manifeste généré

Le manifeste de service généré à l'aide de la commande svcbundle peut vous suffire sans modification nécessaire. L'exemple suivant montre une modification du manifeste de service.

Si vous modifiez un manifeste de service, la commande svccfg validate permet d'assurer que le manifeste est toujours valide.

Exemple 13-4 Manifeste de service SMF personnalisé

Dans la copie suivante du manifeste de service généré, le délai d'attente de 60 secondes exec_method par défaut a été augmenté pour la méthode start. Assurez-vous que la méthode start dispose du temps adéquat pour exécuter le script de première initialisation.

<?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