Rechercher

11.2. Création de modèles de machines virtuelles

download PDF

Pour créer plusieurs clones de machines virtuelles (VM) qui fonctionnent correctement, vous pouvez supprimer les informations et les configurations qui sont propres à une VM source, telles que les clés SSH ou la configuration MAC du réseau persistant. Vous créez ainsi une VM template, que vous pouvez utiliser pour créer facilement et en toute sécurité des clones de VM.

Vous pouvez créer des modèles de VM à l'aide de l'utilitaire virt-sysprep ou les créer manuellement en fonction de vos besoins.

11.2.1. Création d'un modèle de machine virtuelle à l'aide de virt-sysprep

Pour créer un modèle de clonage à partir d'une machine virtuelle (VM) existante, vous pouvez utiliser l'utilitaire virt-sysprep. Cet utilitaire supprime certaines configurations susceptibles d'entraîner un fonctionnement incorrect du clone, telles que des paramètres réseau spécifiques ou des métadonnées d'enregistrement du système. Par conséquent, virt-sysprep rend la création de clones de la VM plus efficace et garantit un fonctionnement plus fiable des clones.

Conditions préalables

  • Le paquet guestfs-tools, qui contient l'utilitaire virt-sysprep, est installé sur votre hôte :

    # dnf install guestfs-tools
  • La VM source destinée à servir de modèle est arrêtée.
  • Vous savez où se trouve l'image disque de la VM source et vous êtes le propriétaire du fichier image disque de la VM.

    Notez que les images de disque pour les machines virtuelles créées dans la connexion système de libvirt sont situées dans le répertoire /var/lib/libvirt/images et appartiennent par défaut à l'utilisateur root :

    # ls -la /var/lib/libvirt/images
    -rw-------.  1 root root  9665380352 Jul 23 14:50 a-really-important-vm.qcow2
    -rw-------.  1 root root  8591507456 Jul 26  2017 an-actual-vm-that-i-use.qcow2
    -rw-------.  1 root root  8591507456 Jul 26  2017 totally-not-a-fake-vm.qcow2
    -rw-------.  1 root root 10739318784 Sep 20 17:57 another-vm-example.qcow2
  • Optional: Toutes les données importantes se trouvant sur le disque de la VM source ont été sauvegardées. Si vous souhaitez conserver la VM source intacte, clonez-la d'abord et transformez le clone en modèle.

Procédure

  1. Assurez-vous d'être connecté en tant que propriétaire de l'image disque de la VM :

    # whoami
    root
  2. Optional: Copier l'image disque de la VM.

    # cp /var/lib/libvirt/images/a-really-important-vm.qcow2 /var/lib/libvirt/images/a-really-important-vm-original.qcow2

    Il est utilisé ultérieurement pour vérifier que la VM a bien été transformée en modèle.

  3. Utilisez la commande suivante et remplacez /var/lib/libvirt/images/a-really-important-vm.qcow2 par le chemin d'accès à l'image disque de la VM source.

    # virt-sysprep -a /var/lib/libvirt/images/a-really-important-vm.qcow2
    [   0.0] Examining the guest ...
    [   7.3] Performing "abrt-data" ...
    [   7.3] Performing "backup-files" ...
    [   9.6] Performing "bash-history" ...
    [   9.6] Performing "blkid-tab" ...
    [...]

Vérification

  • Pour confirmer que le processus a réussi, comparez l'image disque modifiée à l'image originale. L'exemple suivant montre la création réussie d'un modèle :

    # virt-diff -a /var/lib/libvirt/images/a-really-important-vm-orig.qcow2 -A /var/lib/libvirt/images/a-really-important-vm.qcow2
    - - 0644       1001 /etc/group-
    - - 0000        797 /etc/gshadow-
    = - 0444         33 /etc/machine-id
    [...]
    - - 0600        409 /home/username/.bash_history
    - d 0700          6 /home/username/.ssh
    - - 0600        868 /root/.bash_history
    [...]

Ressources supplémentaires

11.2.2. Créer manuellement un modèle de machine virtuelle

Pour créer un modèle à partir d'une machine virtuelle (VM) existante, vous pouvez réinitialiser ou déconfigurer manuellement une VM invitée afin de la préparer au clonage.

