Guide du programme d'installation automatisée Oracle Solaris 11 Express

Chapitre 4 Spécification des instructions d'installation

Lorsque vous créez un service d'installation IA, vous obtenez un fichier manifest IA par défaut expliquant l'installation des clients. Reportez-vous à la section Consultez les instructions d'installation par défaut pour plus d'informations sur le fichier manifest IA par défaut et comment personnaliser le fichier manifest par défaut.

Ce chapitre explique la créétion de fichiers manifest IA personnalisés pour des clients particuliers.

Balises de fichier manifest IA

Le fichier manifest IA est un fichier XML constitué d'éléments de balises, d'attributs et de valeurs qui définissent le mode d'installation d'un client.


Exemple 4–1 Modèle du fichier manifest IA

Cet exemple montre l'ensemble des balises requises pour chaque fichier manifest IA. Beaucoup d'autres balises sont disponibles, mais elles ne sont pas requises. Par exemple, ce modèle n'affiche aucune balise pour la définition d'une cible d'installation ou pour l'installation automatique de pilotes manquants. La plupart des balises disponibles pour un fichier manifest IA sont présentées dans le Tableau 4–1 et abordées dans ce chapitre.

<auto_install>
  <ai_instance name="AI_manifest_name">
    <software>
      <source>
        <publisher name="publisher_name">
          <origin name="repository_URI"/>
        </publisher>
      </source>
      <software_data action="install" type="IPS">
        <name>pkg:/entire</name>
        <name>pkg:/babel_install</name>
      </software_data>
      <software_data action="uninstall" type="IPS">
        <name>pkg:/babel_install</name>
        <name>pkg:/slim_install</name>
      </software_data>
    </software>
  </ai_instance>
</auto_install>

Le tableau suivant répertorie les balises les plus couramment utilisées dans les fichiers manifest IA. Le tableau vous indique où trouver des informations à propos de l'utilisation des balises.

Tableau 4–1 Mappe de balises de fichier manifest IA

Éléments et attributs de balise 

Référence 

<auto_install>
  <ai_intance name="" http_proxy="" auto_reboot="">

Création d'un fichier manifest IA personnalisé

<target>
  <target_device>
    <disk>
      <disk_name name="" name_type=""/>

Spécifications déterministes de disque cible dans Définition d'une cible pour l'installation

<target>
  <target_device>
    <disk>
      <iscsi name="" source="" target_lun="" target_port="">
        <ip>

Exemple 4–6

<target>
  <target_device>
    <disk>
      <disk_keyword key="boot_disk"/>

Exemple 4–7

<target>
  <target_device>
    <disk>
      <disk_prop dev_type="" dev_vendor="" dev_size=""/>

Spécifications non déterministes de disque cible

<target>
  <target_device>
    <disk>
      <partition action="">
      <partition name="" part_type="">
        <size start_sector="" val=""/>

Configuration du partitionnement sur un client x86

<target>
  <target_device>
    <disk>
      <slice action="">
      <slice name="" is_root="" force="">
        <size val=""/>

Configuration de tranches sur un disque

<target>
 <target_device>
   <swap>
     <zvol action="" name="">
       <size val=""/>

Configuration du swap et du vidage sur le périphérique d'installation

<target>
  <target_device>
     <dump>
       <zvol action="" name="">
         <size val=""/>

Configuration du swap et du vidage sur le périphérique d'installation

<software name="">
  <source>
    <publisher name="">
      <origin name=""/>

Spécification d'une source de packages à installer dans Installation de logiciels

<software name="">
  <software_data action="" type="">
    <name>

Spécification des packages à installer

<add_drivers>
  <search_all addall="">
    <source>
      <publisher name="">
        <origin name=""/>

Identification et installation de pilotes manquants sur une cible d'installation

Création d'un fichier manifest IA personnalisé

    Pour créer et appliquer un fichier manifest IA personnalisé, suivez les étapes ci-après :

  1. Copiez un fichier manifest IA existant. Une copie du fichier manifest IA par défaut obtenue lors de la création d'un service d'installation se trouve à chemin_image_service_installation/auto_install/default.xml.

    Copiez ce fichier manifest par défaut ou un autre fichier manifest IA sous un nouveau nom de fichier.

  2. Modifiez le nouveau fichier, en ajoutant des balises et des valeurs en fonction des informations figurant dans ce chapitre.

  3. Ajoutez le nouveau fichier manifest IA au service d'installation IA, en spécifiant des critères définissant les clients qui doivent utiliser ces instructions d'installation. Reportez-vous à la section Ajout d'un fichier manifest IA pour des exemples d'ajout de fichier manifest IA à un service d'installation. Reportez-vous à la section Chapitre 3Personnalisation des installations pour plus d'informations sur la spécification de critères de clients.


Remarque –

Si un fichier manifest non valide est fourni à un client, l'installation automatisée est interrompue. Pour rechercher la cause de l'échec de la validation, voir /tmp/install_log sur le client.


Les balises <auto_install> et <ai_instance> entourent l'ensemble du fichier manifest IA.

La balise <ai_instance> possède les attributs suivants :

Un fichier manifest IA possède en général les sections suivantes dans les balises <auto_install> et <ai_instance> :

Définition d'une cible pour l'installation

