projets:vm
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
projets:vm [2018/03/07 14:20] – [Installer et configurer sa VM] ajoût d'une astuce cequejevois | projets:vm [2022/11/06 01:50] (Version actuelle) – supprimée jca | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ======Machines virtuelles====== | ||
- | =====Présentation générale===== | ||
- | |||
- | Notre infrastructure de VM est basée sur **[[http:// | ||
- | |||
- | **Le cluster Ganeti est composé de noeuds** (ce sont des ordinateurs physiques avec un hyperviseur (Xen ou Kvm) installé dessus). | ||
- | Les VM sont créées sur le cluster. | ||
- | Une VM tourne sur un des noeuds du cluster. | ||
- | |||
- | Il est possible de déplacer une VM d'un noeud du cluster à un autre tout en la laissant tourner. | ||
- | |||
- | Dans un cluster, un noeud est élu Master. Lorsque l'on doit discuter avec le cluster, il faut se connecter à la machine maître, pour le moment il s'agit de Mutine. | ||
- | Ce master est l' | ||
- | Si on utilise ces commandes sur les autres noeuds, Ganeti nous invite à nous connecter sur le master :) | ||
- | |||
- | |||
- | |||
- | |||
- | ____ | ||
- | | ||
- | | ||
- | vm | |< | ||
- | | ||
- | ____ / | | ||
- | | ||
- | | ||
- | vm | |< | ||
- | | ||
- | ____ | | ||
- | | ||
- | | ||
- | vm | | / | ||
- | | ||
- | ____ / | ||
- | | ||
- | | ||
- | vm | |< | ||
- | | ||
- | |||
- | |||
- | |||
- | =====FAQ===== | ||
- | |||
- | ==== Puis-je avoir plus de RAM sur ma VM ? ==== | ||
- | |||
- | Techniquement oui. En pratique, les machines physiques actuelles sont | ||
- | déjà presque remplies. Pour avoir plus de RAM, venez nous aider à | ||
- | monter la nouvelle infrastructure de virtualisation :-) | ||
- | |||
- | ==== Puis-je avoir plus d' | ||
- | |||
- | Oui. Il est également possible d' | ||
- | fois que celle-ci est installée. | ||
- | |||
- | ==== Puis-je avoir plus de puissance CPU ? ==== | ||
- | |||
- | Techniquement oui. En pratique, les machines physiques actuelles sont | ||
- | déjà presque remplies. Pour avoir plus de CPU, venez nous aider à | ||
- | monter la nouvelle infrastructure de virtualisation :-) | ||
- | |||
- | ==== Puis-je chiffrer ma VM ? ==== | ||
- | |||
- | À la création, votre VM démarrera sur l'iso de votre choix (par défaut | ||
- | sur une debian stretch). C'est vous qui réalisez l' | ||
- | début à la fin. Vous décidez donc de chiffrer ou non votre VM. | ||
- | |||
- | ==== Puis-je installer < | ||
- | |||
- | Oui. Votre VM démarrera sur l'iso de votre choix (par défaut sur une | ||
- | debian stretch). | ||
- | |||
- | Dans le cas où vous souhaiteriez installer une autre ISO que celle par défaut, c’est à vous de spécifier, et idéalement de fournir, à l’administrateur l’ISO choisie pendant la phase de demande de création de VM (voir ci-dessous). | ||
- | |||
- | Voici les ISO présentes actuellement : | ||
- | |||
- | $ ls / | ||
- | debian-8.3.0-amd64-netinst.iso # debian jessie | ||
- | debian-9.0.0-amd64-netinst.iso # debian stretch | ||
- | install60.iso | ||
- | yunohost-live_wheezy.iso | ||
- | ====== Procédure de création de VM ====== | ||
- | |||
- | ===== Procédure pour l' | ||
- | |||
- | Les étapes qui suivent sont à réaliser par l' | ||
- | |||
- | ==== Demander la création de sa VM ==== | ||
- | |||
- | Vous commencez par envoyer une demande de création de VM sur bureau@ en joignant une clé SSH publique (cf [[projets: | ||
- | |||
- | Si vous êtes bien adhérent le bureau@ transmettra votre demande aux administrateurs de FAImaison. Un administrateur vous communiquera les informations suivantes : | ||
- | |||
- | |||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | Une fois ces informations reçues, vous êtes prêt à installer votre VM. | ||
- | |||
- | ==== Installer et configurer sa VM ==== | ||
- | |||
- | Pour accéder à votre VM, vous devez établir un pont SSH entre votre ordinateur et votre VM puis utiliser le protocole VNC. | ||
- | - Ouvrer un terminal | ||
- | - Lancer la commande suivante, en remplacant les variables '' | ||
- | - Lancer le client VNC de votre choix avec en serveur '' | ||
- | |||
- | Si tout se passe bien, vous devriez maintenant voir l' | ||
- | |||
- | Vous pouvez maintenant procéder à l' | ||
- | , inclus sur Debian et Ubuntu fonctionne très bien. Petites astuces : | ||
- | |||
- | * Pour la configuration IP, il n'y a pas de serveur DHCP, il faut donc configurer manuellement : utiliser l'IP et le masque (le / | ||
- | * Pour la gateway, garder la valeur par défaut. | ||
- | * Pour les serveurs DNS, vous pouvez utiliser ceux de LDN et FDN (80.67.188.188, | ||
- | * Contrairement à ce qui est suggéré par défaut lors de l’installation Debian, il n’est pas utile, et moins gourmand en espace disque, d’installer les paquets correspondants aux environnements graphiques puisque nous sommes sur un serveur | ||
- | * Si vous chiffrez votre disque ([[: | ||
- | |||
- | ==== Redémarrage de votre VM ==== | ||
- | |||
- | Maintenant que votre VM est correctement installée, vous devez envoyer un mail à '' | ||
- | |||
- | ==== Finalisation et accès SSH à votre VM ==== | ||
- | |||
- | Une fois que l' | ||
- | |||
- | Comme ce n'est pas très pratique de se connecter par VNC en permanence, nous allons maintenant configurer votre VM pour que vous puissiez y accéder par SSH uniquement. | ||
- | |||
- | - Installer le paquet '' | ||
- | - Si besoin, générer une clé SSH sur votre PC avec la commande suivante : < | ||
- | - Copier votre clé SSH depuis votre PC sur votre VM à l'aide de la commande suivante : < | ||
- | - Vous pouvez maintenant vous connecter à votre VM avec la commande : < | ||
- | |||
- | Si la connexion fonctionne correctement vous pouvez rajouter la configuration suivante au fichier '' | ||
- | < | ||
- | Host ma-vm | ||
- | Hostname IP_VM | ||
- | Username REF_ABO | ||
- | Port 22 | ||
- | IdentifyFile ~/ | ||
- | </ | ||
- | |||
- | Les étapes suivantes sont optionnelles mais sont des mesures de sécurité recommandées : | ||
- | |||
- | === Désactiver l' | ||
- | |||
- | Sur votre VM, éditez le fichier ''/ | ||
- | Le fichier doit maintenant contenir les lignes suivantes : | ||
- | < | ||
- | PasswordAuthentication no | ||
- | PermitEmptyPasswords no | ||
- | </ | ||
- | |||
- | === Protection contre les attaques de type bruteforce === | ||
- | Installer '' | ||
- | < | ||
- | |||
- | |||
- | ==== Conclusion ==== | ||
- | |||
- | Et voilà, vous pouvez maintenant accéder à votre VM en SSH et n'avez plus besoin de l' | ||
- | |||
- | ===== Procédure pour le bureau ===== | ||
- | |||
- | Lorsqu' | ||
- | - vérifier que la personne est adhérente, sinon, lui proposer d' | ||
- | - vérifier que l' | ||
- | - créer un abonnement de type VM dans COIN lié au compte de l' | ||
- | - demander la création d'une VM aux adminsys en leurs transmettant : | ||
- | * la référence COIN de l' | ||
- | * la clé SSH de l' | ||
- | * l' | ||
- | - Une fois qu'un adminsys à confirmé la création de la VM, il faut transmettre à l' | ||
- | * le RIB de FAImaison | ||
- | * l'url + identifiants sur https:// | ||
- | * la référence de son abonnement | ||
- | |||
- | ===== Procédure pour les adminsys ===== | ||
- | |||
- | Quand le **bureau@** transmet une demande de création de VM avec les informations suivantes : | ||
- | * référence COIN de l' | ||
- | * la clé SSH publique de l' | ||
- | * le mail de l' | ||
- | |||
- | NB: Toutes les commandes ganeti sont a exécutées sur l' | ||
- | |||
- | ==== Sélectionner l'IP et l' | ||
- | |||
- | - Sélectionner une ip ('' | ||
- | - Ajouter un nouvel enregistrement A pour faire pointer le nom de la VM vers l'IP. < | ||
- | - Choisir l' | ||
- | |||
- | ==== Création de la VM ==== | ||
- | |||
- | Créer la VM sur l' | ||
- | < | ||
- | |||
- | ==== Créer le compte de l' | ||
- | |||
- | - Récupérer le port VNC ('' | ||
- | - Créer un compte utilisateur sur **les deux hyperviseurs** : < | ||
- | - Ajouter dans la configuration sshd sur **les deux hyperviseurs** | ||
- | < | ||
- | Match User REF_ABO | ||
- | Banner / | ||
- | PermitOpen localhost: | ||
- | Match all # end Match group block | ||
- | </ | ||
- | - Copier la clé SSH de l' | ||
- | - Créer sur **les deux hyperviseurs** un fichier ''/ | ||
- | < | ||
- | | ||
- | Port VNC pour accéder à votre VM : VNC_PORT | ||
- | |||
- | | ||
- | |||
- | ssh -N -L VNC_PORT: | ||
- | |||
- | | ||
- | Par exemple : | ||
- | |||
- | | ||
- | </ | ||
- | - Recharger la configuration de SSHD (en vérifiant la conf avant) : < | ||
- | |||
- | === Prévenir l' | ||
- | |||
- | Prévenir l' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | === Faire booter la VM sur le disque === | ||
- | Quand l' | ||
- | * On éteind la VM : < | ||
- | * On modifie l' | ||
- | * On relance la VM < | ||
- | |||
- | ==== Autres opérations ==== | ||
- | |||
- | === Migration de VM entre les hyperviseurs === | ||
- | |||
- | La migration d'une VM d'un hyperviseur à l' | ||
- | |||
- | - Migrer la VM sur un hyperviseur (identifié par '' | ||
- | - Si la VM migrée est la VM d'un adhérent, c'est à dire que la VM est nommée '' | ||
- | |||
- | === Configuration des hyperviseurs === | ||
- | |||
- | Pour configurer les hyperviseurs : | ||
- | - Créer le groupe '' | ||
- | - Rajouter sur **les deux hyperviseurs** et **à la fin** du fichier ''/ | ||
- | < | ||
- | Match group ref-host-vm | ||
- | AllowAgentForwarding no | ||
- | AllowStreamLocalForwarding no | ||
- | X11Forwarding no | ||
- | PermitTTY no | ||
- | PermitTunnel no | ||
- | PermitUserRC no | ||
- | PermitOpen none | ||
- | Match all # end Match group block | ||
- | </ | ||
- | |||
- | =====Adminstration de l' | ||
- | |||
- | ==== Comment augmenter l' | ||
- | |||
- | La procédure est la suivante : | ||
- | - Augmenter le disque vu par la VM depuis l' | ||
- | - Redémarrer la VM depuis l' | ||
- | - Aggrandir/ | ||
- | |||
- | === Augmenter le disque de la VM === | ||
- | La syntaxe générale de '' | ||
- | < | ||
- | gnt-instance grow-disk {instance} {disk} {amount} | ||
- | </ | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | On peut donc utiliser la commande suivante pour augmenter le disque de la VM '' | ||
- | < | ||
- | gnt-instance grow-disk testvm.faimaison.net 0 10G | ||
- | </ | ||
- | |||
- | === Agrandir la parition d'une VM === | ||
- | Une fois le disque de la VM agrandi et la VM redémarrée depuis l' | ||
- | |||
- | - Agrandir les partitions sur le disque avec fdisk(8)/ | ||
- | - Dans le cas d'une partition chiffrée avec LUKS, redimensionner la partition avec '' | ||
- | - Dans le cas d'une partition LVM, redimensionner le volume physique avec '' | ||
- | - Dans le cas d'une partition de type ext3/4, redimensionner la partition avec '' | ||
- | - Dans le cas d'une partition de type swap, recréer le système de fichier swap avec '' | ||
- | |||
- | ==== Comment créer et restaurer un snapshot d'une VM sous ganeti ? ==== | ||
- | Nous utilisons ganeti sur deux machines (les noeuds). Les VM utilisent comme disque des volumes logiques LVM créés sur le disque des hyperviseurs. Ces volumes logiques sont synchroniser entre les deux noeuds par DRBD. | ||
- | |||
- | Le noeud ganeti sur lequel tourne une VM (mutine ou dramm-hud) est considéré comme le noeud primaire pour DRBD. Cela est différent du noeud ganeti maître qui est le noeud sur lequel les commandes ganeti doivent être exécutées. | ||
- | |||
- | Il est possible de créer un snapshot LVM du disque d'une VM sur le noeud DRBD primaire. Ce snapshot ne sera pas synchronisé par DRBD. | ||
- | |||
- | Les commandes ganeti ('' | ||
- | Les commandes LVM ('' | ||
- | |||
- | - Identifier le volume logique d'une VM : < | ||
- | -> / | ||
- | - Pour plus de sécurité, il est recommandé de faire le snapshot de la VM éteinte : < | ||
- | - Créer le snapshot : < | ||
- | - Réaliser les opérations désirées (upgrade, etc.). | ||
- | - Si toutes les opérations ont été réalisées sans problème, on peut supprimer le snapshot : < | ||
- | |||
- | Dans le cas où un problème s'est produit, on peut restaurer le snapshot. | ||
- | - Éteindre la VM : < | ||
- | - Restaurer le snapshot : < | ||
- | lvconvert --merge / | ||
- | lvchange -ay / | ||
- | - Redémarrer la VM et espérer que tout s'est bien passé :-) : < |
projets/vm.1520432452.txt.gz · Dernière modification : 2018/03/07 14:20 de cequejevois