====== Création d'une machine virtuelle « bling » ======
===== Configuration virt-manager =====
Dans un premier temps, se connecter avec virt-manager à l'aide de commande :
virt-manager --connect 'qemu+ssh://root@korat.chapril.org/system?keyfile=~/.ssh/chapril.pub'
Il est également possible d'indiquer les détails de la connexion via ''Fichier'', ''Ajout d'une connexion'' :
{{:admin:procedures:2018-05-05-122210_385x343_scrot.png?400|}}
Il est possible de modifier les URIs précédemment saisies à l'aide de la commande ''dconf-editor'' :
dconf-editor /org/virt-manager/virt-manager/connections/uris
===== Clonage du modèle =====
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}}
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:cloner_disque-screenshot_2024-12-08.png?direct&300 | Cloner le disque }}
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-'' (par exemple: ''/dev/vg_vms/vm-bd'').
{{ :admin:procedures:renommer_disque_vm_screenshot_2024-12-08.png?direct&300 | Renommer le disque de la VM }}
Puis validez en cliquant sur ''Cloner''.
{{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_54_53.png?direct&300 | Barre de progression}}
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 :
PYTHONPATH=/usr/share/virt-manager python3 -c 'import virtinst; print(virtinst.devices.interface._random_mac(virtinst.VirtinstConnection("qemu:///system")))'
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) :
=(^-^)=root@korat:~# virt-sysprep -d bd --hostname bd \
--operations defaults,-lvm-uuids \
--run-command 'dpkg-reconfigure openssh-server'
Sur l'hyperviseur, il faut enfin commiter les fichiers de configuration de la nouvelle VM :
- ''/etc/libvirt/qemu/.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.
===== Configuration réseau =====
Un fois le modèle cloné et démarré, il faut trouver une adresse IP libre pour l'hote :
# virsh net-dhcp-leases default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
2017-07-12 15:39:38 52:54:00:02:e2:7a ipv4 192.168.1.53/24 dns -
2017-07-12 15:47:22 52:54:00:34:ec:e8 ipv4 192.168.1.30/24 sympa -
2017-07-12 15:49:10 52:54:00:d6:6b:0a ipv4 192.168.1.57/24 mail -
2017-07-12 15:50:11 52:54:00:ef:42:42 ipv4 192.168.1.42/24 modele -
Récupérer son adresse MAC :
grep -i mac /etc/libvirt/qemu/bling.xml
Pour le moment cette machine s'appelle toujours « modele ». Son IP est donc 192.168.1.42.
**Sur les deux** hotes, nous allons attribuer définitivement le bail IP à cette nouvelle machine. Cette manipulation est donc à faire sur les deux hôtes (maine et coon) :
# virsh net-update default add ip-dhcp-host "" --live --config
Par ailleurs, pour le moment la définition DNS est manuelle. Il faut donc créer l'entrée nécessaire sur la machine dns:
bling.cluster A 192.168.1.42
Penser à augmenter le serial dans le fichier chapril.org-int
On reload ensuite la zone interne :
# rndc reload chapril.org in internal
Pour plus de commodité, renommer l'interface TAP de la vm :
virsh edit bling
# Chercher le bloc
# Ajouter dans le bloc la ligne suivante, puis enregistrer et quitter :
===== Derniers détails =====
==== Nom de la machine ====
On peut se ''ssh''-er sur la machine :
ssh bling
On défini son nom :
hostnamectl set-hostname bling.cluster.chapril.org
On ajoute à /etc/hosts:
127.0.0.1 bling.cluster.chapril.org bling
==== Configuration Postfix ====
Si Postfix n'est pas installé alors faire un upgrade puis l'installer : [[admin:procedures:installation_postfix_satellite]]
Vérifier à corriger les champs utilisant la valeur //modele// :
[…]
myhostname = bling.cluster.chapril.org
mydestination = $myhostname,bling.cluster.chapril.org, localhost.chapril.org, localhost
[…]
==== Mot de passe root ====
On pense à changer le mot de passe root et à le noter dans le [[admin:procedures:configuration_password_store|pass]]. Si vous manquez d'inspiration, la commande ''pwgen 20'' est vote amie.
passwd
Ne pas oublier d'ajouter le mot de passe dans le //pass// des admins.
==== Accès non admin ====
Si vous souhaitez donner l'accès root à quelqu'un qui n'est pas admin du cluster, il faut ajouter la clef dans ''/etc/ssh/authorized_keys.local''.
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 ====
Une fois l'installation de la VM terminé, on peut suivre la procédure pour lui ajouter un accès IPv6 en entrée/sortie : [[admin:procedures:ajouter-ipv6|Ajouter IPv6 à une VM]].
===== Principes d'un travail terminé =====
Enfin, pour que votre travail soit **[[admin:travail_termine|considéré terminé]]** il faut :
* [[admin:machines_virtuelles:|ajouter la machine à la doc]] ;
* configurer [[admin:procedures:ajouter-ipv6|ipv6]] ;
* le [[admin:procedures:configuration-firewall-guest|firewall]] ;
* l'envoi d'[[admin:procedures:installation_postfix_satellite|emails]] ;
* le [[admin:monitoring:add-host|monitoring]] ;
* et les [[admin:procedures:sauvegarder_machines|backups]] ;
* ajouter la machine dans le script d'administration pour faciliter la maintenance du parc (''_scripts/machines'' dans [[sysadm:git_admin_sys|le dépot ''packages-src'']]).