Catégorie : Linux

27 avril 2018 /

1) Pour commencer nous allons arrêter le domaine que nous souhaitons migrer

virsh shutdown nom_VM

ou si elle ne repond pas

virsh destroy nom_VM

2) Sur l’hyperviseur source, nous allons exporter la configuration du domaine dans un fichier xml:

virsh dumpxml nom_VM > nom_VM.xml

3 ) Toujours sur l’hyperviseur source, on copie le ou les fichiers disques du domaine que l’on souhaite migrer, depuis son emplacement dans /var/lib/libvirt/images vers le même répertoire sur l’hyperviseur de destination.

scp -p /var/lib/libvirt/images/nom_VM.qcow2 hyperviseur_destination:/var/lib/libvirt/images/
Si plusieurs disques ou stockage partagé différent : Adapte le chemin source et destination.
Utilise -r si tu as un répertoire entier, ou rsync pour plus de fiabilité :
rsync -avz --progress /var/lib/libvirt/images/nom_VM.qcow2 hyperviseur_destination:/var/lib/libvirt/images/

Si le chemin du disque est différent sur l’hyperviseur de destination, il faudra le modifier le fichier xml générer dans l’étape précédente pour que cela pointe au bon endroit.

4 ) On copie également notre fichier XML sur l’hyperviseur de destination

scp -p nom_VM.xml hyperviseur_destination:/tmp/

5) On intègre le domaine dans KVM à l’aide de notre fichier xml:

virsh define /tmp/nom_VM.xml

6) Il ne reste plus qu’a démarrer notre domaine

virsh start nom_VM
Vérification finale :
virsh list          # VM running sur la destination
virsh list --all    # VM absente ou "shut off" sur la source (tu peux l’undefine après)
Une fois la migration validée sur l’hyperviseur source:
virsh undefine nom_VM
rm nom_VM.xml /var/lib/libvirt/images/nom_VM.qcow2

 

 

12 avril 2018 /
Cette méthode crée un dépôt local offline à partir de l’ISO DVD (BaseOS + AppStream). Elle est idéale pour les serveurs isolés (sans internet ni subscription Red Hat).Prérequis :

  • Télécharge l’ISO DVD complet de RHEL 9 ou 10 (via ton compte Red Hat Developer gratuit pour les tests).
  • Copie l’ISO sur le serveur (via USB, SCP, etc.).

1. Monter l’ISO

