Post

cwwk KVM - Cloner des images de machines virtuelles

cwwk KVM - Cloner des images de machines virtuelles

Cloner machine virtuelle Alpine Linux

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

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
Cet article est sous licence CC BY 4.0 par l'auteur.