Outils pour utilisateurs

Outils du site


admin:procedures:creation_machine_virtuelle

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:procedures:creation_machine_virtuelle [2024/12/08 14:47] – [Configuration virt-manager] pilouadmin:procedures:creation_machine_virtuelle [2024/12/23 02:18] (Version actuelle) – correction du niveau des titres pilou
Ligne 5: Ligne 5:
  
 <code bash> <code bash>
-virt-manager --connect 'qemu+ssh://root@korat.chapril.org/system'+virt-manager --connect 'qemu+ssh://root@korat.chapril.org/system?keyfile=~/.ssh/chapril.pub'
 </code> </code>
  
Ligne 11: Ligne 11:
 {{:admin:procedures:2018-05-05-122210_385x343_scrot.png?400|}} {{:admin:procedures:2018-05-05-122210_385x343_scrot.png?400|}}
  
 +<note tip>
 +Il est possible de modifier les URIs précédemment saisies à l'aide de la commande ''dconf-editor'' :
 +<code>
 +dconf-editor /org/virt-manager/virt-manager/connections/uris
 +</code>
 +</note>
 ===== Clonage du modèle ===== ===== Clonage du modèle =====
  
-Cloner la machine « modele » via un clic droit.+Cloner la machine « template-debianXX » via un clic droit.
  
 {{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_53_45.png?direct&300 |Interface virt-manager}} {{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_53_45.png?direct&300 |Interface virt-manager}}
  
-Une fenêtre s'ouvre, changez le nom de la machine et générer une nouvelle MAC en cliquant sur le  bouton « détails » de la ligne « réseau ».+Une fenêtre s'ouvre 
 +  - Changez le nom de la machine
 +  - Dans la section ''Storage'', vérifier que la case est cochée (colonne ''Cloner'', seconde ligne) est cochée afin que le disque de la VM source soit cloné/copié:
  
-{{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_54_30.png?direct&300 | Interface de clonage}}+{{ :admin:procedures:cloner_disque-screenshot_2024-12-08.png?direct&300 | Cloner le disque }}
  
-<note important>Assurez vous de générer une nouvelle MACsinon vous risquez de casser le réseau du cluster !</note>+Toujours dans la section ''Storage''après avoir sélectionné la ligne ''Cloner ce disque'', cliquer sur le bouton ''Détails'' afin de modifier le chemin du disque de la nouvelle VM. Remplacer ''/dev/vg_vms/vm-source-clone'' par ''/dev/vg_vms/vm-<nom du service>'' (par exemple: ''/dev/vg_vms/vm-bd'').
  
-{{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_54_35.png?direct&300 | Nouvelle MAC}}+{{ :admin:procedures:renommer_disque_vm_screenshot_2024-12-08.png?direct&300 | Renommer le disque de la VM }}
  
-Puis validez.+Puis validez en cliquant sur ''Cloner''.
  
 {{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_54_53.png?direct&300 | Barre de progression}} {{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_54_53.png?direct&300 | Barre de progression}}
  
-Ce modèle possède de base les clés des adminsys, une conf réseau ipv4 fonctionnelle, les dépôts chapril, quelques dépendances et fichiers de conf sympathiques (sexy-chapril et depends-chapril) et un postfix satellite configuré.+<note important> 
 +Les deux adresses MAC de la nouvelle VM sont automatiquement modifiées lors de l'opération de clonage. Cependant, lorsque deux VMs lancées présentent des adresses MAC identiques, la configuration réseau de l'hyperviseur devient incorrecte/cassée/dysfonctionnelle : vérifier que les deux adresses MAC de la nouvelle VM sont bien différentes de celles de la machine source. Lorsque le paquet Debian ''virtinst'' est installé, il est possible de générer une adresse MAC à l'aide de la commande : 
 +<code bash> 
 +PYTHONPATH=/usr/share/virt-manager python3 -c 'import virtinst; print(virtinst.devices.interface._random_mac(virtinst.VirtinstConnection("qemu:///system")))' 
 +</code> 
 +</note> 
 + 
 +Il faut ensuite utiliser la commande ''virt-sysprep'' (paquet Debian ''guestfs-tools'') sur l'hyperviseur pour supprimer les fichiers de configuration liés à la VM source (clef SSH de la machine, machine ID, nom de la VM, fichiers de logs) : 
 +<code> 
 +=(^-^)=root@korat:~# virt-sysprep -d bd --hostname bd \ 
 +                     --operations defaults,-lvm-uuids \ 
 +                     --run-command 'dpkg-reconfigure openssh-server' 
 +</code> 
 + 
 +Sur l'hyperviseur, il faut enfin commiter les fichiers de configuration de la nouvelle VM : 
 + 
 +  - ''/etc/libvirt/qemu/<nom service>.xml'' 
 +  - ''/etc/lvm/backup/vg_vms'' 
 + 
 +La machine peut alors être démarrée. 
 + 
 +Ce modèle possède de base les clés des adminsys, une conf réseau ipv4 fonctionnelle, les dépôts chapril, quelques dépendances et fichiers de conf sympathiques (''sexy-chapril'' et ''depends-chapril'') et un postfix satellite configuré.
  
 Vous pouvez le démarrer depuis le virt-manager. Vous pouvez le démarrer depuis le virt-manager.
 ===== Configuration réseau ===== ===== Configuration réseau =====
 +
 +Pour plus de commodité, renommer les interfaces TAP de la VM en exécutant la commande ''virsh edit bling'' sur l'hyperviseur hébergeant la VM:
 +<code>
 +# Chercher le bloc <interface type='network'>
 +# Ajouter dans le bloc la ligne suivante, puis enregistrer et quitter :
 +<target dev='vm-bling'/>
 +
 +# Chercher le bloc <interface type='ethernet'>
 +# Ajouter dans le bloc la ligne suivante, puis enregistrer et quitter :
 +<target dev='vm-bling-ipv6'/>
 +</code>
 +
 +==== IPv4 ====
  
 Un fois le modèle cloné et démarré, il faut trouver une adresse IP libre pour l'hote : Un fois le modèle cloné et démarré, il faut trouver une adresse IP libre pour l'hote :