Conditions préalables

  • Assurez-vous de connaître l'emplacement de l'image disque de la VM source et d'être le propriétaire du fichier d'image disque de la VM.

    Notez que les images de disque pour les machines virtuelles créées dans la connexion système de libvirt sont par défaut situées dans le répertoire /var/lib/libvirt/images et appartiennent à l'utilisateur root :

    # ls -la /var/lib/libvirt/images
    -rw-------.  1 root root  9665380352 Jul 23 14:50 a-really-important-vm.qcow2
    -rw-------.  1 root root  8591507456 Jul 26  2017 an-actual-vm-that-i-use.qcow2
    -rw-------.  1 root root  8591507456 Jul 26  2017 totally-not-a-fake-vm.qcow2
    -rw-------.  1 root root 10739318784 Sep 20 17:57 another-vm-example.qcow2
  • Assurez-vous que la machine virtuelle est arrêtée.
  • Optional: Toutes les données importantes présentes sur le disque de la VM ont été sauvegardées. Si vous souhaitez conserver la VM source intacte, clonez-la d'abord et modifiez le clone pour créer un modèle.

Procédure

  1. Configurer la VM pour le clonage :

    1. Installer les logiciels nécessaires sur le clone.
    2. Configurez tous les paramètres non uniques pour le système d'exploitation.
    3. Configurer les paramètres de l'application qui ne sont pas uniques.
  2. Supprimer la configuration du réseau :

    1. Supprimez toutes les règles udev persistantes à l'aide de la commande suivante :

      # rm -f /etc/udev/rules.d/70-persistent-net.rules
      Note

      Si les règles udev ne sont pas supprimées, le nom du premier NIC peut être eth1 au lieu de eth0.

    2. Supprimer les informations uniques des fichiers NMConnection dans le répertoire /etc/NetworkManager/system-connections/.

      1. Supprimez l'adresse MAC, l'adresse IP, le DNS, la passerelle et toute autre information unique ou les paramètres non souhaités.

        *ID=ExampleNetwork
        BOOTPROTO="dhcp"
        HWADDR="AA:BB:CC:DD:EE:FF"                  <- REMOVE
        NM_CONTROLLED="yes"
        ONBOOT="yes"
        TYPE="Ethernet"
        UUID="954bd22c-f96c-4b59-9445-b39dd86ac8ab" <- REMOVE
      2. Supprimer les informations similaires de unique et les paramètres non souhaités des fichiers /etc/hosts et /etc/resolv.conf.
  3. Supprimer les détails de l'enregistrement :

    • Pour les machines virtuelles enregistrées sur le Red Hat Network (RHN) :

      # rm /etc/sysconfig/rhn/systemid
    • Pour les machines virtuelles enregistrées auprès du gestionnaire d'abonnement Red Hat (RHSM) :

      • Si vous n'avez pas l'intention d'utiliser la VM d'origine :

        # subscription-manager unsubscribe --all # subscription-manager unregister # subscription-manager clean
      • Si vous prévoyez d'utiliser la VM d'origine :

        # subscription-manager clean
        Note

        Le profil RHSM original reste dans le portail avec votre code d'identification. Utilisez la commande suivante pour réactiver votre enregistrement RHSM sur la VM après son clonage :

        # subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
  4. Supprimer les autres détails uniques :

    1. Supprimer les paires de clés publiques et privées SSH :

      # rm -rf /etc/ssh/ssh_host_example
    2. Supprimer la configuration des périphériques LVM :

      # rm /etc/lvm/devices/system.devices
    3. Supprimer tout autre identifiant ou configuration spécifique à l'application qui pourrait entraîner des conflits en cas d'exécution sur plusieurs machines.
  5. Supprimez le fichier gnome-initial-setup-done pour configurer la VM afin qu'elle exécute l'assistant de configuration au prochain démarrage :

    # rm ~/.config/gnome-initial-setup-done
    Note

    L'assistant qui s'exécute au démarrage suivant dépend des configurations qui ont été supprimées de la VM. En outre, lors du premier démarrage du clone, il est recommandé de modifier le nom d'hôte.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.