Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sysadmin:tips:libvirt [2015/07/15 17:30] james [Changer l'emplacement des images disques et images ISO] ajout storage pool NFS |
sysadmin:tips:libvirt [2021/04/07 17:00] (Version actuelle) james [Utiliser les commandes virsh en tant qu'utilisateur] |
||
---|---|---|---|
Ligne 34: | Ligne 34: | ||
</target> | </target> | ||
</pool></code> | </pool></code> | ||
- | * Définir le storage-pool associé : <code># virsh pool-define /tmp/pool.xml</code> | + | * Définir le storage-pool associé : <code># virsh pool-define /tmp/iso.xml</code> |
* Démarrer le pool : <code># virsh pool-start isos</code> | * Démarrer le pool : <code># virsh pool-start isos</code> | ||
* Et lui dire de le redémarrer automatiquement : <code># virsh pool-autostart isos</code> | * Et lui dire de le redémarrer automatiquement : <code># virsh pool-autostart isos</code> | ||
Ligne 98: | Ligne 98: | ||
Il est possible de demander au dnsmasq utilisé par libvirtd d'assigner toujours la même adresse IP a une VM donnée. | Il est possible de demander au dnsmasq utilisé par libvirtd d'assigner toujours la même adresse IP a une VM donnée. | ||
+ | ==== Utilisation dynamique ==== | ||
+ | Dans son infinie bonté la commande virsh net-update a été crée la sous commande **net-update** qui s'utilise comme dans l'exemple suivant, en remplacant l'adresse MAC, le nom et l'ip selon vos besoins : | ||
+ | <code># virsh net-update default add ip-dhcp-host \ | ||
+ | "<host mac='52:54:00:83:a2:cf' \ | ||
+ | name='debianlive' ip='192.168.122.10' />" \ | ||
+ | --live --config</code> | ||
+ | |||
+ | <note>En plus de la sous commande **add**, virsh net-update peu également prendre les sous commandes **delete**, **modify** (certains items uniquement), **add-first** et **add-last** | ||
+ | Cette commande net-update peut s'utiliser avec les items suivants : | ||
+ | <code>ip-dhcp-host | ||
+ | ip-dhcp-range (add/delete uniquement, pas de modify) | ||
+ | forward-interface (add/delete uniquement) | ||
+ | portgroup | ||
+ | dns-host | ||
+ | dns-txt | ||
+ | dns-srv</code> | ||
+ | </note> | ||
+ | |||
+ | ==== Ancienne méthode nécessitant de redémarrer le réseau ==== | ||
+ | <note important>Attention cette méthode nécessite de redémarrer le réseau géré par libvirt et donc **couper le réseau de toutes les VMs**. Il faudra donc éteindre puis rallumer toutes les VMs pour leur procurer à nouveau du réseau</note> | ||
Pour ce faire, il faut éditer le réseau utilisé (dans mon cas "default") : | Pour ce faire, il faut éditer le réseau utilisé (dans mon cas "default") : | ||
* <code># virsh net-edit default</code> | * <code># virsh net-edit default</code> | ||
Ligne 104: | Ligne 124: | ||
<note>Magie, en activant ceci, vous venez aussi d'activer le fonctionnement du DNS : n'importe quelle VM pourra maintenant résoudre le nom "debianlive"</note> | <note>Magie, en activant ceci, vous venez aussi d'activer le fonctionnement du DNS : n'importe quelle VM pourra maintenant résoudre le nom "debianlive"</note> | ||
- | Vous croyez avoir fini ? que nenni : il faut ensuite redémarrer le réseau (et donc couper le réseau de toutes les VMs :'( ) de libvirt en utilisant les commandes suivantes :<code> | + | Vous croyez avoir fini ? que nenni : il faut ensuite redémarrer le réseau (et donc couper le réseau de toutes les VMs :-( ) de libvirt en utilisant les commandes suivantes :<code> |
# virsh net-destroy default | # virsh net-destroy default | ||
# virsh net-start default | # virsh net-start default | ||
Ligne 135: | Ligne 155: | ||
# virsh qemu-monitor-command --hmp ma-machine-virtuelle 'info block'</code> | # virsh qemu-monitor-command --hmp ma-machine-virtuelle 'info block'</code> | ||
+ | ===== Utiliser les commandes virsh en tant qu'utilisateur ===== | ||
+ | Vous avez tout bien fait comme il faut en ajoutant vos utilisateurs au groupe libvirt en pensant qu'ils auront le droit de voir/lancer les VMs et vous avez eu raison | ||
+ | Cependant à cause d'une conf douteuse, par defaut la conf utilisateur n'est pas la meme que la conf root/systeme par défaut | ||
+ | |||
+ | du coup si le 'virsh list' ne vous renvoie rien lorsque vous le lancez en tant qu'utilisateur simple c'est malheureusement normal. | ||
+ | |||
+ | |||
+ | En root le défaut est "qemu:%%///%%system" alors que le défaut concernant un utilisateur est "qemu:%%///%%session" ( https://listman.redhat.com/archives/libvirt-users/2015-December/msg00005.html ) , sauf que bien sur chaque utilisateur dispose de sa propre session donc un utilisateur ne peut voir/interagir que sur ses propres VMs ... pratique n'est il pas ? ;p | ||
+ | |||
+ | Tout va bien puisque vous êtes ici, deja on va commencer par tester si la commande suivante renvoie bien ce que vous attendez : la liste des VMs completes :<code> | ||
+ | $ virsh --connect qemu:///system list</code> | ||
+ | |||
+ | Et si ca marche juste en lancant la commande suivante on va lui dire d'utiliser cette valeur tout le temps pour cet utilisateur (malheureusement à exécuter pour chaque utilisateur) :<code> | ||
+ | $ echo 'uri_default = "qemu:///system"' >> ~/.config/libvirt/libvirt.conf</code> | ||
+ | Et voila a vous les joies du simple **virsh list** qui marche enfin comme vous l'attendiez |