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 [2017/06/04 18:30] vincentxavieradmin:procedures:creation_machine_virtuelle [2026/03/03 15:51] (Version actuelle) – Correction typographique fhenry2
Ligne 1: Ligne 1:
-Pour créer la machine virtuelle, se connecter au virt-manager et cloner "modele".+====== Création d'une machine virtuelle « bling » ======
  
-Pour trouver l'adresse IP +===== Configuration virt-manager =====
-  # virsh net-dhcp-leases default+
  
-Cette manipulation est à faire sur les deux hôtes (maine et coon). +Dans un premier temps, se connecter avec ''virt-manager'' à l'aide de la commande : 
-  # virsh net-update default add ip-dhcp-host  "<host mac='52:54:00:00:00:01'  name='bob' ip='192.168.122.45' />" --live --config+<code bash> 
 +virt-manager --connect 'qemu+ssh://root@korat.chapril.org/system?keyfile=~/.ssh/chapril.pub' 
 +</code>
  
-Pour le moment la définition DNS est manuelle. Créer l'entrée nécessaire sur la machine dns:/etc/bind/zones/masters/vm.include : +Il est également possible d'indiquer les détails de la connexion via //Fichier////Ajout d'une connexion// : 
-  =(^-^)=root@dns:~# vi /etc/bind/zones/masters/vm.include  +{{:admin:procedures:2018-05-05-122210_385x343_scrot.png?400|Fenêtre d’ajout de connexion}}
-  =(^-^)=root@dns:~# rndc reload chapril.org in internal+
  
-Modifications à faire :+<note tip> 
 +Il est possible de modifier les URI précédemment saisies à l'aide de la commande ''dconf-editor'' : 
 +<code bash> 
 +dconf-editor /org/virt-manager/virt-manager/connections/uris 
 +</code> 
 +</note>
  
-  hostnamectl set-hostname bob.cluster.chapril.org+===== Clonage du modèle =====
  
-  vim /etc/hosts+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}}
  
-Retirer user april +Une fenêtre s'ouvre 
-  deluser april +  - Changer le nom de la machine ; 
-  rm -r /home/april+  - Dans la section ''Storage'', vérifier que la case est cochée (colonne ''Cloner'', seconde ligne) afin que le disque de la VM source soit cloné ou copié.
  
