24.2. Installation automatique de l'image disque

La création d'images disque et l'installation sur celles-ci peuvent être automatisées à l'aide de livemedia-creator. Pour effectuer une installation automatique, il vous faudra un système Red Hat Enterprise Linux installé ainsi qu'un fichier Kickstart. Les images disque ne nécessitent pas d'être créées manuellement. Pour plus d'informations sur la création ou l'utilisation de fichiers Kickstart, veuillez consulter le Chapitre 23, Installations Kickstart.

24.2.1. Aperçu de livemedia-creator

La création d'images personnalisées à l'aide de livemedia-creator s'effectue généralement en deux étapes. Dans la première étape, un fichier d'image disque temporaire est créé et Anaconda, le programme d'installation de Red Hat Enterprise Linux, installe un système sur cette image selon les paramètres fournis dans un fichier kickstart. Puis, dans la deuxième étape, livemedia-creator utilise ce système temporaire pour créer l'image de démarrage finale.
Ce comportement peut être modifié en spécifiant des options additionnelles. Par exemple, il est possible de n'effectuer que la première étape et d'obtenir par conséquent un fichier d'image disque, ou d'ignorer la première étape et d'utiliser un disque existant ou une image de système fichier pour créer l'image ISO de démarrage finale.

Important

Créer des images personnalisées à l'aide de livemedia-creator est désormais pris en charge uniquement sur les systèmes AMD64 et Intel 64 (x86_64).
De plus, le processus de création n'est pris en charge que sous Red Hat Enterprise Linux 7. Des images personnalisées de versions antérieures peuvent également être créées, mais ne sont pas prises en charge par Red Hat.
Un exemple d'utilisation de livemedia-creator est décrit dans la Section 24.2.4, « Création d'images personnalisées ». Sur un système où le paquet lorax est installé, vous pouvez faire apparaître une liste de toutes les options disponibles à l'aide de la commande livemedia-creator --help. Des documents additionnels sont également installés avec le paquet lorax : la page man livemedia-creator(1) et le fichier README.livemedia-creator situé dans le répertoire /usr/share/doc/lorax-version/, où version est la version du paquet lorax que vous avez installé.

24.2.2. Installation de livemedia-creator

L'outil livemedia-creator fait partie du paquet lorax. Pour installer le paquet, veuillez exécuter la commande suivante en tant que root :
# yum install lorax 
Vous devrez également installer plusieurs autres paquets en plus de lorax. Ces paquets ne sont pas des dépendances de lorax et ne sont donc pas installés automatiquement, mais vous pourriez en avoir besoin selon la raison pour laquelle vous utilisez livemedia-creator. Parmi ces paquets, vous trouverez :
  • virt-install : un paquet offrant des outils pour créer de nouvelles machines virtuelles, utilisé dans la première étape de la création de support live sauf si l'option --no-virt est spécifiée.
  • libvirt, qemu-kvm, virsh et autres outils de virtualisation : lorsque vous utilisez virt-install, votre système doit être préparé à créer, exécuter et gérer une machine virtuelle. Pour plus d'informations concernant la virtualisation de Red Hat Enterprise Linux et l'installation et le fonctionnement des outils de virtualisation, veuillez consulter le Guide de déploiement et d'administration de la virtualisation Red Hat Enterprise Linux 7.
  • anaconda : le programme d'installation Red Hat Enterprise Linux, utilisé au cours de la première étape à la place de virt-install si l'option --no-virt est utilisée.
D'autres applications, qui n'entrent pas dans le cadre de ce chapitre, peuvent être nécessaires. Si vous tentez d'exécuter livemedia-creator et qu'il manque un paquet requis avec les options que vous avez spécifiées, le programme s'arrêtera et un message d'erreur s'affichera vous informant des paquets que vous avez besoin d'installer avant de poursuivre.

24.2.3. Exemple de fichiers Kickstart

Pour parvenir à créer une image live, il est nécessaire que vous possédiez un fichier de configuration Kickstart valide. Deux échantillons sont installés automatiquement avec lorax. Vous pouvez utiliser ces échantillons comme référence lors de la création de vos images personnalisées, ou vous pouvez les copier et les modifier de manière à répondre à vos besoins d'utilisation. Ces deux échantillons se situent dans le répertoire /usr/share/doc/lorax-version/, où version est le numéro de la version du paquet lorax installé sur votre système.
Les échantillons disponibles sont :
  • rhel7-minimal.ks : un fichier de configuration n'offrant qu'une installation minimale (le groupe @core) et autres fondamentaux tels que le noyau et le chargeur de démarrage GRUB2. Aucun utilisateur, à l'exception de root, n'est créé, et aucune interface graphique ni aucun paquet additionnel n'est installé.
  • rhel7-livemedia.ks : un fichier de configuration plus avancé qui crée un système live avec une interface graphique. Un utilisateur appelé liveuser est créé avec root.
