Ignorer les liens de navigation | |
Quitter l'aperu | |
Création d'une image d'installation personnalisée d'Oracle Solaris 11.1 Oracle Solaris 11.1 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
Exemples 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 renferment 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 contient des exemples de fichiers manifestes par le biais desquels vous pouvez créer une image ISO x86 Live Media personnalisée, une image ISO d'installation automatisée pour systèmes x86 ou SPARC, ou encore une image ISO d'installation en mode texte pour plates-formes 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 modifier davantage votre image. Référencez ensuite les nouveaux scripts dans le fichier manifeste.
Le package distribution-constructor fournit les exemples de fichiers manifestes décrits dans le tableau suivant.
Tableau 2-2 Exemples de fichiers manifestes
|
Cette procédure décrit les étapes générales à suivre pour créer et compiler une image personnalisée.
Vous pouvez installer le package requis à l'aide du gestionnaire de packages. 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 System (Système)>Administration>Package Manager (Gestionnaire de packages).
Vous pouvez également exécuter les commandes IPS (la suivante, par exemple) pour installer ce package :
# pkg install distribution-constructor
Il faut référencer le fichier manifeste par son nom lorsque vous exécutez 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.
Vous pouvez par exemple modifier l'élément target du fichier manifeste afin d'indiquer un autre emplacement pour la zone de compilation dans laquelle créer l'image. Vous pouvez également vérifier l'éditeur pour confirmer que le système peut le contacter afin de télécharger les packages nécessaires à la création de l'image. Si nécessaire, vous pouvez modifier l'élément software name 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 rédigez de nouveaux scripts, mettez à jour leurs références dans la section execution du fichier manifeste.
Pour obtenir des instructions, reportez-vous à la section Création et utilisation de scripts personnalisés.
Pour obtenir des 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.
Le tableau suivant décrit les principaux éléments des exemples de fichiers manifestes.
Tableau 2-3 Eléments du fichier manifeste
|
Utilisez l'élément suivant pour attribuer 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 envisagez de créer toute 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". Ainsi, la date et l'heure seront automatiquement ajoutées au nom de chaque image.
Si vous devez 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 boot_mods indique les modifications du menu d'initialisation à appliquer à l'image.
Dans l'exemple ci-dessous, un menu d'initialisation spécialisé portant 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">
Pour ajouter une entrée de menu d'initialisation individuelle, il suffit d'insérer un nouvel élément boot_entry. Les entrées sont ajoutées séquentiellement au menu d'initialisation, dans l'ordre défini par la valeur d'attribut insert_at “start” ou “end” de 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. Il faut indiquer un emplacement de jeu de données valide. Vérifiez la zone de compilation par défaut afin de garantir que la compilation ne détruira pas le contenu que vous devez conserver sur le 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.
L'exemple suivant illustre un élément target.
<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 imbriqué dans la section software name, modifiez les éléments publisher name et origin name afin de spécifier l'éditeur à utiliser, ainsi que l'emplacement du référentiel de packages. L'emplacement du référentiel peut prendre la forme d'un chemin NFS ou d'un répertoire local. 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.
S'il faut spécifier des copies miroir d'un éditeur, supprimez les marques de commentaire et modifiez l'élément mirror name.
L'exemple suivant illustre un élément source imbriqué dans l'élément 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"></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.1.
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 fichier manifeste dc_livecd.xml répertorie les packages requis pour créer une image Live Media. Chaque balise name indique le nom d'un package individuel 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 souhaitez ajouter des packages à l'image, ajoutez leur nom en insérant une balise name.
Par défaut, la version la plus récente 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 respectant le format suivant :
<name>pkg:/group/system/solaris-desktop@0.5.11-0.build#</name>
Remarque - La version d'Oracle Solaris installée sur votre système doit être la même que celle de l'image que vous souhaitez créer avec le constructeur de distribution.
En outre, les packages d'une version particulière spécifiée risquent de ne pas être installés si d'autres packages d'une version en conflit sont en cours d'installation, comme indiqué par le fichier manifeste d'un service d'installation automatisée. Reportez-vous au Chapitre 9, Personnalisation des installations du manuel Installation des systèmes Oracle Solaris 11.1.
Exemple 2-1 Ajout de packages et d'éditeurs supplémentaires
Dans cet exemple, un deuxième éditeur (mypublisher) est spécifié. Des packages supplémentaires (mypackage1 et mypackage2) sont 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>
Il est possible de désinstaller un package individuel ou une définition de package de groupe par le biais de l'élément software_data avec l'attribut uninstall.
Remarque - Une définition de package de groupe lie tous les packages individuels qui font partie du groupe en une seule et même unité pouvant faire l'objet d'opérations spécifiques.
L'attribut uninstall s'avère particulièrement utile si vous souhaitez installer un package de groupe complet en excluant un ou plusieurs packages individuels. Vous pouvez utiliser l'attribut uninstall pour supprimer la définition de package de groupe en premier lieu. Vous pouvez ensuite désinstaller les packages précédemment installés dans le cadre d'un package de groupe.
Vous avez peut-être choisi de créer une image d'installation Live Media. L'image d'installation Live Media par défaut inclut un navigateur Firefox dans le package de groupe de bureau.
Si vous voulez exclure le navigateur Firefox de l'image à créer, effectuez les opérations suivantes :
Installez le package de groupe solaris-desktop qui inclut tous les logiciels du bureau Live Media classique. Reportez-vous à la section Spécification des packages à installer.
Désinstallez la définition du package de groupe solaris-desktop à l'aide de l'attribut uninstall, comme suit :
<software_data action="uninstall"> <name>pkg:/group/system/solaris-desktop</name> </software_data>
Remarque - L'exécution de l'attribut uninstall ne fait que supprimer la définition du package de groupe. Tous les packages individuels que le groupe englobe restent installés.
Maintenant que les packages individuels ne sont plus liés ensemble dans une définition de groupe, vous pouvez exécuter à nouveau l'attribut uninstall pour désinstaller le package Firefox.
<software_data action="uninstall"> <name>pkg:/web/browser/firefox</name> </software_data>
Vous pouvez éventuellement combiner les étapes 2 et 3 dans une seule entrée, comme suit :
<software_data action="uninstall"> <name>pkg:/group/system/solaris-desktop</name> <name>pkg:/web/browser/firefox</name> </software_data>
Ajoutez les packages supplémentaires à désinstaller à la fin de la section uninstall.
L'élément software name s'applique à un système une fois qu'il a été installé avec l'image généré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 execution du fichier manifeste répertorie une série de points de contrôle exécutés lors de la 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.
Au cours du processus de génération de l'image, les points de contrôle modifient le contenu de la zone de compilation spécifiée dans le fichier manifeste.
La zone de compilation contient les répertoires suivants :
ZFS dataset/build_data/pkg_image
ZFS dataset/build_data/boot_archive
La variable ZFS dataset est spécifiée par l'élément target dans le fichier manifeste.
Au cours du processus de compilation, toutes les entités incluses dans l'image finale sont ajoutées au répertoire à l'annuaire pkg_image. Les fichiers stockés dans le répertoire séparé boot_archive servent à créer une archive d'amorçage, qui est également ajoutée au répertoire pkg_image.
La liste suivante décrit brièvement chaque de point de contrôle par défaut, dans l'ordre dans lequel ils sont exécutés dans la plupart des fichiers manifestes.
transfer-ips-install : au niveau de ce point de contrôle, le constructeur de distribution contacte les éditeurs IPS et ajoute à l'image les packages répertoriés dans l'élément software_data du fichier manifeste.
set-ips-attributes : au niveau de ce point de contrôle, le constructeur définit l'éditeur que le système installé doit utiliser. Les valeurs définies par ce point de contrôle n'ont aucune incidence si vous créez une image d'installation automatisée.
pre-pkg-img-mod : au niveau de ce point de contrôle, le constructeur importe dans l'image les fichiers de service SMF spécifiés dans l'élément configuration du fichier manifeste. Le constructeur modifie également certains fichiers pour optimiser l'image.
Toutes les modifications apportées jusqu'ici sont incluses à la fois dans l'image en cours de création et dans l'archive root. Dans les scripts personnalisés, il faut ajouter les nouveaux points de contrôle qui doivent modifier aussi bien l'archive root que l'image avant ou juste après le point de contrôle pre-pkg-img-mod.
ba-init : au niveau de ce point de contrôle, le constructeur place les fichiers répertoriés dans la section ba-init du fichier manifeste dans l'archive root. Ces fichiers sont copiés de la zone pkg_image vers la zone root_archive.
ba-config : au niveau de ce point de contrôle, le constructeur apporte d'autres modifications aux fichiers précédemment copiés dans l'archive root. Le constructeur crée des liens symboliques pointant vers d'autres fichiers requis à une étape ultérieure du processus d'initialisation afin de réduire la taille de l'archive root.
ba-arch : au niveau de ce point de contrôle, le constructeur compresse l'archive root avant de la placer dans le répertoire pkg_image. Le constructeur effectue également les opérations possibles pour optimiser l'archive root en fonction du type de système en cours de création. Après ce point de contrôle, aucune modification définie dans des scripts personnalisés n'est intégrée dans l'archive root dans la mesure où celle-ci a déjà été compressée.
grub-setup : au niveau de ce point de contrôle, le constructeur définit le menu GRUB2 en fonction des entrées spécifiées dans la section boot_entry du fichier manifeste. Ce point de contrôle ne s'applique qu'aux images destinées aux systèmes x86.
pkg-img-mod : au niveau de ce point de contrôle, le constructeur crée les principales archives pour l'image en cours de création et optimise la zone pkg_image. Le constructeur déplace des fichiers dans le répertoire pkg_image en créant l'archive de l'image. Tous les fichiers stockés dans le répertoire pkg_image sont inclus dans l'image. Aucun fichier ajouté après ce point de contrôle ne sera inclus dans l'image.
create-iso : ce point de contrôle génère les fichiers .iso en incluant toutes les entités stockées dans le répertoire pkg_image.
Dans les champs spécifiques des sections de points de contrôle, chaque balise checkpoint name inclut l'attribut mod-path qui spécifie l'emplacement du script correspondant.
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'exemple de fichier manifeste dc_ai_sparc.xml) crée l'archive d'amorçage pour la compilation de l'image et renvoie au script chargé d'accomplir cette tâche. L'exemple de point de contrôle inclut également des champs argitem 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 type mot-clé à transmettre au point de contrôle au cours de la compilation. L'élément kwargs contient des éléments arg name qui permettent de spécifier des mots-clés individuels à transmettre au point de contrôle. Enfin, l'élément arglist contient une liste de valeurs argitem à transmettre au point de contrôle. Cet exemple inclut la liste des fichiers décompressés dans l'élément arglist.
Chaque élément de liste kargs est indiqué entre guillemets. En l'absence de guillemets ou si l'intégralité de la chaîne est indiquée entre guillemets, celle-ci (espaces et retours inclus) est interprétée comme un argument. N'insérez pas de virgules pour séparer les arguments.
Si vous rédigez un script personnalisé à utiliser lors de la génération d'une image, il faut ajouter un élément de point de contrôle renvoyant à l'emplacement du script. Le point de contrôle nécessite un seul élément args pointant vers le 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 l'interruption et le redémarrage du processus de compilation au niveau de 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, ainsi que leur emplacement. Ensuite, ce nouveau point de contrôle est référencé dans la section execution.
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 la destination d'installation.
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 respectivement par ZFS dataset/build_data/pkg_image et ZFS dataset/build_data/boot_archive. Dans cet exemple, les packages SVR4 sont installés sous ZFS dataset/build_data/pkg_image .
Enfin, ce nouveau point de contrôle est référencé dans la section execution.
<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 afin de personnaliser l'image selon son type au cours du processus de création. Les fichiers manifestes renvoient aux scripts, et ceux-ci transforment l'image générique en distribution propre au média. Ces scripts sont référencés dans la section execution des fichiers manifestes. Vous pouvez spécifier le nombre de points de contrôle de scripts personnalisés de votre choix.
Remarque - La prise en charge des scripts est limitée aux scripts par défaut (non modifiés) fournis avec les packages d'application. Si vous décidez de personnaliser ces scripts, commencez par sauvegarder les scripts d'origine.
D'autre part, notez que les scripts spécifiés dans la section execution du fichier manifeste sont exécutés au cours du processus de création de l'image. La section execution ne référence pas de scripts de pré-installation ou de post-installation.
Lorsque vous créez vos propres scripts personnalisés, tenez compte des 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 execution 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.
Pour déterminer où ajouter le nouveau point de contrôle, consultez la description des points de contrôle par défaut à la section Définition de points de contrôle de compilation.
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 execution du fichier manifeste.
Lorsque vous ajoutez une référence à un nouveau script dans la section execution d'un fichier manifeste, il faut spécifier le nom d'un point de contrôle permettant d'interrompre la création de l'image avant que ce script n'ait effectué sa tâche ou bien après. Vous pouvez également inclure un message personnalisé associé au nom du point de contrôle. Si vous n'ajoutez pas de 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 celui-ci est exécuté au cours du processus de compilation.
Remarque - Attribuez des noms explicites aux points de contrôle, plutôt que des nombres. Si de nouveaux scripts sont ajoutés, les nouveaux points de contrôle correspondants perturbent l'ordre des points de contrôle numérotés.
L'exemple de point de contrôle suivant 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>
{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 respectivement par ZFS dataset/build_data/pkg_image et ZFS dataset/build_data/boot_archive.
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 le processus au niveau de différents points de contrôle.
Pour obtenir des instructions, reportez-vous au Chapitre 3, Création d'une image.
La sortie de compilation affiche l'emplacement des fichiers journaux.