Je vais être honnête, j’ai n’ai même pas cherché moi-même comment faire. Je veux connaître vos avis d’experts, même si, in fine, je vais quand même chercher moi-même pour croiser tout ce que vous m’aurez proposé.
Alors voilà, j’ai une VM (KVM, image QCOW) et je voudrais en avoir trois ou quatre semblables à celle-ci. Quand je dis semblable il y aurait forcément quelques différences : le nom d’hôte et son IP.
Il s’agit en l’occurrence de VM en CentOS 7 (et l’hôte est en Debian 9) mais une méthode agnostique de la distribution de la VM serait idéale.
Une commande aussi simple que virsh clone vm_a vm_b
(et qui gère la conf réseau) ça me plairait bien quoi :)
# Attention ssh
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
Attention cependant à refaire des clefs ssh dans la nouvelle machine, à modifier les mots de passe qui vont bien…
Comme cela est assez dépendant des services qui tournent sur la machine, il n'y a pas de méthodes magiques marchant dans tous les cas.
# Commentaire supprimé
Posté par Anonyme . Évalué à 6.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Utiliser les outils libvirt : virt-install et guestfs
Posté par Marotte ⛧ . Évalué à 5.
Merci. Je vais étudier ton script car mon essai de ce soir a été infructueux malheureusement.
Pour cloner c’est simple :
Ma VM à cloner s’appelle "Annabelle", première chose à faire, je l’éteins :
virsh shutdown Annabelle
, ensuite :
Ça ça marche, j’ai maintenant une VM nommée "Micheline". Youpi ! Effectivement difficile de faire plus simple, encore que j’aurais pu utiliser --auto-clone puisque l’image disque d’Annabelle est le fichier /data/VMs/Annabelle.qcow2, ça serait revenu au même, mais dans le doute j’ai préféré préciser le nom du fichier pour l’image de ma nouvelle VM.virt-clone --original Annabelle --name Micheline --file /data/VMs/Micheline.qcow2
Et c’est maintenant que ça se complique… tout un tas de trucs doivent être différents entre les deux VM, ne serait-ce que leur adresse réseau, mais il y a aussi leurs clés d’hôtes et encore tout un tas d’info dont les trois quarts me passent au dessus de la tête je n’ai pas honte de le dire. Bon OK c’est compliqué mais l’ordinateur est là pour me faciliter la vie en simplifiant, non ?
Donc, naïvement je me suis dit qu’un
virt-sysprep -d Micheline
allait faire le job, d’ailleurs voilà ce qu’il me dit :Mais… c’est super ça ! Il en a même fait plus que nécessaire… en tout cas je vois "ssh-hostkeys", il a donc dû changer les clés d’hôte de Micheline…
Mais voilà… si je démarre Micheline elle a l’adresse d’Annabelle (qui est éteinte). Annabelle avait une IP fixe (192.168.122.200) :
Si je ne raconte pas de connerie (il est bientôt minuit quand-même…) virt-sysprep m’a bien changé la clé d’hôte mais il a pas changé l’IP ?!
Je me dis que je suis sur la bonne voie mais il y a quand même des trucs bizarres… J’éteins Micheline et rallume Annabelle :
Je peux de nouveau me connecter en SSH à l’adresse 192.168.122.200, c’est bien Annabelle, c’est la bonne clé.
Par contre ce sont les commandes suivantes que j’ai du mal à comprendre, je ne comprends pas pourquoi je n’ai aucune info :
# virsh domifaddr Annabelle
Name MAC address Protocol Address
-------------------------------------------------------------------------------
rien ! nada, que dalle :(
J’ai la vague impression que si Annabelle avait une lease DHCP plutôt qu’une IP fixe j’aurais moins de problème mais j’ai la flemme de tester et je tiens à mon IP fixe.
Bon, si j’ai le temps demain, avec mes expériences foireuses de ce soir et le script d’Etienne je vais p-e m’en sortir !
Pour filer quelques info supplémentaires, l’hôte est une Debian 9 et Annabelle est une CentOS 7
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Utiliser les outils libvirt : virt-install et guestfs
Posté par Marotte ⛧ . Évalué à 3.
C’est pas mal mais ça me semble overkill quand je veux juste faire mumuse avec quelques VM… Ceci dit dans le fond tu as raison.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Adresse MAC
Posté par MicP . Évalué à 1.
Bonjour
Il te faudrait changer l'adresse MAC du périphérique réseau de ta machine virtuelle clone.
[^] # Re: Adresse MAC
Posté par MicP . Évalué à 2.
Je n'avais pas fait attention à :
[ 3,4] Performing "net-hwaddr" ...
alors, si l'adresse MAC a été changée
c'est sans doute une histoire de configuration de l'interface réseau
en IP fixe, peut-être par le fichier
/etc/network/interfaces
[^] # Re: Adresse MAC
Posté par Marotte ⛧ . Évalué à 3.
Je vais effectivement essayer de changer l’ip "à la main" avec un
virt-sysprep --run-command
Merci à tous pour votre aide, comme toujours vous assurez !
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 3. Dernière modification le 25 juillet 2019 à 09:37.
Ce commentaire a été supprimé par l’équipe de modération.
# [Résolu]
Posté par Marotte ⛧ . Évalué à 3.
Voici comment je m’y suis pris :
Un coup de
virt-clone
, comme décrit plus haut, ça c’est pas très compliqué.Utilisation de
virt-sysprep
sur la nouvelle VM pour qu’il modifie ce qu’il doit modifier. Par défaut il prend (toutes ?) les opérations nécessaires. La liste est aussi dans un précédent commentaire. Mais voilà, il ne change pas l’IP de ma nouvelle VM, ce qui est forcément très gênant pour tout un de raisons :(C’est là que l’option --file de virt-sysrep devrait s’avérer utile : le fichier à modifier c’est /etc/sysconfig/network-scripts/ifcfg-eth0 et l’expression sed pour remplacer la valeur de IPADDR doit être ultra simple… sauf que… sauf que, j’en ai fait un paquet sans jamais y arriver :( C’est comme si le fichier que je tentais de modifier n’avait jamais "IPADDR=192.168.122.200" mais autre chose… ou alors il fallait des doubles échappement ou encore, je dois me rendre à l’évidence : les regex et moi ça fait deux :/
Solution pour remplacer : (NB: la machine clone (Micheline) est arrêtée) :
là on change l’IP.virt-edit -d Micheline /etc/sysconfig/network-scripts/ifcfg-eth0
Ensuite je peux me connecter à cette nouvelle machine ! Par contre elle a conservé le nom d’hôte "annabelle" (comme la VM d’origine). Un coup de
netui
et c’est plié !Voilà, je vais avoir un moyen simple d’avoir plusieurs VM « identiques » sans avoir à les installer une par une. Youpi.
Il y a sûrement mieux mais je suis assez fier de cette solution. J’aurais juste aimé que l’option --file fonctionne pour moi… comme j’ai eu une solution de contournement je n’ai pas testé --run-command (à la place de --file). Je suis également passé à côté de l’option --hostname qui aurait sûrement pu m’éviter d’avoir à lancer
netui
.Encore une fois : merci à tous.
[^] # Re: [Résolu]
Posté par Marotte ⛧ . Évalué à 3.
J’apprends à me servir de libvirt… je me suis rendu compte que virt-sysprep était loin de tout remettre « d’aplomb » :
Comme on peut le voir le nom du VG (le VG par défaut qui reprend le nom d’hôte dans son nom) n’est pas modifié non plus.
À part le fait que ce soit « crade », est-ce que ça peut avoir des impacts, et si oui lesquels ? Une chose à avoir à l’esprit en préparant son “master” (la VM qui va servir de modèle) ce serait notamment de nommer directement le VG avec un nom plus générique. Ici j’avais choisi le partitionnement LVM automatique (de CentOS 7), je n’aurais pas dû faire ça.
Il va falloir que je jette un œil à virt-buiilder ça peut être une solution : au lieu de cloner une VM j’ai une méthode/un script pour créer autant de VM que je veux.
Question subsidiaire : est-ce que certains connaissent KVM-qemu et VMWare/vSphere ? Quels sont les avantages et les inconvénients de chacun ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.