Les deux exemples de configuration doivent être modifiés pour utiliser un emplacement valide en tant que source d'installation. Pour ce faire, ouvrez le fichier dans un éditeur de texte brut tel que vim, localisez la commande url et remplacez l'adresse fournie par une source d'installation valide. Aucune autre modification n'est nécessaire pour faire fonctionner ces exemples.

Important

Ne modifiez pas ces exemples à partir de leur emplacement d'origine. Copiez-les plutôt vers un autre répertoire avant de les modifier.

Note

Lorsque vous spécifiez la source d'installation et les référentiels additionnels dans le fichier Kickstart, souvenez-vous que seuls les référentiels Red Hat fournis officiellement sont pris en charge. Les référentiels personnalisés peuvent fonctionner, mais ils ne sont pas pris en charge.

24.2.4. Création d'images personnalisées

Cette section décrit plusieurs modèles d'utilisation courants pour livemedia-creator et constitue une liste non-exhaustive des options disponibles. Pour voir toutes les options disponibles, veuillez exécuter livemedia-creator --help ou consulter la page man livemedia-creator(1).

24.2.4.1. Création d'une image live avec virt-install

La principale utilisation de livemedia-creator implique l'utilisation de virt-install pour créer une machine virtuelle temporaire à utiliser pour le processus de création d'image live. Pour créer un ISO live avec virt-install, il vous faudra un fichier Kickstart valide et une image ISO de démarrage qui contienne le programme d'installation Anaconda. Ces images sont fournies par Red Hat en tant que « support de démarrage minimal » ; veuillez consulter la Section 2.2, « Installation USB » pour plus de détails.
La commande suivante est le premier élément dont vous avez besoin pour créer une image live avec virt-install :
# livemedia-creator --make-iso --iso=/path/to/boot.iso --ks=/path/to/valid/kickstart.ks 
Remplacez /path/to/boot.iso par un chemin d'accès vers une image de démarrage minimale et /path/to/valid/kickstart.ks par un chemin d'accès vers un fichier Kickstart valide à utiliser dans le processus de création d'image.
Voici les options supplémentaires que vous trouverez utiles dans ce cas particulier d'utilisation :
  • --vnc vnc : cette option vous permet d'observer le processus d'installation avec un client VNC tel que TigerVNC. L'option est passée à l'option --graphics de virt-install. Pour plus d'informations, veuillez consulter le Chapitre 22, Installation avec VNC.
  • --ram x : vous permet de spécifier le montant de RAM pour la machine virtuelle temporaire en méga-octets.
  • --vcpus x : le nombre de processeurs de la machine virtuelle.

24.2.4.2. Création d'une image live avec l'installateur d'image d'Anaconda.

Il est également possible de créer une image live en utilisant la fonctionnalité d'installation d'image d'Anaconda. Dans ce cas, aucune image contenant le programme d'installation n'est nécessaire, mais le paquet anaconda doit être installé sur le système. Ce processus comporte lui aussi deux étapes : tout d'abord, une image disque temporaire est créée et un système y est installé, puis cette image est utilisée pour créer l'ISO de démarrage final.

Avertissement

L'utilisation d'Anaconda pour une création d'image live peut être dangereuse, car elle utilise le programme d'installation sur le système plutôt que dans la machine virtuelle. Bien qu'aucun bogue connu ne puisse poser de problème pour le moment, il est possible que ce processus rende le système totalement inutilisable. Ainsi, l'exécution de livemedia-creator avec l'option --no-virt n'est recommandée que sur les machines virtuelles (invités) spécialement conçues à cet effet.

Important

Passez Security Enhanced Linux (SELinux) en mode permissif (ou désactivé) avant de créer des images personnalisées avec Anaconda. Veuillez consulter le Guide de l'administrateur et de l'utilisateur SELinux Red Hat Enterprise Linux 7 pour obtenir plus d'informations sur le paramétrage des modes SELinux.
Pour créer une image live avec Anaconda, utilisez l'option --no-virt.
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --no-virt 

