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/07/11 17:26] fpoulainadmin:procedures:creation_machine_virtuelle [2024/12/23 02:18] (Version actuelle) – correction du niveau des titres pilou
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+Dans un premier temps, se connecter avec virt-manager à l'aide de commande :
  
-Cette manipulation est à faire sur les deux hôtes (maine et coon). +<code bash> 
-  # 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+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|}}
-  =(^-^)=root@dns:~# rndc reload chapril.org in internal+
  
-Modifications à faire :+<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 =====
  
-  hostnamectl set-hostname bob.cluster.chapril.org+Cloner la machine « template-debianXX » via un clic droit.
  
-  vim /etc/hosts+{{ :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é:
  
-Retirer user april : +{{ :admin:procedures:cloner_disque-screenshot_2024-12-08.png?direct&300 | Cloner le disque }}
-  deluser april +
-  rm -r /home/april+
  
-Penser à changer mdp root +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'').
-  passwd+
  
-Penser à ajouter la route par défaut à la conf réseau :+{{ :admin:procedures:renommer_disque_vm_screenshot_2024-12-08.png?direct&300 | Renommer le disque de la VM }}
  
-<code conf /etc/network/interfaces>+Puis validez en cliquant sur ''Cloner''
 + 
 +{{ :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 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. 
 +===== 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 : 
 +<code> 
 +# 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          - 
 +</code> 
 + 
 +Récupérer son adresse MAC : 
 +<code> 
 +grep -i mac /etc/libvirt/qemu/bling.xml 
 +</code> 
 + 
 +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  "<host mac='52:54:00:ef:42:42'  name='bling' ip='192.168.1.42' />" --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: 
 +<code conf /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 reload ensuite la zone interne : 
 +  # rndc reload chapril.org in internal 
 + 
 +==== 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'' 
 +  * 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> 
 + 
 +=== Sur la VM === 
 +Sur la VM, modifier le fichier ''/etc/network/interfaces'': 
 +<code>
 # The primary network interface # The primary network interface
 allow-hotplug ens3 allow-hotplug ens3
 iface ens3 inet dhcp iface ens3 inet dhcp
 +
 post-up ip route replace default via 192.168.1.254 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> </code>
 +===== 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:
 +<code conf /etc/hosts>
 +127.0.1.1 bling.cluster.chapril.org bling
 +</code>
 +
 +==== 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// :
 +<code conf /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 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
 +
 +<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é, 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]].
  
-Ajouter le dépôt chapril et installer les paquets spéciaux de chapril +===== Principes d'un travail terminé =====
-  echo "deb http://apt.chapril.org/debian stretch main" > /etc/apt/sources.list.d/chapril.list +
-  wget -O - https://apt.chapril.org/apt.chapril.org.gpg.key | apt-key add && apt install apt-transport-https +
-  apt update +
-  apt install depends-chapril sexy-chapril +
-   +
-Si vous n'êtes pas un admin du cluster, il faut ajouter votre clef dans ''/etc/ssh/authorized_keys.local''+
  
-Enfin, pour que votre travail soit considéré terminé il faut configurer [[admin:procedures:installation_postfix_satellite|mail]]le [[admin:procedures:configuration-firewall-guest|firewall]], le [[admin:procedures:ajout-d-une-machine|monitoring]] et les [[admin:procedures:sauvegarder_machines|backups]].+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'']]).
admin/procedures/creation_machine_virtuelle.1499794000.txt.gz · Dernière modification : 2017/07/11 17:26 de fpoulain