cwwk KVM - Cloner des images de machines virtuelles
Cloner machine virtuelle Alpine Linux
- How to clone existing KVM virtual machine images on Linux
- How to reset a KVM clone virtual Machines with virt-sysprep on Linux
Utiliser virt-sysprep si vous avez besoin de cloner la VM et de faire/réinitialiser quoi que ce soit à l’intérieur de l’OS invité
Lister les machines virtuelles
Exécuter la commande : sudo virsh list --all
1
2
3
4
5
6
7
8
9
ID Nom État
---------------------------------------------
1 vm-ntfy en cours d’exécution
2 vm-debian12 en cours d’exécution
3 alpine-vm en cours d’exécution
4 alpine-searx en cours d’exécution
- vm-alpine01 fermé
- vm-debian12-01 fermé
- vm-lldap fermé
Arrêter la machine à cloner
Si la machine virtuelle est en cours d’exécution
1
sudo virsh destroy vm-alpine01
Domain ‘vm-alpine01’ destroyed
Cloner la machine virtuelle
Machine virtuelle originale: vm-alpine01
Machine virtuelle cible: vm-alpine02
Disque cible: /srv/kvm/libvirt/images/vm-alpine02.qcow2
1
2
3
sudo virt-clone --original vm-alpine01 \
--name vm-alpine02 \
--file /srv/kvm/libvirt/images/vm-alpine02.qcow2
Résultat de la commande
1
2
3
Allocating 'vm-alpine02.qcow2' | 742 MB 00:00:00 ...
Le clone « vm-alpine02 » a été créé.
Démarrer le clone vm-alpine02
ATTENTION: Machine virtuelle originale vm-alpine01 doit être arrêtée
1
sudo virsh start vm-alpine02
Même utilisateur et mot de passe pour le clone
Problème initialisation serveur ssh
Problème serveur ssh, exécuter la commande suivante pour que votre serveur génère sa clé d’hôte afin que vous puissiez vous connecter au serveur via SSH. Plus d’informations ici .
Reconfigurer les clés SSH
1
sudo dpkg-reconfigure openssh-server
Domain ‘vm-alpine02’ started
Connexion clone vm-alpine02
On se connecte à l’identique de la machine originale depuis un terminal linux sur le même réseau
1
ssh -p 55061 -i .ssh/vm-alpine01 alpi@192.168.10.61
Modifier le fichier /etc/motd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
_ _ _ _ _
/ \ | | _ __ (_) _ __ ___ | | (_) _ __ _ _ __ __
/ _ \ | || '_ \ | || '_ \ / _ \ | | | || '_ \ | | | |\ \/ /
/ ___ \ | || |_) || || | | || __/ | |___ | || | | || |_| | > <
/_/ \_\|_|| .__/ |_||_| |_| \___| |_____||_||_| |_| \__,_|/_/\_\
|_| _ _ ___ ____
__ __ _ __ ___ __ _ | | _ __ (_) _ __ ___ / _ \|___ \
\ \ / /| '_ ` _ \ _____ / _` || || '_ \ | || '_ \ / _ \| | | | __) |
\ V / | | | | | ||_____|| (_| || || |_) || || | | || __/| |_| |/ __/
\_/ |_| |_| |_| \__,_||_|| .__/ |_||_| |_| \___| \___/|_____|
_ ___ ____ _ __ ___ |_| _ ___ __ _ _
/ | / _ \|___ \ / | / /_ ( _ ) / | / _ \ / /_ | || |
| || (_) | __) | | || '_ \ / _ \ | || | | | | '_ \ | || |_
| | \__, |/ __/ _ | || (_) || (_) |_ | || |_| |_| (_) ||__ _|
|_| /_/|_____|(_)|_| \___/ \___/(_)|_| \___/(_)\___/ |_|
Changement de la clé publique SSH $HOME/.ssh/authorized_keys
1
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL6y0ZigTHoSppYVyC/MzXBpMvTGaex35IrDyCHEe396 yann@PC1" > $HOME/.ssh/authorized_keys
Modifier le port de connexion SSH dans /etc/ssh/sshd_config
1
Port = 55064
Modifier l’adresse ip dans le fichier de configuration /etc/network/interfaces
1
2
3
4
5
6
7
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.64/24
gateway 192.168.10.1
redémarrer la machine pour prendre en compte l’ensemble des modifications
Connexion avec nouvelle adresse ip et nouvelle clé SSH depuis un terminal linux sur le même réseau
1
ssh -p 55064 -i $HOME/.ssh/vm-alpine02 alpi@192.168.10.64
Cloner vm-debian12 vers vm-debian12-01
- How to clone existing KVM virtual machine images on Linux
- How to reset a KVM clone virtual Machines with virt-sysprep on Linux
Utiliser virt-sysprep si vous avez besoin de cloner la VM et de faire/réinitialiser quoi que ce soit à l’intérieur de l’OS invité
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
yick@cwwk:~$ sudo virsh list
ID Nom État
-------------------------------------------
1 alpine-vm en cours d’exécution
2 vm-ntfy en cours d’exécution
3 alpine-searx en cours d’exécution
10 vm-debian12 en cours d’exécution
# Arrêt machine à cloner
yick@cwwk:~$ sudo virsh destroy vm-debian12
Domain 'vm-debian12' destroyed
# Cloner
yick@cwwk:~$ sudo virt-clone --original vm-debian12 \
--name vm-debian12-01 \
--file /srv/kvm/libvirt/images/debian-12-01.qcow2
Allocating 'debian-12-01.qcow2' | 1.2 GB 00:03 ...
Le clone « vm-debian12-01 » a été créé.
# virsh resume ncbz01
Initialiser les paramètres du clone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo virt-sysprep -d vm-debian12-01 \
--hostname vm-debian12-01 \
--enable user-account,ssh-hostkeys,net-hostname,net-hwaddr,machine-id \
--keep-user-accounts userone \
--keep-user-accounts root \
--run-command 'sed -i "s/192.168.10.62/192.168.10.63/" /etc/netplan/01-enp1s0.yaml'
[ 0.0] Examining the guest ...
[ 5.2] Performing "machine-id" ...
[ 5.2] Performing "net-hostname" ...
[ 5.2] Performing "net-hwaddr" ...
[ 5.3] Performing "ssh-hostkeys" ...
[ 5.3] Performing "user-account" ...
Démarrer le clone vm-debian12-01
Même utilisateur et mot de passe pour le clone
Problème initialisation serveur ssh
Problème serveur ssh, exécuter la commande suivante pour que votre serveur génère sa clé d’hôte afin que vous puissiez vous connecter au serveur via SSH. Plus d’informations ici .
Reconfigurer les clés SSH
1
sudo dpkg-reconfigure openssh-server
Connexion ssh clone vm-debian12-01
Se connecter ssh sur l’adresse ip 192.168.10.63 avec la clé
1
ssh userone@192.168.10.63 -i .ssh/vm-debian01