24.2.4.3. Création d'une image disque ou de système de fichiers

Vous pouvez également utiliser livemedia-creator pour créer une image disque ou de système de fichiers. Cela implique de n'exécuter que la première étape du processus de création d'image. L'ISO final ne sera pas créé, le programme s'arrêtera à la fin du processus d'installation sur le disque temporaire ou l'image de système de fichiers. Vous pouvez ensuite monter et vérifier les erreurs de cette image, ce qui peut être utile lors de la résolution de problèmes d'un fichier Kickstart modifié, et vous pouvez également la garder pour plus tard, afin de gagner du temps à la prochaine création d'images.
Il existe plusieurs façons d'arrêter le processus de création après la première étape. Vous pouvez utiliser l'option --image-only tel qu'illustré dans l'exemple suivant :
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso --image-only 
Vous pouvez également utiliser l'option --make-disk au lieu de --make-iso :
# livemedia-creator --make-disk --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
Vous pouvez également créer une image de système de fichiers plutôt qu'une image disque partitionnée en utilisant l'option --make-fsimage :
# livemedia-creator --make-fsimage --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 

Note

Il est également possible d'utiliser l'option --no-virt dans tous les exemples de cette section.
Dans tous les cas, le résultat sera une image disque partitionnée ou une image de système de fichiers, située dans le répertoire /var/tmp/ par défaut. Pour modifier l'emplacement du résultat, utilisez l'option --tmp /path/to/temporary/directory/, où /path/to/temporary/directory/ est le chemin d'accès vers le répertoire cible.

24.2.4.4. Utilisation d'un disque créé précédemment ou d'une image de système de fichiers