Ligne 65: Ligne 107:
   # rndc reload chapril.org in internal   # rndc reload chapril.org in internal
  
-Pour plus de commodité, renommer l'interface TAP de la vm : +==== IPv6 ====
-<code> +
-virsh edit bling +
-# Chercher le bloc <interface type='network'> +
-# Ajouter dans le bloc la ligne suivante, puis enregistrer et quitter : +
-<target dev='vm-bling'/>+
  
 +=== Sur les deux hyperviseurs ===
 +
 +  * dans ''/etc/firehol/firehol.conf'', ajouter l'interface ''vm-bling-ipv6'' au contenu de la variable ''vmIp6Ifaces'' puis redémarrer le service ''firehol''
 +  * mettre à jour ''/etc/libvirt/hooks/qemu'' avec un bloc :
 +<code>
 +"bd")
 +        case "$action" in
 +                "started")
 +                        [[ $step = "begin" ]] || { echo step must be begin; exit 0; }
 +        # La route dépend de l'adresse MAC de l'interface dédiée à l'IPv6 :
 +        # address="$(virsh dumpxml bling |grep -A 1 ethernet | grep -oP "([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}")"; echo "fe80::5054:ff:fe${address:0:2}:${address:2:4}"
 +        /sbin/ip route add 2a01:4f8:222:6a1::42/128 via fe80::5054:ff:fec3:d645 dev vm-bling-ipv6
 +        /sbin/ip route add 2a01:4f8:222:664::42/128 via fe80::5054:ff:fec3:d645 dev vm-bling-ipv6
 +                ;;
 +                "stopped")
 +                        [[ $step = "end" ]] || { echo step must be end; exit 0; }
 +        /sbin/ip route del 2a01:4f8:222:6a1::42/128 via fe80::5054:ff:fec3:d645 dev vm-bling-ipv6
 +        /sbin/ip route del 2a01:4f8:222:664::42/128 via fe80::5054:ff:fec3:d645 dev vm-bling-ipv6
 +                ;;
 +                *)
 +                        echo action $action not supported
 +                        exit 0
 +                ;;
 +        esac
 +   ;;
 </code> </code>
  
 +=== Sur la VM ===
 +Sur la VM, modifier le fichier ''/etc/network/interfaces'':
 +<code>
 +# The primary network interface
 +allow-hotplug ens3
 +iface ens3 inet dhcp
 +
 +post-up ip route replace default via 192.168.1.254
 +
 +# The ipv6 network interface
 +
 +allow-hotplug ens8
 +iface ens8 inet6 static
 +    address 2a01:4f8:222:664::42/128
 +    # gateway: address="$(ip -j link show dev ens8 | jq -r '.[] | .address[9:] | gsub(":";"")')"; echo "fe80::fc54:ff:fe${address:0:2}:${address:2:4}"
 +    gateway fe80::fc54:ff:fec3:d645
 +    post-up ip -6 address add 2a01:4f8:222:6a1::42/128 dev ens8
 +</code>
 ===== Derniers détails ===== ===== Derniers détails =====
  
Ligne 86: Ligne 166:
 On ajoute à /etc/hosts: On ajoute à /etc/hosts:
 <code conf /etc/hosts> <code conf /etc/hosts>
-127.0.0.1 bling.cluster.chapril.org bling+127.0.1.1 bling.cluster.chapril.org bling
 </code> </code>
  
Ligne 113: Ligne 193:
 Pensez aussi à lui donner un accès ''april'' sur le bastion. Pensez aussi à lui donner un accès ''april'' sur le bastion.
  
-==== Haute disponibilité ==== 
- 
-L'image Qcow qui abrite les données disques de la machine est automatiquement répliquée d'un hote vers l'autre via DRBD. Vous n'avez rien à faire pour cela. 
- 
-Néanmoins, la (meta)description de la machine virtuelle elle même n'est pas dupliquée. 
- 
-Pour faciliter la reprise sur erreur le jour où un des hotes tombera, on duplique cette description d'un hote à l'autre. 
- 
-=== Si votre VM est hébergée sur coon === 
- 
-  root@coon:~# scp /etc/libvirt/qemu/bling.xml maine:/etc/libvirt/qemu/ 
-  root@coon:~# ssh maine virsh define /etc/libvirt/qemu/bling.xml 
- 
-=== Si votre VM est hébergée sur maine === 
- 
-  root@maine:~# scp /etc/libvirt/qemu/bling.xml coon:/etc/libvirt/qemu/ 
-  root@maine:~# ssh coon virsh define /etc/libvirt/qemu/bling.xml 
  
 ==== IPv6 ==== ==== IPv6 ====
admin/procedures/creation_machine_virtuelle.1733669223.txt.gz · Dernière modification : 2024/12/08 14:47 de pilou