Si vous ne spécifiez pas un emplacement cible sur un client pour l'installation du SE Oracle Solaris, le programme d'installation automatisée sélectionne une cible par défaut.

L'emplacement cible par défaut pour l'installation est le premier disque détecté sur chaque client qui répond aux exigences de taille. Reportez-vous à la section Configuration système requise pour les clients. Si la taille d'un disque est supérieure ou égale à la taille recommandée, le programme d'installation sélectionne ce disque en tant que cible d'installation. Si la taille du disque est inférieure à la taille recommandée, le programme d'installation vérifie le disque suivant. Si aucun disque répondant aux exigences de taille n'est détecté, l'installation automatisée échoue pour ce client. Le journal d'installation sous /tmp/install_log contient des informations sur le processus de sélection des disques.

Si vous souhaitez spécifier l'emplacement cible sur un client pour l'installation du SE Oracle Solaris, suivez les instructions de cette section.

Utilisez la balise <target> pour définir une cible pour l'installation sur chaque client. La balise <target> contient la balise <target_device>. La balise <target_device> comporte les éléments suivants :

Spécifications déterministes de disque cible

Chacune des spécifications décrites dans cette section détermine la cible donnée sur laquelle installer le système. Si vous utilisez une spécification décrite dans cette section, vous ne pourrez pas utiliser d'autre spécification cible.

Les éléments de balise dans cette section vous permettent de spécifier un nom de périphérique, un nom de volume, un ID de périphérique, un chemin d'accès de périphérique, un périphérique iSCSI ou le disque d'initialisation.


Remarque –