-Penser à changer mdp root +{{ :admin:procedures:cloner_disque-screenshot_2024-12-08.png?direct&300 | Cloner le disque }} 
-  passwd + 
-   +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. 
-Ajouter le dépôt chapril et installer les paquets spéciaux de l'April +Si le service se nomme ''SERVICE'' alors remplacer ''/dev/vg_vms/vm-source-clone'' par ''/dev/vg_vms/vm-SERVICE''
-  echo "deb http://apt.chapril.org/debian stretch main" > /etc/apt/sources.list.d/chapril.list + 
-  apt update +{{ :admin:procedures:renommer_disque_vm_screenshot_2024-12-08.png?direct&300 | Renommer le disque de la VM }} 
-  apt install depends-chapril backup-chapril sexy-chapril + 
-   +Puis validez en cliquant sur ''Cloner''
-Si vous n'êtes pas un admin de la machine, il faut ajouter votre clef dans ''/etc/ssh/authorized_keys.local''+ 
 +{{ :admin:procedures:capture_d_ecran_de_2017-07-12_15_54_53.png?direct&300 | Barre de progression}} 
 + 
 +<note important> 
 +Les deux adresses MAC de la nouvelle VM sont automatiquement modifiées lors de l'opération de clonage. 
 +Cependant, lorsque deux VM lancées présentent des adresses MAC identiques, la configuration réseau de l'hyperviseur devient incorrecte, cassée ou dysfonctionnelle. 
 +Vérifier alors 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 d’une 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 ((Ces fichiers sont la clef SSH de la machine, le //machine ID//, le nom de la VM et les fichiers de //logs//.)). 
 + 
 +Si le service est ''bd''
 +<code bash> 
 +virt-sysprep -d bd --hostname bd \ 
 +                   --operations defaults,-lvm-uuids \ 
 +                   --run-command 'dpkg-reconfigure openssh-server' 
 +</code> 
 + 
 +Sur l'hyperviseur, il faut enfin réviser les fichiers de configuration de la nouvelle VM. 
 +Pour un service nommé ''SERVICE'' : 
 +  - ''/etc/libvirt/qemu/SERVICE.xml'' 
 +  - ''/etc/lvm/backup/vg_vms'' 
 + 
 +La machine peut alors être démarrée. 
 + 
 +Ce modèle possède de base : 
 +  * Les clefs des adminsys ; 
 +  * Une configuration réseau IPv4 fonctionnelle ; 
 +  * Les dépôts Chapril ; 
 +  * Quelques dépendances et fichiers de configuration sympathiques tels que ''sexy-chapril'' et ''depends-chapril''
 +  * Un //postfix satellite// configuré. 
 + 
 +Vous pouvez le démarrer depuis ''virt-manager''
 + 
 +===== 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'hôte : 
 +<code bash> 
 +virsh net-dhcp-leases default 
 +</code> 
 +<code> 
 + 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          - 
 +</code> 
 + 
 +Récupérer son adresse MAC : 
 +<code bash> 
 +grep -i mac /etc/libvirt/qemu/bling.xml 
 +</code> 
 + 
 +Pour le moment cette machine s'appelle toujours ''modele''
 +Son adresse IP est donc ''192.168.1.42''
 + 
 +**Sur les deux** hôtes, nous allons attribuer définitivement le bail IP à cette nouvelle machine. 
 +Cette manipulation est donc à faire sur les deux hôtes (Maine et Coon) : 
 +<code bash> 
 +virsh net-update default add ip-dhcp-host "<host mac='52:54:00:ef:42:42' name='bling' ip='192.168.1.42' />" --live --config 
 +</code> 
 + 
 +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''
 +<code - /etc/bind/zones/masters/vm.include> 
 +bling.cluster         192.168.1.42 
 +</code> 
 + 
 +<note important> 
 +Penser à augmenter le //serial// dans le fichier ''chapril.org-int'' 
 +</note> 
 + 
 +On recharge ensuite la zone interne : 
 +<code bash> 
 +rndc reload chapril.org in internal 
 +</code> 
 + 
 +==== IPv6 ==== 
 + 
 +=== 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''
 + 
 +Si le service est ''bd'' mettre à jour ''/etc/libvirt/hooks/qemu'' avec un bloc : 
 +<code bash> 
 +"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> 
 + 
 +=== 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 ===== 
 + 
 +==== Nom de la machine ==== 
 + 
 +On peut se connecter à la machine ''bling'' via le SSH : 
 +<code bash> 
 +ssh bling 
 +</code> 
 + 
 +On définit son nom : 
 +<code bash> 
 +hostnamectl set-hostname bling.cluster.chapril.org 
 +</code> 
 + 
 +On ajoute une ligne à ''/etc/hosts''
 +<code /etc/hosts> 
 +127.0.1.1 bling.cluster.chapril.org bling 
 +</code> 
 + 
 +==== Configuration Postfix ==== 
 + 
 +Si Postfix n'est pas installé alors mettre à niveau puis [[admin:procedures:installation_postfix_satellite|installer le satellite Postfix]]. 
 + 
 +Vérifier à corriger les champs utilisant la valeur ''modele''
 +<code - /etc/postfix/main.cf> 
 +[…] 
 +myhostname = bling.cluster.chapril.org 
 +mydestination = $myhostname,bling.cluster.chapril.org, localhost.chapril.org, localhost 
 +[…] 
 +</code> 
 + 
 +==== Mot de passe root ==== 
 + 
 +On pense à changer le mot de passe de l’utilisteur ''root'' et à le noter dans le //[[admin:procedures:configuration_password_store|pass]]//
 +Si vous manquez d'inspiration, la commande ''pwgen 20'' est votre amie. 
 +<code bash> 
 +passwd 
 +</code> 
 + 
 +<note important> 
 +Ne pas oublier d'ajouter le mot de passe dans le //pass// des admins. 
 +</note> 
 + 
 +==== 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. 
 + 
 +==== IPv6 ==== 
 + 
 +Une fois l'installation de la VM terminée, on peut suivre la procédure pour lui ajouter un accès IPv6 en entrée/sortie comme décrit dans la page //[[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 documentation]] ; 
 +  * Configurer [[admin:procedures:ajouter-ipv6|l’IPv6]] ; 
 +  * Le [[admin:procedures:configuration-firewall-guest|pare-feu]] ; 
 +  * L'envoi de [[admin:procedures:installation_postfix_satellite|courriels]] ; 
 +  * L’[[admin:monitoring:add-host|hypervision]] ; 
 +  * Les [[admin:procedures:sauvegarder_machines|sauvegardes]] ; 
 +  * Ajouter la machine dans le script d'administration pour faciliter la maintenance du parc ((Les fichiers ''_scripts/machines'' dans [[sysadm:git_admin_sys|le dépôt ''packages-src'']].)).
admin/procedures/creation_machine_virtuelle.1496601050.txt.gz · Dernière modification : 2017/06/04 18:30 de vincentxavier