Ignorer les liens de navigation | |
Quitter l'aperu | |
Création d’une image d’installation Oracle Solaris 11 personnalisée Oracle Solaris 11 Information Library (Français) |
1. Introduction à la création d'une image d'installation personnalisée
2. Création d'une image d'installation personnalisée
Configuration système requise pour la création d'images
Échantillons de fichiers manifestes
Création et génération d'une image personnalisée
Modification du contenu du fichier manifeste
Indication d'un titre pour l'image
Modification du menu d'initialisation
Spécification de la zone de compilation
Spécification des packages à installer
Spécification des packages à désinstaller
Spécification d'un éditeur pour un système installé
Définition de points de contrôle de compilation
Le constructeur de distribution crée des images en fonction des paramètres indiqués dans des fichiers XML, appelés fichiers manifestes. Les fichiers manifestes contiennent les spécifications relatives au contenu et aux paramètres des images ISO créées à l'aide du constructeur de distribution. Le package distribution-constructor fournit des exemples de fichiers manifestes qui peuvent être utilisés pour créer une image ISO d'installation automatisée LiveCD, x86 ou SPARC, ou une image d'installation en mode texte x86 ou SPARC.
Les éléments présents dans chaque fichier manifeste fournissent des valeurs par défaut, prédéfinies, qui créent le type d'image ISO dont vous avez besoin. Vous pouvez modifier manuellement ces éléments prédéfinis dans un fichier manifeste afin de personnaliser davantage l'image obtenue. En outre, vous pouvez créer des scripts personnalisés pour encore plus modifier votre image. Ensuite, faites référence aux nouveaux scripts dans le fichier manifeste.
Le package distribution-constructor fournit les échantillons de fichiers manifestes suivants.
Tableau 2-2 Échantillons de fichiers manifestes
|
Vous pouvez utiliser le gestionnaire de packages pour installer le package requis. Le gestionnaire de packages est disponible dans la barre de menu sur le bureau du système d'exploitation Oracle Solaris. Dans la barre de menu, cliquez sur Système>Administration>Gestionnaire de packages.
Vous pouvez également utiliser les commandes IPS (la suivante, par exemple) pour installer ce package :
# pkg install distribution-constructor
Vous ferez référence au fichier manifeste par son nom lorsque vous utiliserez la commande distro_const pour créer une image.
Remarque - Sauvegardez toujours le fichier manifeste d'origine et les scripts par défaut avant de les copier.
Par exemple, vous pouvez modifier l'élément target dans le manifeste pour indiquer un emplacement différent pour la zone de compilation où l'image peut être créée. Ainsi, vous pouvez vérifier l'éditeur afin de vous assurer que votre système peut contacter cet éditeur pour télécharger les packages nécessaires à la création de l'image. Si nécessaire, vous pouvez modifier l'élément de nom du logiciel pour spécifier un éditeur et un emplacement de référentiel différents.
Pour plus d'informations, reportez-vous à la section Modification du contenu du fichier manifeste et à la page de manuel dc_manifest(4).
Si vous créez de nouveaux scripts, mettez à jour les références de script dans la section d'exécution du fichier manifeste.
Pour obtenir davantage d'instructions, reportez-vous à la section Création et utilisation de scripts personnalisés.
Pour obtenir davantage d'instructions, reportez-vous au Chapitre 3, Création d'une image.
Tous les champs des fichiers manifestes contiennent des valeurs par défaut, prédéfinies, qui créent le type d'image ISO dont vous avez besoin. Vous pouvez modifier manuellement ces champs prédéfinis dans un fichier manifeste afin de personnaliser davantage l'image obtenue.
Selon l'échantillon de fichier manifeste que vous sélectionnez, les principaux éléments sont les suivants.
Tableau 2-3 Éléments du fichier manifeste
|
Utilisez l'élément suivant pour fournir un nom personnalisé ou par défaut à l'image que vous allez créer.
<distro name="Oracle_Solaris_Text_X86" add_timestamp="false">
Si vous avez l'intention de créer une série de versions d'une image et de conserver les images incrémentielles, vous pouvez définir la variable d'horodatage sur "true" : un horodatage sera automatiquement ajouté au nom de chaque image.
Si vous avez besoin de spécifier un proxy HTTP, supprimez les marques de commentaire de l'élément distro name incluant la variable de proxy, puis saisissez l'emplacement du proxy.
L'élément de menu d'initialisation indique les modifications du menu d'initialisation à appliquer à l'image.
Dans l'exemple ci-dessous, un menu d'initialisation spécialisé avec le titre "boot1" sera appliqué à l'image. L'attribut de délai d'attente spécifie la durée avant l'activation automatique de l'entrée d'initialisation par défaut.
<boot_mods title="boot1" timeout="5">
Dans l'élément de menu d'initialisation, vous pouvez ajouter des entrées individuelles du menu d'initialisation en ajoutant un nouvel élément boot_entry pour chaque nouvelle entrée. Les entrées sont ajoutées séquentiellement au menu d'initialisation, dans un ordre défini par la valeur d'attribut insert_at "start" ou "end" pour chaque entrée d'initialisation.
Remarque - Ajoutez les nouvelles entrées avant l'entrée "with magnifier" existante.
Reportez-vous à l'exemple ci-après d'un élément boot_entry individuel.
<boot_entry> <title_suffix>with screen reader</title_suffix> <kernel_args>-B assistive_tech=reader</kernel_args> </boot_entry>
Pour plus d'informations, reportez-vous à la page de manuel dc_manifest(4).
Vous pouvez personnaliser l'élément target. Cet élément définit le jeu de données ZFS à utiliser pour la création. Ce jeu de données correspond à la zone où l'image sera créée. Vous devez saisir un emplacement de jeu de données valide. Vérifiez la zone de compilation par défaut afin de vous assurer que la compilation ne détruira pas le contenu que vous devez conserver sur votre système. Modifiez la zone de compilation si nécessaire.
Remarque - Le nom du système de fichiers ne doit pas inclure le nom du zpool.
Voyez l'exemple suivant :
<target> <logical> <zpool action="use_existing" name="rpool"> <dataset> <filesystem name="dc/sample-dataset-location" action="preserve"/> </dataset> </zpool> </logical> </target>
L'élément suivant spécifie un éditeur auprès duquel le constructeur de distribution peut obtenir des packages à télécharger et à utiliser pour créer l'image.
<software name="transfer-ips-install">
Dans l'élément source de cette section, modifiez le nom de l'éditeur et le nom d'origine afin de spécifier l'éditeur à utiliser et l'emplacement du référentiel de package. Plusieurs éditeurs peuvent être répertoriés. Quand le constructeur de distribution tente de localiser les packages à installer, les éditeurs sont parcourus dans l'ordre dans lequel ils sont répertoriés ici.
Si les copies miroir d'un éditeur doivent être spécifiées, supprimez les commentaires et modifiez l'élément de nom de miroir.
Voyez l'exemple suivant :
<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>
Pour plus d'informations sur l'utilisation des éditeurs, reportez-vous à la section Ajout et mise à jour de packages logiciels Oracle Solaris 11.
L'élément software_data avec l'attribut install répertorie l'ensemble des packages à installer afin de créer un type d'image particulier, en fonction du manifeste utilisé. Par exemple, le manifeste dc_livecd.xml répertorie les packages requis pour créer une image LiveCD. Chaque balise de nom indique un nom de package ou le nom d'un package de groupe contenant plusieurs packages.
<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 vous disposez de packages que vous souhaitez ajouter à l'image, ajoutez le nom des packages en ajoutant une balise de nom pour chaque package.
Par défaut, la version la plus actuelle du package disponible dans le référentiel spécifié est installée. Si une autre version est requise, ajoutez le numéro de version à la référence du package en utilisant le format suivant :
<name>pkg:/group/system/solaris-desktop@0.5.11-0.build#</name>
Remarque - Les packages avec une version particulière spécifiée peuvent ne pas être installés si d'autres packages avec une version en conflit est installée. Pour plus d'informations, reportez-vous à la page de manuel pkg(5)
Exemple 2-1 Ajout de packages et d'éditeurs supplémentaires
Dans cet exemple, un deuxième éditeur, mypublisher, est spécifié. D'autres packages, mypackage1 et mypackage2, sont également spécifiés.
Au cours du processus de compilation, les éditeurs sont vérifiés dans l'ordre dans lequel ils sont répertoriés. Si les packages ne sont pas disponibles auprès du premier éditeur, l'éditeur suivant est parcouru à la recherche des packages spécifiés.
<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>
L'élément software_data avec l'attribut uninstall peut être utilisé pour désinstaller un package ou une définition de package de groupe.
Dans l'exemple suivant, solaris-desktop est le nom d'un package de groupe qui contient plusieurs packages individuels.
<software_data action="uninstall"> <name>pkg:/group/system/solaris-desktop</name> </software_data>
Vous pouvez désinstaller un package de groupe. La désinstallation d'un package de groupe signifie que seule la définition de groupe est effectivement désinstallée. Les packages individuels précédemment installés dans le cadre de ce groupe ne sont pas désinstallée. Cependant, vous pouvez désinstaller les packages individuels sans désinstaller le package de groupe. Conserver le package de groupe peut être utile pour référence. Vous pouvez également utiliser la balise de nom pour désinstaller un package. Ajoutez les packages supplémentaires à désinstaller à la fin de la section de désinstallation.
L'élément suivant s'applique à un système une fois qu'il a été installé avec l'image créée à l'aide du constructeur de distribution.
<software name="set-ips-attributes">
Fournissez le nom de l'éditeur et des balises de nom de copie miroir facultatives pour spécifier l'endroit où le système installé peut accéder à d'autres packages à télécharger et à installer.
Vous pouvez également définir des attributs IPS dans cet élément. Pour plus d'informations sur les propriétés IPS, reportez-vous à la page de manuel pkg(1).
L'élément d'exécution dans le fichier manifeste répertorie une série de points de contrôle exécutés au cours du processus de compilation d'une image. Les points de contrôle sont exécutés dans l'ordre dans lequel ils sont répertoriés dans cette section. Les points de contrôle par défaut nécessaires à la compilation de l'image d'installation par défaut sont inclus dans chaque fichier manifeste.
Toutes les balises de nom de point de contrôle incluent l'attribut mod-path, qui spécifie l'emplacement du script du point de contrôle.
Certaines balises de points de contrôle par défaut incluent des arguments avec des valeurs par défaut fournies. L'exemple de point de contrôle suivant extrait de l'échantillon de fichier manifeste dc_ai_sparc.xml crée l'archive d'initialisation pour la compilation de l'image et renvoie à un script qui accomplira cette tâche. L'exemple de point de contrôle inclut également des champs d'argument avec des valeurs spécifiques fournies pour chaque argument.
<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>
Comme indiqué dans cet exemple, l'élément <kwargs> contient des arguments de mot-clé qui doivent être transmis au point de contrôle au cours de la compilation. L'élément <kwargs> contient des éléments <arg name> qui peuvent être utilisées pour spécifier des mots-clés individuels à transmettre au point de contrôle. L'élément <arglist> contient également une liste de plusieurs valeurs <argitem> à transmettre au point de contrôle. Cet exemple inclut une liste des fichiers décompressés dans l'élément <arglist>.
Chaque élément de liste <kargs> est entouré de guillemets. Si aucun guillemet n'est utilisé, ou si un ensemble de guillemets encadre l'intégralité de la chaîne, celle-ci, espaces et retours inclus, est interprétée comme un argument. N'utilisez pas de virgules pour séparer les arguments.
Si vous créez un script personnalisé à utiliser lors de la création d'une image, vous devez ajouter un élément de point de contrôle renvoyant à l'emplacement du script. Le point de contrôle pour un script personnalisé nécessite uniquement un élément <args> qui renvoie à l'emplacement du script personnalisé. Pour plus d'informations et d'exemples, reportez-vous à la section Création et utilisation de scripts personnalisés.
Utilisez les options de la commande distro_const pour contrôler la mise en pause et le redémarrage du processus de compilation à des points de contrôle particuliers. Reportez-vous à la section Création d'une image en plusieurs étapes.
Exemple 2-2 Ajout de packages SVR4
Dans cet exemple, un nouveau point de contrôle est ajouté au fichier manifeste. Ce nouveau point de contrôle répertorie les packages SVR4 à ajouter à l'image et leurs emplacements. Ensuite, ce nouveau point de contrôle est référencé dans la section d'exécution.
Tout d'abord, le nouveau point de contrôle est créé par l'ajout d'un nouvel élément software. Ce point de contrôle indique SVR4 comme type de logiciel, l'emplacement des packages et l'emplacement où les installer.
En outre, les packages SVR4 spécifiques à installer sont répertoriés dans l'élément 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 les valeurs {PKG_IMAGE_PATH} et {BOOT_ARCHIVE} sont incluses dans le point de contrôle, l'utilitaire distro_const les remplace par <ZFS Dataset>/build_data/pkg_image et <ZFS Dataset>/build_data/boot_archive, respectivement. Dans cet exemple, les packages SVR4 seront installés dans <ZFS Dataset>/build_data/pkg_image.
Enfin, ce nouveau point de contrôle est référencé dans la section d'exécution.
<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"/>
Notez que le nom du logiciel doit correspondre au nom du point de contrôle. Dans cet exemple, les deux sont "transfer-svr4–install".
Le constructeur de distribution vous permet de spécifier des scripts supplémentaires qui peuvent être utilisés afin d'effectuer des personnalisations selon le type d'images créées. Les fichiers manifestes renvoient aux scripts, et ceux-ci transforment l'image générique en une distribution spécifique au média. Ces scripts sont référencés dans la section d'exécution des fichiers manifestes. Vous pouvez spécifier n'importe quel nombre de points de contrôle de scripts personnalisés.
Remarque - La prise en charge des scripts est limitée à tout script par défaut, non modifié, fourni avec les packages d'application. Si vous décidez de personnaliser ces scripts, sauvegardez les scripts d'origine au préalable.
Avant de commencer
Lorsque vous créez vos propres scripts personnalisés, prenez en compte les points suivants :
Les scripts peuvent être des programmes Python, des scripts shell ou des fichiers binaires.
Les scripts sont exécutés dans leur ordre d'apparition dans la section d'exécution du fichier manifeste.
La sortie standard (stdout) et la sortie d'erreur (stderr) des commandes exécutées dans les scripts (modules shell et python) sont consignées dans des fichiers journaux qui établissent des rapports sur les compilations terminées ou tentées.
Assurez-vous qu'un utilisateur connecté avec le rôle root peut exécuter ces scripts.
Assurez-vous de spécifier le chemin d'accès complet à vos scripts. Les points de contrôle sont exécutés dans leur ordre d'apparition dans la section d'exécution du fichier manifeste.
Lorsque vous ajoutez une référence pour un nouveau script dans la section d'exécution d'un fichier manifeste, vous devez spécifier un nom de point de contrôle pouvant être utilisé pour interrompre la création de l'image avant que ce script ait effectué sa tâche ou après. Vous pouvez également inclure un message personnalisé associé au nom du point de contrôle. Si vous n'ajoutez pas un tel message, le chemin du script est utilisé comme message de point de contrôle par défaut. Un message relatif au point de contrôle s'affiche lorsque le point de contrôle est exécuté au cours du processus de compilation.
Remarque - Attribuez aux points de contrôle des noms explicites plutôt que des nombres. Si de nouveaux scripts sont ajoutés, les nouveaux points de contrôle correspondant à ces nouveaux scripts perturberont l'ordre des points de contrôle numérotés.
L'exemple de point de contrôle suivant fait référence à un script personnalisé nommé "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>
Ici {PKG_IMAGE_PATH} est spécifié en tant que paramètre de compilation dans la section des arguments.
<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 les valeurs {PKG_IMAGE_PATH} et {BOOT_ARCHIVE} sont incluses dans le point de contrôle, l'utilitaire distro_const les remplace par <ZFS Dataset>/build_data/pkg_image et <ZFS Dataset>/build_data/boot_archive, respectivement.
Vous pouvez créer une image en une seule étape. Pour vérifier l'état de la compilation, vous pouvez également arrêter et redémarrer la compilation à différents points de contrôle.
Pour obtenir davantage d'instructions, reportez-vous au Chapitre 3, Création d'une image.
La sortie de compilation affiche l'emplacement des fichiers journaux.