Les noms de périphériques logiques (c#t#d#) peuvent changer selon les versions du système d'exploitation.



Exemple 4–2 Spécification d'un nom de périphérique cible

Utilisez un name_type de forme ctd pour spécifier un nom de périphérique. Il s'agit de la valeur par défaut si name_type n'est pas spécifié.

L'exemple suivant spécifie un nom de périphérique logique.

<target>
  <target_device>
    <disk>
      <disk_name name="c1t0d0" name_type="ctd"/>
    </disk>
  </target_device>
</target>

L'exemple suivant spécifie un nom MPXIO.

<target>
  <target_device>
    <disk>
      <disk_name name="c0t2000002037CD9F72d0" name_type="ctd"/>
    </disk>
  </target_device>
</target>


Exemple 4–3 Spécification d'un nom de volume cible

Utilisez un name_type de forme volid pour spécifier un nom de volume.

<target>
  <target_device>
    <disk>
      <disk_name name="ai-disk" name_type="volid"/>
    </disk>
  </target_device>
</target>

Le nom de volume peut avoir été défini à l'aide de la commande format(1M), comme indiqué dans l'exemple suivant.


$ format -d c0d0 > /dev/null 2>/dev/null - <<EOF
volname
"ai-disk"
y
quit
EOF


Exemple 4–4 Spécification d'un ID de périphérique cible

Utilisez un name_type de forme devid pour spécifier un ID de périphérique.

<target>
  <target_device>
    <disk>
      <disk_name name="id1,sd@n500000e012596560" name_type="devid"/>
    </disk>
  </target_device>
</target>

Pour obtenir l'ID du périphérique associé à un nom de périphérique de forme c#t#d#, vous pouvez utiliser la commande iostat(1M) avec les options -ien, par exemple.


$ iostat -iEn
c7t0d0             Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: ST31000340NS    Revision:  Device Id:
id1,sd@n500000e012596560
...

La commande iostat ne signale pas l'ID de périphérique sur les invités LDOM. Pour les invités LDOM, utilisez le pilote test de détection de cible comme indiqué dans l'exemple suivant. Ce pilote test est disponible dans le package IPS system/install/tests ainsi que sur l'image IA. Initialisez l'image IA pour exécuter cette commande sur un client qui n'a pas accès aux packages IPS.


# /opt/install-test/bin/tdmgtst -dv | grep ddm_disk_dev_id
ddm_disk_dev_id=id1,vdc@f8498536e4a8ad037000bcb400001

La spécification d'ID de périphérique cible ne fonctionne pas dans xVM/PV, car l'ID de périphérique n'est pas disponible pour les lecteurs virtuels.



Exemple 4–5 Spécification d'un chemin d'accès au périphérique cible

Utilisez un name_type de forme devpath pour spécifier un chemin de périphérique sous /devices.

<target>
  <target_device>
    <disk>
      <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
    </disk>
  </target_device>
</target>

Le chemin d'accès physique est le chemin d'accès auquel est lié le lien symbolique c#t#d#s# sous devices, comme indiqué dans l'exemple suivant.


$ ls -l /dev/dsk/c2t0d0s0
/dev/dsk/c2t0d0s0 -> ../../devices/pci@7c0/pci@0/pci@1/pci@0/ide@8/sd@0,0:a


Exemple 4–6 Spécification d'une cible iSCSI

La technologie iSCSI permet d'effectuer les installations sur un lecteur de disque hébergé par un autre ordinateur sur le même réseau TCP/IP.

Pour spécifier une cible iSCSI en tant que cible d'installation, vous devez d'abord créer une cible d'initialisation iSCSI. Utilisez la commande iscsiadm(1M) pour créer une cible d'initialisation iSCSI et pour obtenir les valeurs de nom et IP pour la balise iscsi dans le fichier manifest IA.

Pour spécifier une cible iSCSI pour les installations automatisées, spécifiez un nom de cible iSCSI et une adresse IP comme indiqué dans l'exemple suivant. Le nom de la cible peut être un nom IQN, EUI ou NAA. La valeur de nom ne doit pas contenir plus de 233 caractères.

<target>
  <target_device>
    <disk>
      <iscsi name="c0d2E0001010F68">
        <ip>192.168.1.34</ip>
      </iscsi>
    </disk>
  </target_device>
</target>


Exemple 4–7 Spécification du disque d'initialisation en tant que cible

La balise <disk_keyword> accepte boot_disk en tant que mot-clé. Ce mot-clé spécifie le disque d'initialisation en cours en tant que cible d'installation.

<target>
  <target_device>
    <disk>
      <disk_keyword key="boot_disk"/>
    </disk>
  </target_device>
</target>

Notez les restrictions suivantes concernant le mot-clé boot_disk.


Spécifications non déterministes de disque cible

Vous pouvez utiliser plusieurs spécificateurs non déterministes dans un fichier manifest IA, comme indiqué dans l'exemple suivant.

<target>
  <target_device>
    <disk>
      <disk_prop dev_vendor="hitachi" dev_size="20gb"/>
    </disk>
  </target_device>
</target>

Utilisez la balise <disk_prop> pour spécifier un type de cible, un nom de fournisseur ou une taille cible.

Les exemples suivants présentent deux méthodes différentes pour déterminer le fabricant d'un disque. Notez que ces recherches ne peuvent pas identifier le fabricant des disques ATA.

Utilisez la commande iostat(1M) :


# iostat -En
c2t1d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: HITACHI  Product: HUS10733ASUN72G  Revision: PA05 Serial No: 0602RW159S

Utilisez le pilote test de détection de cible qui est disponible dans l'image IA :


# /opt/install-test/bin/test_td -dv
Disk discovery
Total number of disks: 2
-------------------------------------------------------------------------------
 num |    name|    vendor|  ctype| mtype| rem| lbl| bsize|#of blocks|size [MB]|
-------------------------------------------------------------------------------
   1 |* c2t0d0|   SEAGATE|   scsi| FIXED|  No|   V|   512|  71132959|    34732|
   2 |  c2t1d0|   HITACHI|   scsi| FIXED|  No|   V|   512| 143374738|    70007|
-------------------------------------------------------------------------------

Configuration du partitionnement sur un client x86

Vous pouvez utiliser le fichier manifest IA pour configurer des partitions sur un disque pendant l'installation automatisée. Vous pouvez spécifier une partition en tant que cible d'installation et vous pouvez supprimer des partitions existantes, modifier la taille ou le type d'une partition existante, et créer des partitions.


Remarque –

Les opérations de partition sont utiles pour les clients x86 uniquement.


Utilisez la balise <partition> pour configurer le partitionnement d'un disque. La balise <partition> doit être dans une balise <disk>. La balise <partition> possède les attributs suivants :

Lorsque vous créez une partition, vous pouvez, si vous le souhaitez, spécifier la taille de la nouvelle partition. Si une seule partition est spécifiée et que la taille n'est pas spécifiée, les algorithmes suivants sont utilisés pour calculer la taille de la nouvelle partition. Si plus d'une partition est spécifiée, la taille peut alors être omise pour une seule des spécifications de partition.

La balise <taille> possède les attributs suivants.

Spécification d'une partition en tant que cible d'installation pour un client x86

Sur un client x86, la cible d'installation peut être une partition de disque. Si le disque est partitionné, la cible d'installation doit être une partition Solaris. Une seule partition Solaris peut exister sur un disque. Vous pouvez utiliser une partition Solaris existante ou en créer une nouvelle.

Si une partition existe et que son type est SOLARIS ou 191, cette partition est la cible d'installation par défaut. Si aucune partition Solaris n'existe et que les instructions d'installation ne créent pas de partition Solaris, le programme d'installation automatisée crée une partition Solaris avec l'espace disque restant. Si cet espace est inférieur à l'espace requis pour une installation IA, l'installation échoue pour ce client.


Exemple 4–8 Spécification d'une partition Solaris existante en tant que cible d'installation

Dans cet exemple, la cible d'installation est une partition Solaris existante. La cible d'installation est le premier disque trouvé qui contient une partition Solaris (type de partition SOLARIS ou 191). Si aucune partition Solaris existante n'est détectée sur un client spécifique, l'installation automatisée échoue pour ce client.

<target>
  <target_device>
    <disk>
      <partition action="use_existing"/>
    </disk>
  </target_device>
</target>


Exemple 4–9 Spécification d'une nouvelle partition en tant que cible d'installation

Cet exemple ne spécifie aucune action. L'action par défaut est create. Cet exemple crée deux partitions principales.

<target>
  <target_device>
    <disk>
      <partition name="1" part_type="191">
        <size start_sector="200" val="20gb"/>
      </partition>
      <partition name="4" part_type="99">
        <size start_sector="2000" val="20gb"/>
      </partition>
    </disk>
  </target_device>
</target>

Modification des partitions sur un client d'installation x86

En plus de définir une partition en tant que cible d'installation, vous pouvez également supprimer des partitions existantes et en créer de nouvelles pendant l'installation automatisée. Vous pouvez créer une partition étendue ou créer des partitions logiques dans une nouvelle partition ou une partition étendue existante.


Remarque –

Les modifications de partitionnement apportées pendant l'installation automatisée se produisent suivant l'ordre dans lequel les actions delete et create sont répertoriées dans le fichier manifest IA.



Exemple 4–10 Suppression d'une partition existante

Vous pouvez supprimer les partitions existantes lors de l'installation cliente. Spécifiez l'action delete dans la balise <partition> et indiquez le numéro de la partition à supprimer dans l'attribut name.

<target>
  <target_device>
    <disk>
      <partition action="delete" name="3"/>
    </disk>
  </target_device>
</target>


Exemple 4–11 Création d'une partition étendue

Vous pouvez créer une partition étendue dans une table de partition fdisk en tant que partie de votre installation automatisée. Une partition étendue est une partition principale (1, 2, 3 ou 4) de type DOSEXT. Une seule partition principale peut être une partition étendue. Une partition étendue fournit de l'espace pour une ou plusieurs partitions logiques. Plusieurs partitions logiques peuvent être créées dans une partition étendue.

Cet exemple crée une partition étendue de taille maximale.

<target>
  <target_device>
    <disk>
      <partition name="3" part_type="DOSEXT"/>
    </disk>
  </target_device>
</target>


Exemple 4–12 Création d'une partition logique

Cet exemple crée une partition logique de type SOLARIS au sein de la partition étendue existante, en utilisant l'ensemble de l'espace libre disponible de la partition étendue.

En l'absence d'autres partitions logiques, l'intégralité de la partition étendue est utilisée pour la partition logique. S'il existe plusieurs partitions logiques, la quantité totale d'espace utilisée pour toutes les partitions logiques d'une partition étendue ne doit pas dépasser la quantité totale d'espace de la partition étendue. S'il n'y a pas d'espace disponible pour la partition logique parce qu'une autre partition logique utilise déjà tout l'espace, la création de partition échoue.

<target>
  <target_device>
    <disk>
      <partition name="7" part_type="SOLARIS"/>
    </disk>
  </target_device>
</target>


Exemple 4–13 Création d'une partition étendue contenant des partitions logiques

Cet exemple crée une partition étendue contenant deux nouvelles partitions logiques. Cet exemple contient les tâches suivantes.

<target>
  <target_device>
    <disk>
      <!-- Create an extended partition in the largest block of free space -->
      <partition name="4" part_type="DOSEXT"/>

      <!-- Create a 10G FAT32 logical partition on the extended partition.
           This partition consumes the 1st 10G of the extended partition. -->
      <partition name="5" part_type="FAT32">
        <size val="10gb"/>
      </partition>

      <!-- Create a Solaris logical partition using the
           largest unused free space in the extended partition.
           In this example, the partition uses the remaining space
           in the extended partition. -->
      <partition name="6" part_type="SOLARIS"/>
    </disk>
  </target_device>
</target>

Configuration de tranches sur un disque

Vous pouvez utiliser le fichier manifest IA pour configurer des tranches sur un disque pendant l'installation automatisée. Vous pouvez spécifier une tranche en tant que cible d'installation. Vous pouvez créer de nouvelles tranches, mais également supprimer ou conserver des tranches existantes.

Les tranches sont similaires aux partitions. Les différences entre les tranches et les partitions sont les suivantes :

Utilisez la balise <slice> pour configurer des tranches sur un disque. La balise <slice> doit se produire à l'intérieur d'une balise <disk>. La balise <slice> possède les attributs suivants :

Lorsque vous créez une tranche, vous pouvez, si vous le souhaitez, spécifier sa taille. Si une seule tranche est spécifiée et que la taille n'est pas spécifiée, la tranche correspond à la taille entière du disque. Si plus d'une tranche est spécifiée, la taille peut alors être omise pour l'une des spécifications de tranche. Spécifiez la taille de la tranche dans l'attribut val de la balise <size> de la tranche. Cette taille doit posséder un suffixe d'unités. Consultez la liste de suffixes d'unités dans la description de la propriété de disque dev_size dans Spécifications non déterministes de disque cible.

Spécification d'une tranche en tant que cible d'installation

La cible d'installation peut être une tranche d'un disque.


Exemple 4–14 Spécification d'une nouvelle tranche en tant que cible d'installation

L'exemple suivant crée deux tranches. Le SE Oracle Solaris sera installé sur la tranche 0. La tranche 0 existait déjà et sera remplacée par la nouvelle spécification.

<target>
  <target_device>
    <disk>
      <slice name="0" is_root="true" force="true">
        <size val="20gb"/>
      </slice>
      <slice name="4">
        <size val="20gb"/>
      </slice>
    </disk>
  </target_device>
</target>

Modification de tranches sur le client d'installation

En plus de définir une tranche en tant que cible d'installation, vous pouvez également créer, supprimer et conserver d'autres tranches pendant l'installation automatisée.


Exemple 4–15 Conservation d'une tranche

Spécifiez l'action preserve dans la balise <slice> pour indiquer que cette tranche ne doit pas être modifiée au cours de l'installation. L'exemple suivant explique comment conserver la tranche 4.

<target>
  <target_device>
    <disk>
      <slice name="0" is_root="true">
        <size val="20gb"/>
      </slice>
      <slice action="preserve" name="4"/>
    </disk>
  </target_device>
</target>


Exemple 4–16 Suppression d'une tranche

Spécifiez l'action delete dans la balise <slice> pour supprimer cette tranche au cours de l'installation. L'exemple suivant explique comment supprimer la tranche 4.

<target>
  <target_device>
    <disk>
      <slice name="0" is_root="true">
        <size val="20gb"/>
      </slice>
      <slice action="delete" name="4"/>
    </disk>
  </target_device>
</target>

Configuration du swap et du vidage sur le périphérique d'installation

Vous pouvez utiliser le fichier manifest IA pour configurer le swap et le vidage au cours de l'installation automatisée.

Utilisez la balise <swap> pour configurer le swap sur le périphérique d'installation. Utilisez la balise <dump> pour configurer le vidage sur le périphérique d'installation.

La balise <swap> possède un attribut no_swap facultatif. La valeur de l'attribut no_swap peut être True ou False. La valeur par défaut est False (Faux). Si no_swap="true" est spécifié, le swap n'est pas configuré sur le périphérique d'installation.

La balise <dump> possède un attribut no_dump facultatif. L'attribut no_dump fonctionne de la même façon pour la configuration du vidage que l'attribut no_swap pour la configuration du swap.

Les balises <swap> et <dump> utilisent la balise zvol. La balise zvol possède les attributs suivants :

Pour spécifier la taille du swap ou du vidage, utilisez la balise size dans la balise zvol. L'attribut val de la balise size doit avoir un suffixe d'unités. Consultez la liste de suffixes d'unités dans la description de la propriété de disque dev_size dans Spécifications non déterministes de disque cible.


Exemple 4–17 Configuration de swap sur le périphérique d'installation

<target>
 <target_device>
   <swap>
     <zvol action="create" name="swap">
       <size val="20gb"/>
     </zvol>
  </swap>
 </target_device>
</target>


Exemple 4–18 Annulation de la configuration de swap sur le périphérique d'installation

<target>
 <target_device>
   <swap no_swap"true"/>
 </target_device>
</target>


Exemple 4–19 Configuration du vidage sur le périphérique d'installation

<target>
  <target_device>
     <dump>
       <zvol action="create" name="dump">
         <size val="2gb"/>
       </zvol>
    </dump>
   </target_device
 </target>

Installation de logiciels

L'image d'installation IA n'est pas une installation complète. Les machines client doivent accéder à un référentiel de packages IPS pour terminer leur installation. Le fichier manifest IA doit indiquer au moins un emplacement du référentiel de packages, et vous devez spécifier les noms des packages à installer.

Utilisez la balise <sotware> pour définir les emplacements de référentiels de packages et les noms des packages à installer.

La balise <logiciel> comporte les éléments suivants :

Un fichier manifest IA ne doit pas nécessairement posséder un nombre égal d'éléments <source> et <software_data>. Un élément <software> peut avoir plus d'éléments <source> que <software_data>, ou un élément <software> peut avoir plus d'éléments <software_data> que <source>.

Spécification d'une source de packages à installer

Un référentiel est un emplacement dans lequel les packages IPS sont publiés et à partir duquel les packages sont extraits. Un référentiel peut se trouver sur le réseau local ou sur Internet. Une personne ou une société qui place un package dans un référentiel est appelé un éditeur. Chaque fichier manifest IA doit spécifier au moins un référentiel de packages IPS pour installer le SE Oracle Solaris.


Remarque –

La version SE Oracle Solaris de l'image d'initialisation IA et des packages IPS doit être la même. Le ou les référentiels IPS spécifiés dans le fichier manifest IA doivent contenir des packages pour cette version.


Utilisez la balise <source> pour spécifier un emplacement où le programme d'installation automatisée doit obtenir les packages à installer. Un élément <software> peut contenir plusieurs éléments <source>. Chaque élément <source> peut spécifier un éditeur de package IPS ou un chemin d'accès d'un répertoire.


Exemple 4–20 Spécification de référentiels de package IPS

Dans cet exemple, solaris est l'éditeur de package IPS préféré. Il s'agit du référentiel qui sera recherché en premier pour les packages IPS. Ce référentiel doit contenir les packages requis pour installer le SE Oracle Solaris. Ce référentiel doit contenir des packages pour le SE Oracle Solaris dont la version doit être la même que l'image d'initialisation IA associée à ce service d'installation.

Le référentiel mirror_repo contient exactement le même contenu que le référentiel solaris. Ce référentiel sera utilisé si la connexion au référentiel solaris est trop lente.

Le contenu du référentiel additional_repo est différent de celui du référentiel solaris. Ce référentiel sera utilisé si un package IPS spécifié n'est pas détecté dans le référentiel solaris. Le référentiel additional_repo peut être un référentiel sur le réseau local qui contient les packages IPS personnalisés, par exemple.

<software name="IPS">
  <source>
    <publisher name="solaris">
      <origin name="http://pkg.oracle.com/solaris/release"/>
      <mirror name="http://pkg.mirror_repo"/>
    </publisher>
  </source>
  <source>
    <publisher>
      <origin name="http://pkg.additional_repo"/>
    </publisher>
  </source>
</software>

Spécification d'un proxy HTTP pour accéder à un référentiel IPS

Un client doit accéder à un référentiel IPS pour installer le SE Oracle Solaris. Dans la configuration recommandée décrite dans Chapitre 1Présentation du programme d'installation automatisée, un serveur DHCP envoie les informations DNS au client. Ces informations DNS sont utilisées pour résoudre l'URI du référentiel IPS en adresse IP.

Si un client n'a pas de connexion directe au serveur du référentiel IPS, le fichier manifest IA peut spécifier un serveur proxy pour permettre au client de sortir de son réseau. Ce proxy s'applique à tous les éditeurs.

La valeur de l'attribut http_proxy de l'élément <ai_instance> est l'URL du proxy comme suit :

<auto_install>
  <ai_instance name="AI_manifest_name" http_proxy="http://192.168.0.101:8080">
    AI_manifest_contents
  </ai_instance>
</auto_install>

Spécification des packages à installer

L'image d'initialisation IA n'est pas une installation complète. Les machines client doivent accéder à un référentiel de packages IPS pour terminer leur installation. Le fichier manifest IA par défaut indique le minimum de packages à installer pour l'installation du SE Oracle Solaris. Affichez la liste des packages à installer dans un élément <software_data> dans un élément <software> l'élément dans le fichier manifest IA.

La balise <software_data> possède les attributs suivants :

L'élément <software_data> contient des éléments <name>. Chaque élément <name> spécifie le nom d'un package à installer. Pour les packages IPS, l'élément <name> peut spécifier le référentiel à utiliser. Reportez-vous à l'exemple Exemple 4–23.


Exemple 4–21 Spécification du minimum de packages IPS à installer

Cet exemple illustre le minimum de packages IPS à installer pour l'installation du SE Oracle Solaris.

Cet exemple spécifie également les packages à désinstaller. Les packages à désinstaller sont des packages de groupe. Les packages de groupe sont des définitions de package qui sont utilisées pour des raisons de commodité pour installer un ensemble d'autres packages. Vous ne pouvez pas désinstaller un package qui a été installé à l'aide d'un package de groupe, sauf si vous désinstallez préalablement la définition de package de groupe. La désinstallation de la définition de package de groupe ne désinstalle pas tous les packages installés avec le package de groupe. Le package babel_install est un package de groupe qui installe slim_install, qui est un autre package de groupe. Après l'installation, slim_install et babel_install sont désinstallés afin qu'un utilisateur puisse ultérieurement désinstaller d'autres packages qui ont été installés en tant qu'éléments de slim_install et babel_install. La possibilité de désinstaller les packages est nécessaire pour la mise à jour et la personnalisation de l'installation. La définition du package babel_install doit être désinstallée en premier afin que la définition du package slim_install puisse être désinstallée.

<software name="IPS">
  <software_data type="IPS">
    <name>pkg:/entire</name>
    <name>pkg:/babel_install</name>
  </software_data>
  <software_data action="uninstall" type="IPS">
    <name>pkg:/babel_install</name>
    <name>pkg:/slim_install</name>
  </software_data>
</software>


Exemple 4–22 Spécification de packages IPS supplémentaires à installer

Dans cet exemple, Oracle Solaris Studio et le plug-in d'interface graphique NetBeans DTrace sont installés.

<software name="IPS">
  <software_data type="IPS">
    <name>pkg:/developer/sunstudio12u1</name>
    <name>pkg:/developer/netbeans/plugin/nb-dtrace</name>
  </software_data>
</software>


Exemple 4–23 Spécification du référentiel IPS dans le nom du package

Dans cet exemple, la suite d'outils OpenOffice et l'utilitaire de messagerie électronique et de gestion d'agenda Evolution sont installés à partir du référentiel IPS example.com.

<software name="IPS">
  <source>
    <publisher name="solaris">
      <origin name="http://pkg.oracle.com/solaris/release"/>
    </publisher>
  </source>
  <source>
    <publisher name="example.com">
      <origin name="http://pkg.example.com/release"/>
    </publisher>
  </source>
  <software_data type="IPS">
    <name>pkg://example.com/openoffice</name>
    <name>pkg://example.com/mail/evolution</name>
  </software_data>
</software>

Identification et installation de pilotes manquants sur une cible d'installation

L'installation par défaut peut ne pas inclure les pilotes pour tous les périphériques d'un client. Dans le fichier manifest IA, vous pouvez demander au programme d'installation automatisée d'effectuer l'une des tâches suivantes, ou les deux :

Utilisez la balise <add_drivers> afin qu'elle indique au programme d'installation automatisée d'effectuer l'une de ces tâches. Dans les deux cas, les pilotes sont, en premier lieu, ajoutés à l'environnement d'initialisation et installés ultérieurement sur la cible lors du processus d'installation automatisée. Le fait de commencer par l'ajout de pilotes manquants à l'environnement d'initialisation permet au programme d'installation automatisée d'accéder à tous les périphériques client au cours de l'installation.


Remarque –

Les packages spécifiés dans la section <add_drivers> peuvent installer uniquement les fichiers du noyau. Certains systèmes de fichiers sur l'image live sont montés en lecture seule. L'installation sur des systèmes de fichiers en lecture seule, comme /usr, échouera. Sur les images live Oracle Solaris, l'ensemble du fichier /kernel est en lecture-écriture. La plupart des pilotes sont installés dans /kernel.


Un fichier manifest IA ne peut pas spécifier plus d'un élément <add_drivers>. L'élément <add_drivers> peut comporter l'un ou les deux éléments suivants :

Si un pilote manquant n'est pas détecté au cours d'une recherche, un message d'avertissement s'affiche, mais l'installation est lancée. Si l'installation est effectuée avec succès, le système redémarre si le fichier manifest IA demande une réinitialisation (auto_reboot="true").

Si un package de pilote indiqué de façon explicite n'est pas trouvé, ou qu'un problème se produit au cours de l'installation de n'importe quel package de pilote (qu'il ait été détecté suite à une recherche ou explicitement spécifié), cette installation de client spécifique est terminée, puis un message s'affiche à propos du pilote manquant et attend la réponse à une invite. Le système ne se réinitialise pas automatiquement lorsque l'installation est terminée. Ce comportement offre la possibilité d'évaluer le message et de déterminer si la réinitialisation réussira. Si une réinitialisation peut réussir sans le pilote manquant, vous pouvez effectuer une réinitialisation manuelle.


Exemple 4–24 Recherche de pilotes manquants

L'élément <search_all> indique au programme d'installation automatisée de rechercher les périphériques auxquels il manque des pilotes et de rechercher les pilotes nécessaires dans une base de données. Cet exemple spécifie un référentiel dans lequel rechercher les pilotes nécessaires. Cet exemple spécifie addall="true" afin d'installer des pilotes qui sont identifiés dans la base de données en tant que pilotes tiers, ainsi que les pilotes qui ne sont pas identifiés en tant que pilotes tiers.

<add_drivers>
  <search_all addall="true">
    <source>
      <publisher name="example.com">
        <origin name="http://pkg.example.com/release"/>
      </publisher>
    </source>
  </search_all>
</add_drivers>


Exemple 4–25 Ajout d'un package à l'aide d'un fichier P5I

Cet exemple ajoute un package pkg(5) explicitement spécifié par le biais d'un fichier P5.

Un type de données logicielles P5I est doté des caractéristiques suivantes :

<add_drivers>
  <software>
    <source>
      <publisher>
        <origin name="http://myserver.example.com/drivers/p5i/0/mydriver.p5i"/>
      </publisher>
    </source>
    <software_data type="P5I"/>
  </software>
</add_drivers>


Exemple 4–26 Ajout d'un package SVR4

Cet exemple ajoute un package SVR4 spécifié explicitement. Le chemin complet name dans la balise <origin> dans l'élément <source> est le répertoire qui contient les packages. La balise <name> dans l'élément <software_data> est le nom du package. Pour les packages locaux, ce <name> peut être le répertoire de niveau supérieur d'une arborescence de fichiers du package, ou <name> peut être un fichier de flux de données. Pour les packages distants, <name> est un fichier de flux de données.

Cet exemple illustre l'action noinstall, bien que l'action noinstall puisse être spécifiée dans n'importe quelle balise software_data . L'action noinstall installe le package uniquement dans l'environnement initialisé. Le package est disponible au cours de l'installation mais n'est pas installé sur le périphérique cible.

<add_drivers>
  <software>
    <source>
      <publisher>
        <origin name="/export/package_dir"/>
      </publisher>
    </source>
    <software_data type="SVR4" action="noinstall">
      <name>mydriver2.d</name>
    </software_data>
  </software>
</add_drivers>


Exemple 4–27 Ajout d'une image

Cet exemple ajoute une image de mise à jour des pilotes (DU) ou de mise à jour d'installation (ITU) spécifiée explicitement. S'il s'agit d'une image locale, le chemin name dans la balise <origin> dans l'élément <source> est le parent du répertoire DU de l'image d'installation si l'image est développée. Si l'image d'installation n'est pas étendue, ce chemin name est le nom de l'image .iso. Si l'image est distante, ce chemin d'accès name est le chemin HTTP ou FTP complet d'un fichier d'image .iso. Tous les packages dans l'image seront ajoutés.

Lorsque le type de données logicielles est DU, l'élément <software_data> ne peut pas posséder un élément <name>.

<add_drivers>
  <software>
    <source>
      <publisher>
        <origin name="/export/duimages/mydriverDU"/>
      </publisher>
    </source>
    <software_data type="DU"/>
  </software>
</add_drivers>

Fichier manifest IA annoté

Le fichier suivant montre un fichier manifest IA qui illustre la plupart des balises et contient des commentaires sur l'utilisation.

<?xml version="1.0"?>
<!--
Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-->
<!--
===============================================================================
DTD sample manifest for Automatic Installer input manifest specification.
===============================================================================
-->
<!DOCTYPE auto_install SYSTEM "file:///usr/share/auto_install/ai.dtd">
<auto_install>
  <!--
	"auto_reboot" set to "true" may be an issue for x86 machines.
	The boot order is not guaranteed and may cause unexpected
	behavior. If auto_reboot is not desired, removing this
	attribute, e.g. <ai_instance name="sample_ai_manfiest">
	will work. "auto_reboot" is set to false by default. 
    -->
  <ai_instance name="sample_ai_manifest" auto_reboot="true">
    <!--
      =======================================================================
      <target/target_device> - selections for AI target Device specification

      Disk criteria are divided into three mutually exclusive groups:

      G1 - deterministic disk criteria
      ................................
        * target_device/disk/iscsi parameters
        * target_device/disk/disk_name, with name_type attribute:
          one of ctd, volid, devpath or devid

      G2 - non-deterministic disk criteria
      ..........................
        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
          dev_size

      G3 - keyword disk criteria
      ...........................
        * target_device/disk/disk_keyword: "boot_disk"

      Schema ai.dtd enforces following policy:

      * criteria in group G1 are mutually exclusive - only
        one can be specified at a time

      * groups G1, G2 and G3 are mutually exclusive - i.e.
        if criteria from G1 is specified, no criteria
        from G2 or G3 are allowed and vice versa

      * multiple criteria from G2 can be specified
      =======================================================================
    -->
    <target>
      <target_device>
        <disk>
          <!-- G1 -->
          <!--
            c#t#d# device name like c0t0d0 or 
            MPXIO name like c0t2000002037CD9F72d0
          -->
          <disk_name name="c1t0d0" name_type="ctd"/>
          <!-- volume name set for instance by means
            of format(1M) command
          -->
          <!--
          <disk_name name="ai-disk" name_type="volid"/>
          -->
          <!-- device id - e.g. can be obtained by means of
            iostat(1M) -iEn
          -->
          <!--
          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
          -->
          <!-- device path under /devices directory, e.g.
            /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/sd@0,0
          -->
          <!--
          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
          -->
          <!--
            ISCSI target device

          <iscsi name="c0d2E0001010F68">
            <ip>192.168.1.34</ip>
          </iscsi> 
          -->
          <!-- G2 -->
          <!--
          <disk_prop dev_vendor="hitachi" dev_size="20480mb"/>
          -->
          <!-- G3 -->
          <!--
          <disk_keyword key="boot_disk"/>
          -->
          <!--
            Uncomment this to force AI to find an existing Solaris
            partition instead of creating a new one.
          -->
          <!--
          <partition action="use_existing"/>
          -->
          <partition name="1" part_type="99">
            <size start_sector="200" val="20480mb"/>
          </partition>
          <partition name="4" part_type="99">
            <size start_sector="2000" val="20480mb"/>
          </partition>
          <slice name="0" is_root="true">
            <size val="20480mb"/>
          </slice>
          <slice name="4">
            <size val="20480mb"/>
          </slice>
        </disk>
      </target_device>
    </target>
    <software name="ips">
      <source>
        <publisher name="solaris">
          <origin name="http://pkg.oracle.com/solaris/release"/>
        </publisher>
      </source>
      <!--
        By default the latest build available, in the
        specified IPS repository, is installed.
        if another build is required, the build number has
        to be appended to the 'entire' package in following
        form:
      <name="entire@0.5.11-0.build#"/>
      -->
      <software_data type="IPS">
        <name>pkg:/entire</name>
        <name>pkg:/babel_install</name>
      </software_data>
      <!--
          babel_install and slim_install are group packages used to
          define the default installation.  They are removed here so
          that they do not inhibit removal of other packages on the installed
          system
      -->
      <software_data action="uninstall" type="IPS">
        <name>pkg:/babel_install</name>
        <name>pkg:/slim_install</name>
      </software_data>
    </software>
    <add_drivers>
      <!--
	    Driver Updates: This section is for adding driver packages to the
            boot environment before the installation takes place.  The
            installer can then access all devices on the system.  The
            packages installed in the boot environment will also be installed
            on the target.

            A <search_all> entry performs a search for devices which are
            missing their drivers.  A repository publisher and location
            may be specified, and that repository and its database will
            be used.  If no publisher and location is specified, the
            configured repositories will be used.
            (See pkg publisher command.)  If <addall> is specified as
            "true", then drivers the database says are third-party drivers
            will be added like all others; otherwise third-party drivers
            will not be added.

                <search_all addall="true">
                    <source>
                        <publisher name="solaris">
                            <origin name="http://pkg.oracle.com/solaris/release"/>
                        </publisher>
                    </source>
                </search_all>

            <software> entries are user-provided specifications of packages
            needed in order to perform the install.  types are P5I, SVR4, DU.
            A <software_data> action of "noinstall" inhibits adding to target.

            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
            Path may be to a local file or an http or ftp specification.
                <software>
                    <source>
                        <publisher>
                            <origin
				name=
	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
                        </publisher>
                    </source>
		    <software_data type="P5I"/>
                </software>

            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
            to the directory containing the packages.  The 
	    software/software_data/name refers tp the package's top level
	    directory or the package's datastream file.

                <software>
                    <source>
                        <publisher>
                            <origin name="/export/package_dir"/>
                        </publisher>
                    </source>
                    <software_data type="SVR4">
                        <name>my_disk_driver.d</name>
                    </software_data>
                </software>

            DU: An ITU (Install Time Update) or Driver Update image.
            The source/publisher/origin refers to the path just above the 
	    image's DU directory (if expanded) or the name of the .iso image.  
	    All packages in the image will be added.

                <software>
                    <source>
                        <publisher>
                            <origin name="/export/duimages/mydriver.iso"/>
                        </publisher>
                    </source>
                    <software_data type="DU"/>
                </software>	
      -->
      <search_all/>
    </add_drivers>
  </ai_instance>
</auto_install>