====== Hyperviseur Proxmox ======
[[https://pve.proxmox.com/|Proxmox]] est une solution libre d'hyperviseur capable d'héberger des machines virtuelles complètes (avec virtualisation des composants) et des //**containers**// utilisant directement les ressources matérielles de la machine.
===== Création d'une machine virtuelle ou d'un container =====
La création des machines nécessite de renseigner les points suivants :
* Numéro de machine : c'est l'identifiant numérique de la machine pour Proxmox
* Nom de la machine : c'est le //**hostname**// de la machine
* Mot de passe pour le compte //root//
* //template// ou //cd/dvd// : modèle de //container// ou //iso// du système d'exploitation de la machine virtuelle
* //rootdisk/storage// : dossier de stockage des fichiers sur le serveur
* Carte réseau :
* //Name// : le nom de la carte tel qu'il sera vu par le SE
* //Bridge// : permet de déterminer comment la machine accède au réseau (par défaut, //**vmbr0**//)
* IP/Masque et Passerelle
===== Gérer les machines virtuelles depuis le shell =====
La commande pct permet de gérer les conteneurs.
Entrer dans un conteneur (sans connaître le mot de passe root)
pct enter
Démarrer le conteneur
pct start
stopper le conteneur
pct stop
Cloner un conteneur
pct clone
Détruire un conteneur
pct destroy
===== Duplication de machines virtuelles =====
* Paramétrez votre machine originale.
* Réalisez une sauvegarde de votre machine, une fois toutes les mises à jour effectuées.
__**I.Deployez votre machine originale à un serveur distant**__
a. Envoyez le fichier de votre machine au serveur distant :
scp /var/lib/vz/dump/vzdump-qemu-'ID de la machine' 'NomUtilisateurduServeurDistant'@'IpServDest':/var/lib/vz/dump/
b.Restaurez la machine sur le serveur distant
Aller dans le disque local , sélectionnez l'image de votre machine et cliquez sur restore puis renommez si vous avez la nécessité de le faire.
__**II.Deployez votre machine originale au serveur local**__
a. Sélectionnez la machine originale , à côté de 'Shutdown', vous avez 'More' , cliquez dessus et cliquez sur clone.
__**Contributeurs**__ Moukimou Tsifanavi / Rimbault Sullivan.
===== Importer/Exporter des machines virtuelles depuis ou vers un serveur Proxmox =====
__**Exporter/Sauvegarder une machine virtuelle**__
* Dans l'interface Proxmox, ouvrir la machine à sauvegarder
* Cliquer sur //Backup Now//
* Récupérer le fichier de sauvegarde avec FileZilla dans le dossier //**/var/lib/vz/template/backup/**// (ou autre endroit selon l'installation de Proxmox)
__**Importer/Restaurer une machine virtuelle**__
* Réinjecter le fichier avec FileZilla au nouvel emplacement (dans le dossier //**/var/lib/vz/template/backup/**// par défaut)
* Dans l'interface du Proxmox, retrouver le fichier de sauvegarde dans l'emplacement des //backups//, puis cliquer sur //Restore//.
===== Création d'un utilisateur et paramétrez ces rôles dans le groupe auquel il appartient =====
__**Contributeurs**__ : Rimbault Sullivan , Tsifanavi Moukimou.
I.Exemple
__**Créer l'utilisateur**__
Compte: Administrateur
Mot de passe : mp@admin14
adduser Administrateur
password Administrateur
New password :
__**Paramétrer les rôles**__
pveum acl modify / --group "Groupedel'utilisateur concerné" --role "Role à mettre"
Voici quelques rôles utilisateur pour le Proxmox:
Administrator: has all privileges
NoAccess: has no privileges (used to forbid access)
PVEAdmin: can do most things, but miss rights to modify system settings (Sys.PowerMgmt, Sys.Modify, Realm.Allocate).
PVEAuditor: read only access
PVEDatastoreAdmin: create and allocate backup space and templates
PVEDatastoreUser: allocate backup space and view storage
PVEPoolAdmin: allocate pools
PVESysAdmin: User ACLs, audit, system console and system logs
PVETemplateUser: view and clone templates
PVEUserAdmin: user administration
PVEVMAdmin: fully administer VMs
PVEVMUser: view, backup, config CDROM, VM console, VM power management.
__Exemple__
pveum acl modify / --group "groupeEtudiants" --role "PVEVMAdmin"
===== Activer l'option "Nested" =====
Cette option peut être nécessaire lorsque certains services ne démarrent pas sur les VMs (par exemple mysql sous Debian 10).
echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
Il faut ensuite redémarrer le serveur Proxmox.
===== Monter le disque d'une MV =====
Il est possible d'accéder au contenu du disque d'une machine virtuelle même lorsqu'elle n'est pas démarrée. On pourra ainsi modifier des fichiers, récupérer du contenu, etc.
pct mount
On accède alors au contenu dans **// /var/lib/lxc//rootfs//**
L'ensemble des commandes **//PCT//** est accessible [[https://pve.proxmox.com/pve-docs/pct.1.html|ici]]
===== Gérer les clusters de Proxmox =====
Un cluster Proxmox de base permet de gérer plusieurs instances depuis une connexion unique sur n'importe quel nœud. Il n'y a pas de tolérance de panne mais la possibilité de migrer des machines d'un nœud à un autre.
==== Sortir les noeuds d'un cluster ====
**__ATTENTION__**
Les manipulations pourraient détruire l'ensemble des contenus des noeuds. Sauvegarder l'ensemble et procéder en assurant la possibilité de revenir en arrière
On agit sur le noeud principal sur lequel est définit le cluster.
* On éteint les services systemctl stop pve-cluster
systemctl stop corosync
* on relance la gestion des fichiers du cluster pmxcfs -l
* on déplace les configurations de l'outil Corosync mkdir /tmp/corosync
mv /etc/corosync/* /tmp/corosync
* on arrête le gestionnaire de fichier et on redémarre le clusterkillall pmxcfs
systemctl start pve-cluster
* on supprime les autres noeuds pvecm delnode
* on réduit le nombre de noeuds attendu par le cluster pvecm expected 1
* on supprime ou déplace les informations des noeuds supprimés (à faire sur chaque noeud) mv /etc/pve/nodes/