sudo mkdir /mnt/rhel-iso
sudo mount -o loop /chemin/vers/rhel-9.x-x86_64-dvd.iso /mnt/rhel-iso
(Remplace par ton chemin ISO et version : rhel-9.4-x86_64-dvd.iso ou rhel-10.0-x86_64-dvd.iso)
Vérifie (tu dois voir BaseOS et AppStream):
ls /mnt/rhel-iso
2. Copier le contenu de l’ISO (optionnel mais recommandé pour persistance)
sudo mkdir -p /var/local-repo/rhel
sudo cp -av /mnt/rhel-iso/* /var/local-repo/rhel/
3. Créer le fichier de configuration du dépôt
sudo vi /etc/yum.repos.d/local-rhel.repo

On y ajoute les lignes suivantes :

[local-baseos]
name=Local RHEL BaseOS
baseurl=file:///var/local-repo/rhel/BaseOS
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[local-appstream]
name=Local RHEL AppStream
baseurl=file:///var/local-repo/rhel/AppStream
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
4. Désactiver les dépôts officiels Red Hat (pour éviter les erreurs subscription):
sudo subscription-manager repos --disable=*
5. Nettoyer le cache DNF et tester
sudo dnf clean all
sudo dnf repolist
6. Installer un paquet pour tester
sudo dnf install vim
7. Démonter l’ISO
sudo umount /mnt/rhel-iso
sudo rmdir /mnt/rhel-iso

 

16 mars 2018 /

On commence par lister tous nos domaines:

virsh list --all

ID      Nom            État
----------------------------------------------------
-      Centreon      fermé
-      generic      fermé
-      Ubuntu      fermé
-      win10      fermé

Ici nous voulons faire un snapshot du domaine « Ubuntu », nous allons donc regarder si il y a des snapshot existant pour ce domaine:

virsh snapshot-list --domain Ubuntu

Nom            Creation            Time            État
------------------------------------------------------------

On vérifie si le fichier disque est bien au format qemu/qcow2:

virsh dumpxml Ubuntu | grep -i qemu

<driver name='qemu' type='qcow2' cache='none'/>
<driver name='qemu' type='qcow2'/>

Pour un domaine éteint:

virsh snapshot-create-as --domain Ubuntu --name "Snapshot_test" --description "Snapshot de test"

Domain snapshot Snapshot_test created

Pour un domaine en fonctionnement:

virsh snapshot-create-as --domain Ubuntu --name "Snapshot_test" --description "Snapshot de test" --live

Domain snapshot Snapshot_test created

On peut maintenant voir notre snapshot:

virsh snapshot-list --domain Ubuntu

Nom Creation Time État
------------------------------------------------------------
Snapshot_test 2018-03-14 20:39:53 +0100 shutoff

Pour restaurer le snapshot:

virsh shutdown --domain Ubuntu
virsh snapshot-revert --domain Ubuntu --snapshotname Snapshot_test --running

Pour supprimer le snapshot:

virsh snapshot-delete --domain Ubuntu --snapshotname Snapshot_test

Domain snapshot Snapshot_test deleted

7 mars 2018 /

Suite à la dernière mise à jour du client bittorrent Transmission (v2.93), impossible de le démarrer. Au bout d’une minute, le service tombe KO:

Mar 7 20:24:12 XXXX systemd[1]: transmission-daemon.service: Start operation timed out. Terminating.
Mar 7 20:24:13 XXXX transmission-daemon[1200]: Closing transmission session... done.
Mar 7 20:24:13 XXXX systemd[1]: transmission-daemon.service: Unit entered failed state.
Mar 7 20:24:13 XXXX systemd[1]: transmission-daemon.service: Failed with result 'timeout'.

On peut contourner le problème et démarrer transmission de cette façon:

sudo su -
vi /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

On va modifier le type de service via le paramètre « type » :

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=transmission
Type=notification
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecReload=/bin/kill -s HUP $MAINPID


[Install]
WantedBy=multi-user.target

Qui devient:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=transmission
Type=simple
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecReload=/bin/kill -s HUP $MAINPID


[Install]
WantedBy=multi-user.target

On fait prendre en compte la modification par Systemd:

systemctl daemon-reload

On redemarre le service:

systemctl stop transmission-daemon
systemctl start transmission-daemon

Et là, ça fonctionne!

23 février 2018 /

Recherche simple:

grep ext4 /etc/fstab

awk /ext4/ /etc/fstab

Recherche en ignorant la casse:

grep -i ext4 /etc/fstab

awk /ext4/ IGNORECASE=1 /etc/fstab

Compter le nombre d’occurrence:

grep -c ext4 /etc/fstab

awk '/ext4/{x++;}END{print x}' /etc/fstab

Liste des fichiers contenant le mot recherché:

grep -l ext4 *

awk '/ext4/{print FILENAME;nextfile}' *

Afficher le numéro des lignes contenant le mot recherché:

grep -n ext4 /etc/fstab

awk '/ext4/{print NR":"$0}' /etc/fstab

Recherche de plusieurs occurrences:

grep -E 'ext4|swap' /etc/fstab

awk '/ext4|swap/' /etc/fstab

Afficher les lignes qui ne contiennent pas le mot recherché:

grep -v ext4 /etc/fstab

awk '!/ext4/' /etc/fstab

Pour afficher les lignes contenant le mot rechercher ainsi que la ligne suivante:

grep -A1 ext4 /etc/fstab

awk '/ext4/{print;getline;print}' /etc/fstab

Pour afficher les lignes contenant le mot rechercher ainsi que la ligne précédente:

grep -B1 ext4 /etc/fstab

awk '/ext4/{print x;print;next}{x=$0;}' /etc/fstab

Pour afficher les lignes contenant le mot rechercher ainsi que la ligne précédente et la ligne suivante:

grep -C1 ext4 /etc/fstab

awk '/ext4/{print x;print;getline;print;next}{x=$0;}' /etc/fstab