Si vous possédez déjà une image disque ou de système de fichiers (voir la Section 24.2.4.3, « Création d'une image disque ou de système de fichiers »), vous pouvez la fournir à livemedia-creator pour produire l'image ISO de démarrage finale. Dans ce cas, aucun fichier Kickstart ou image d'installation Anaconda n'est requis ; ces derniers ne sont nécessaires qu'à la première étape du processus de création d'image, qui est ignorée dans ce cas précis.
Pour créer une image finale à partir d'un fichier d'image disque partitionné, utilisez l'option --disk-image. Par exemple :
# livemedia-creator --make-iso --disk-image=/path/to/disk/image.img 
Si vous souhaitez utiliser une image de système de fichiers plutôt qu'une image disque, utilisez plutôt l'option --fs-image :
# livemedia-creator --make-iso --fs-image=/path/to/filesystem/image.img 

24.2.4.5. Création d'un appareil

L'autre utilité de livemedia-creator est la création d'une image d'appareil (une image disque partitionnée), comprenant un fichier XML contenant sa description, générée à partir d'un modèle. Dans ce cas, les installations de machines virtuelles ainsi que les installations d'images sont prises en charge. Pour créer une image d'appareil et sa description, utilisez l'option --make-appliance plutôt que --make-iso. Par exemple :
# livemedia-creator --make-appliance --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
L'image et le fichier XML de description seront stockés dans le répertoire /var/tmp/, sauf si un répertoire différent est spécifié à l'aide de l'option --resultdir.
Les options supplémentaires spécifiques à la création d'appareil comprennent :
  • --app-name name : spécifie le nom de l'appareil, qui apparaîtra dans le fichier de description XML portant l'étiquette <name>. La valeur par défaut est None.
  • --app-template /path/to/template.tmpl : spécifie le modèle à utiliser. Le chemin d'accès par défaut est /usr/share/lorax/appliance/libvirt.tmpl.
  • --app-file /path/to/app/file.xml : spécifie le nom du fichier XML de description créé. La valeur par défaut est appliance.xml.

24.2.4.6. Création d'une AMI (Amazon Machine Image)

Pour créer une AMI à utiliser dans le EC2 (Amazon Elastic Compute Cloud), utilisez l'option --make-ami. Les installations virtualisées et d'installation sont toutes deux prises en charge.
# livemedia-creator --make-ami --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
Le résultat sera un fichier image appelé ami-root.img, situé dans le répertoire /var/tmp/, sauf si vous avez utilisé l'option --resultdir pour en spécifier un différent.

24.2.4.7. Arguments supplémentaires

Les options suivantes peuvent être utilisées dans tous les cas d'utilisation mentionnés ci-dessus (installations virtuelles, installations d'image Anaconda, etc).
  • --keep-image : quand vous spécifiez cette option, le fichier d'image disque temporaire utilisé dans la première étape de l'installation ne sera pas supprimé. Il se situera dans le répertoire /var/tmp/ et possèdera un nom créé au hasard tel que diskgU42Cq.img.
  • --image-only : l'utilisation de cette option signifie que seule la première étape du processus de création d'image sera exécutée. Au lieu de produire l'image ISO de démarrage finale, livemedia-creator créera uniquement le fichier d'image disque temporaire et y effectuera une installation. Cette option vous permet d'économiser du temps lors des tests de modification de votre fichier Kickstart, car elle vous permet d'ignorer la deuxième étape, qui nécessite un certain temps, et d'inspecter le fichier d'image disque temporaire.
  • --image-name name : vous permet de spécifier un nom personnalisé pour le fichier d'image disque temporaire. Le nom par défaut est créé au hasard (par exemple : disk1Fac8G.img).
  • --tmp /path/to/temporary/directory/ : spécifie le répertoire temporaire de premier niveau. La valeur par défaut est /var/tmp/. Lorsque vous utilisez cette option, vous devez spécifier un répertoire qui existe déjà.
  • --resultdir /path/to/results/directory/ : spécifie le répertoire sur lequel les résultats (l'image ISO de démarrage) apparaîtra une fois livemedia-creator terminé. Un répertoire déjà existant ne peut être spécifié. Le répertoire par défaut est /var/tmp/. Cette option ne s'applique qu'à l'image ISO finale ; si vous créez une image disque ou de système de fichiers et que vous souhaitez l'enregistrer à un emplacement précis, utilisez l'option --tmp.
  • --logfile /path/to/log/file/ : spécifie l'emplacement du fichier de journalisation du programme.

24.2.5. Résolution des problèmes liés à livemedia-creator

Cette section offre des suggestions de résolution pour différents problèmes souvent rencontrés lors de l'utilisation de livemedia-creator. Si vous rencontrez un problème dont la description n'apparaît pas ici, vous pouvez consulter les fichiers journaux du programme, qui sont créés automatiquement au cours de chaque exécution et enregistrés dans le répertoire à partir duquel vous avez exécuté l'outil, sauf si vous spécifiez un répertoire différent à l'aide de l'option --logfile. Les fichiers journaux seront différents selon les options que vous aurez utilisé, par exemple virt-install.log ne sera pas créé quand vous utilisez l'option --no-virt (à la place, vous obtiendrez des fichiers journaux à partir de Anaconda, dans le répertoire anaconda/). D'autres fichiers, comme livemedia.log et program.log, sont créés à chaque fois.
Une autre façon de trouver et résoudre des problèmes est d'utiliser l'option --image-only lors de l'exécution de l'utilitaire. Cette option arrêtera le programme après la première étape, ainsi un fichier d'image disque sera créé à la place de l'ISO de démarrage final. Vous pouvez ensuite monter le fichier d'image disque et examiner son contenu sans avoir à attendre que la seconde étape se termine. Vous pouvez également utiliser l'option --keep-image, qui exécutera les deux étapes, mais gardera l'image disque temporaire pour une analyse ultérieure.
L'utilisation de l'option --vnc est recommandée lorsque vous testez les modifications apportées au fichier Kickstart. Cette option vous permettra d'utiliser un client VNC pour vous connecter à la machine virtuelle et observer l'évolution de l'installation. Pour plus d'informations, veuillez consulter le Chapitre 22, Installation avec VNC.

24.2.5.1. Installation de machine virtuelle bloquée

Si le programme d'installation reste bloqué, pour une raison ou une autre, lors de la première étape d'une installation virtuelle, livemedia-creator se bloquera également jusqu'à ce que l'installation se termine. Vous pouvez soit interrompre le programme directement, soit résoudre ce problème en arrêtant la machine virtuelle temporaire. Livemedia-creator détectera que le système d'exploitation invité a été arrêté, supprimera tous les fichiers temporaires et quittera.
Pour arrêter la machine virtuelle temporaire, veuillez suivre cette procédure :

Procédure 24.1. Arrêter la machine virtuelle temporaire

  1. Utilisez virsh pour énumérer toutes les machines virtuelles (invités) actuellement disponibles sur le système. Le résultat sera semblable à ce qui suit :
    # virsh list --all Id Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off 
    Identifiez la machine virtuelle temporaire. Son nom commencera toujours avec LiveOS, suivi par une chaîne de différents chiffres et caractères.
  2. Une fois que vous aurez identifié la machine virtuelle temporaire, arrêtez-la en utilisant la commande virsh destroy nom, où nom est le nom de la machine virtuelle.
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed 

24.2.5.2. Installation de la machine virtuelle interrompue

Si le processus d'installation virtuelle était interrompue pour une raison ou une autre (panne matérielle, coupure de courant ou interruption de clavier) au cours de la première étape, virt-install ne redémarrera que lorsque la machine virtuelle et l'image de disque temporaire créées précédemment seront supprimées. La procédure suivante explique comment procéder.
Il n'est pas toujours nécessaire de reproduire toutes les étapes. Par exemple, si vous vous trouvez en phase de récupération suite à une panne système, vous n'aurez pas besoin d'arrêter la machine virtuelle temporaire, mais de la supprimer. Vous pouvez également utiliser les étapes 4 et 5 si vous souhaitez uniquement nettoyer les fichiers temporaires créés par livemedia-creator et rien d'autre.

Procédure 24.2. Suppression de fichiers d'image disque et invités temporaires

  1. Utilisez virsh pour énumérer toutes les machines virtuelles (invités) actuellement disponibles sur le système. Le résultat sera semblable à ce qui suit :
    # virsh list --all Id Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off 
    Identifiez la machine virtuelle temporaire. Son nom commencera toujours avec LiveOS, suivi par une chaîne de différents chiffres et caractères.
  2. Une fois que vous aurez identifié la machine virtuelle temporaire, arrêtez-la en utilisant la commande virsh destroy nom, où nom est le nom de la machine virtuelle.
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed 
  3. Supprimez la machine virtuelle temporaire à l'aide de virsh undefine nom, en utilisant le même nom qu'à l'étape précédente.
    # virsh undefine LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 has been undefined 
  4. Trouvez le montage du système de fichiers temporaire. Il sera ciblé vers le répertoire /var/tmp/ et son nom sera lorax.imgutils suivi par six chiffres ou caractères aléatoires.
    # findmnt -T /var/tmp/lorax.imgutils* TARGET SOURCE FSTYPE OPTIONS /var/tmp/lorax.imgutils.bg6iPJ /dev/loop1 iso9660 ro,relatime 
    Démontez-le ensuite à l'aide de la commande umount.
     # umount /var/tmp/lorax.imgutils.bg6iPJ 
  5. Cherchez l'image disque temporaire créée par virt-install dans le répertoire /var/tmp. Le nom de ce fichier est imprimé en ligne de commande au début du processus d'installation et est créé de manière aléatoire, sauf si vous précisez un nom en utilisant l'option --image-name . Par exemple :
     2013-10-30 09:53:03,161: disk_size = 5GB 2013-10-30 09:53:03,161: disk_img = /var/tmp/diskQBkzRz.img 2013-10-30 09:53:03,161: install_log = /home/pbokoc/lorax/virt-install.log mount: /dev/loop1 is write-protected, mounting read-only 
    Dans l'exemple ci-dessus, l'image disque temporaire est /var/tmp/diskQBkzRz.img.
    Si vous ne pouvez pas trouver les messages initiaux, vous pouvez identifier les fichiers temporaires manuellement. Affichez tout le contenu du répertoire /var/tmp à l'aide de la commande ls et filtrez le résultat des fichiers contenant disk dans leur nom :
    # ls /var/tmp/ | grep disk diskQBkzRz.img 
    Supprimez ensuite l'image disque temporaire :
    # rm -f /var/tmp/diskQBkzRz.img 
Si vous avez suivi tous les étapes de cette procédure, vous pouvez désormais démarrer une nouvelle installation avec virt-install.

24.2.5.3. Échec de l'installation avec --no-virt

La récupération d'une installation interrompue à l'aide de la fonctionnalité d'installation d'image d'Anaconda (l'option --no-virt) peut être effectuée en exécutant le script anaconda-cleanup, qui est installé avec le paquet anaconda. Ce script est situé dans le répertoire /usr/bin/.
Utilisez la commande suivante pour exécuter le script de nettoyage. Un privilège root est nécessaire.
# anaconda-cleanup