# Introduction à Proxmox VE | DevSecOps
Découvrez les fonctionnalités Proxmox pour une gestion optimisée des environnements virtualisés

Aller au contenu

# Introduction à Proxmox VE

Mise à jour : 17/11/2024

Dans le monde de la virtualisation et de la gestion des infrastructures informatiques, Proxmox VE s’est imposé comme une solution incontournable. En tant qu’outil open-source complet pour la virtualisation et la gestion des conteneurs, Proxmox offre aux administrateurs systèmes une plateforme robuste et flexible, répondant à un large éventail de besoins en matière de virtualisation.

## L’Histoire et Évolution de Proxmox

Proxmox VE a vu le jour en 2008, initialement lancé comme une solution de virtualisation basée sur KVM (Kernel-based Virtual Machine). Dès le début, il s’est distingué par sa facilité d’utilisation et son interface utilisateur basée sur le Web, des caractéristiques qui le rendaient accessible même pour les administrateurs systèmes moins expérimentés. Développé et maintenu par Proxmox Server Solutions GmbH, il a rapidement gagné en popularité en tant que solution de virtualisation fiable et abordable.

Au fil du temps, Proxmox VE a évolué pour inclure le support des conteneurs Linux (OpenVZ), élargissant ainsi sa portée au-delà de la simple virtualisation de machines. Le passage à LXC, survenue avec la version 4.0 en 2015, a marqué un tournant, positionnant Proxmox comme une solution de choix pour la gestion à la fois de la virtualisation basée sur des machines et de la virtualisation légère au niveau du système d’exploitation.

Proxmox VE s’est continuellement adapté pour répondre aux tendances de l’industrie et aux demandes des utilisateurs. L’ajout de fonctionnalités telles que le clustering avec haute disponibilité, la migration à chaud des VM et les snapshots en direct ont renforcé sa position en tant que plateforme de gestion de virtualisation complète. Chaque mise à jour majeure de Proxmox apporte des améliorations significatives en termes de performance, de sécurité et de facilité d’utilisation.

## Les Fonctionnalités Clés de Proxmox

Proxmox VE se démarque par un ensemble de fonctionnalités riches et diversifiées qui le rendent idéal pour une variété de scénarios de virtualisation. Ces fonctionnalités sont conçues pour offrir flexibilité, efficacité et contrôle aux administrateurs systèmes.

Proxmox VE est bâti sur la distribution Linux Debian, une version du système d’exploitation Linux reconnue pour sa stabilité et sa sécurité. Cette base solide permet à Proxmox de bénéficier des avantages d’un système d’exploitation Linux complet, tout en y intégrant ses propres fonctionnalités de virtualisation.

Voici certaines de ces fonctionnalités clés :

- Interface Utilisateur Web Intuitive

  - Vue centralisée pour la gestion des ressources
  - Création, gestion et surveillance des VM et conteneurs
  - Configuration de réseaux et stockage via une interface graphique

- Virtualisation avec Linux KVM et LXC

  - KVM pour la virtualisation complète de machines
  - LXC pour la virtualisation légère de conteneurs
  - Flexibilité dans le choix de la méthode de virtualisation

- Mode Clustering et Haute Disponibilité

  - Regroupement de serveurs en un seul cluster
  - Gestion des ressources et redondance facilitée
  - Continuité des services en cas de défaillance

- Console VNC Intégrée en HTML5

  - Accès à distance aux VM et conteneurs via navigateur web
  - Gestion et dépannage facilités

- Support de Stockage Flexible

  - Choix entre des stockages locaux (LVM, ZFS) et distants/partagés (NFS, iSCSI)
  - Optimisation des ressources de stockage selon les besoins

- Snapshots et Migration à Chaud

  - Snapshots live pour sauvegarder et restaurer l’état des VM
  - Migration à chaud des VM sans interruption de service

- Gestion des Permissions et Intégration LDAP/Active Directory

  - Définition de droits d’accès spécifiques pour utilisateurs/groupes
  - Intégration avec LDAP et Active Directory pour la gestion des utilisateurs

- Firewall Intégré

  - Renforcement de la sécurité des environnements virtualisés
  - Contrôle fin de l’accès aux ressources virtualisées

## L’Installation de Proxmox

Proxmox VE peut être installé de deux façons principales :

- soit en utilisant l’image ISO officielle pour une installation complète et autonome,
- soit en l’intégrant à une installation existante d’une machine tournant sous Debian 12.

Chaque méthode a ses spécificités et convient à différents environnements et besoins.

### Installation avec l’Image ISO de Proxmox

Pour une installation autonome, vous commencez par télécharger l’image ISO de Proxmox depuis le site officiel ↗. Cette image contient tout ce qu’il faut pour installer et configurer Proxmox sur une machine vierge. Le processus d’installation guide l’utilisateur à travers plusieurs étapes, notamment la configuration du réseau, la sélection des disques durs pour l’installation et la définition des paramètres de l’administrateur. Une fois l’installation terminée, Proxmox VE est prêt à être utilisé et accessible via l’interface web.

### Installation sur Debian 12

Si vous avez déjà un système Debian 12 en place, Proxmox VE peut être ajouté en tant que couche de virtualisation. Cette méthode est avantageuse si vous souhaitez conserver une base Debian tout en bénéficiant des fonctionnalités de virtualisation de Proxmox. L’installation se fait en ajoutant le dépôt de Proxmox à votre système Debian existant, suivi de l’installation des paquets nécessaires. Cette approche nécessite une certaine familiarité avec la gestion des systèmes Debian et l’utilisation de la ligne de commande.

Plus d’infos sur la page dédiée

### Accès à Proxmox Après Installation

Dans les deux cas, une fois l’installation terminée, Proxmox VE est accessible via un navigateur web en utilisant l’adresse : `https://ip-serveur-proxmox:8006`. L’interface web offre une gestion centralisée de toutes les fonctionnalités de virtualisation, que ce soit pour la création et la gestion des machines virtuelles et des conteneurs ou pour la configuration du réseau et du stockage.

## Les Outils en Ligne de Commande de Proxmox

Dans Proxmox VE, les outils en ligne de commande (CLI) jouent un rôle fondamental pour offrir aux administrateurs une flexibilité et une puissance accrues dans la gestion des environnements virtualisés. Ces outils permettent d’effectuer des tâches complexes et d’automatiser des processus, essentiels pour une gestion efficace et une intégration avec d’autres systèmes et outils. Voici un aperçu des principaux outils CLI disponibles dans Proxmox VE :

### qm : Gestion des Machines Virtuelles

L’outil `qm` est dédié à la gestion des machines virtuelles basées sur KVM. Il permet de créer, configurer, démarrer, arrêter et gérer les VM de manière exhaustive. Les administrateurs systèmes utilisent `qm` pour automatiser le déploiement et la maintenance des VM.

Par exemple, création d’un VM Ubuntu 20.04 cloud init :

Commencez par vous connecter à votre serveur Proxmox VE via SSH ou en utilisant la console de votre système d’exploitation.

Terminal window

    ssh bob@192.168.1.101su -

Entrez ensuite ces commandes :

Terminal window

    cd /var/lib/vz/template/isowget https://cloud-images.ubuntu.com/releases/20.04/release/ubuntu-20.04-server-cloudimg-amd64.img
    qm create 100 --name "ubuntu-cloud-vm" --memory 2048 --net0 virtio,bridge=vmbr0
    qm importdisk 100 ubuntu-20.04-server-cloudimg-amd64.img localimporting disk 'ubuntu-20.04-server-cloudimg-amd64.img' to VM 100 ...Formatting '/var/lib/vz/images/100/vm-100-disk-0.raw', fmt=raw size=2361393152 preallocation=offtransferred 0.0 B of 2.2 GiB (0.00%)transferred 22.5 MiB of 2.2 GiB (1.00%)...transferred 2.2 GiB of 2.2 GiB (100.00%)Successfully imported disk as 'unused0:local:100/vm-100-disk-0.raw'

Ici, `local` est le stockage où l’image disque sera importée. Changez-le en fonction de votre configuration de stockage.

Terminal window

    qm set 100 --scsihw virtio-scsi-pci --scsi0 local:100/vm-100-disk-0.rawupdate VM 100: -scsi0 local:100/vm-100-disk-0.raw -scsihw virtio-scsi-pci
    qm set 100 --ide2 local:cloudinitupdate VM 100: -ide2 local:cloudinitFormatting '/var/lib/vz/images/100/vm-100-cloudinit.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=4194304 lazy_refcounts=off refcount_bits=16ide2: successfully created disk 'local:100/vm-100-cloudinit.qcow2,media=cdrom'generating cloud-init ISO
    qm set 100 --boot c --bootdisk scsi0update VM 100: -boot c -bootdisk scsi0
    qm set 100 --serial0 socket --vga serial0update VM 100: -serial0 socket -vga serial0

Ces commandes configurent la VM pour utiliser l’image disque comme disque de démarrage principal et préparent la VM pour l’utilisation de cloud-init.

Terminal window

    qm set 100 --sshkey /root/.ssh/id_ed25519.pubupdate VM 100: -sshkeys ssh-ed25519%20AAAAB3NzaC1yc2EAAAADAQABAAABAQCq4

Remplacez `/root/.ssh/id_ed25519.pub` par le chemin vers votre clé publique SSH.

Une fois toutes les configurations terminées, démarrez la VM.

Terminal window

    qm start 100

Après le démarrage de la VM, vous pouvez y accéder via SSH en utilisant l’adresse IP attribuée à la VM et le nom d’utilisateur Ubuntu par défaut (généralement `ubuntu`).

Vous avez maintenant une VM Ubuntu Cloud en cours d’exécution sur Proxmox VE, créée et configurée entièrement via la ligne de commande. Cette méthode offre une grande flexibilité, mais n’est pas idéale pour l’automatisation et la réplication dans des environnements de virtualisation à grande échelle. Nous verrons par la suite comment utiliser des outils d’infra-as-code tel que Terraform, Ansible ou encore Pulumi.

### pct : Gestion des Conteneurs LXC

`pct` est l’équivalent de `qm` pour les conteneurs LXC. Cet outil offre une gamme de commandes pour gérer les conteneurs Linux, y compris leur création, configuration, démarrage et arrêt. Il est particulièrement utile pour gérer des environnements conteneurisés de manière efficace.

### pvesh : Accès à l’API Proxmox

Avec `pvesh`, les administrateurs peuvent interagir directement avec l’API de Proxmox VE. Cet outil est utile pour des scripts avancés et des intégrations personnalisées, permettant d’automatiser et de personnaliser la gestion de l’ensemble de l’infrastructure Proxmox.

Terminal window

    pvesh get /cluster/resources --type vm┌──────────┬──────┬─────────────┬─────────┬───────┬────────┬─────────┬───────┬────────┬─────────┬─────│ id       │ type │ cgroup-mode │ content │   cpu │   disk │ hastate │ level │ maxcpu │ maxdisk │   ma╞══════════╪══════╪═════════════╪═════════╪═══════╪════════╪═════════╪═══════╪════════╪═════════╪═════│ qemu/100 │ qemu │             │         │ 0.00% │ 0.00 B │         │       │      1 │  0.00 B │ 4.00└──────────┴──────┴─────────────┴─────────┴───────┴────────┴─────────┴───────┴────────┴─────────┴─────

### pveum : Gestion des Utilisateurs et Groupes

`pveum` est l’outil pour gérer les utilisateurs et les groupes dans Proxmox. Il permet de créer, modifier et supprimer des comptes d’utilisateurs et de gérer leurs permissions, facilitant ainsi la gestion des accès et des droits au sein de l’environnement Proxmox.

### pvesm : Gestion du Stockage

L’outil `pvesm` est utilisé pour la gestion des stockages dans Proxmox, qu’ils soient locaux ou distants. Les administrateurs s’en servent pour ajouter, configurer et gérer les solutions de stockage, un aspect important pour assurer l’efficacité et la performance des ressources virtualisées.

Terminal window

    pveum useradd example-user@pve --password example-password

### pvefirewall : Configuration du Firewall

`pvefirewall` offre des commandes pour gérer le firewall intégré de Proxmox, permettant de renforcer la sécurité du système. Les règles de firewall peuvent être configurées et ajustées selon les besoins de sécurité spécifiques.

Terminal window

    pvefirewall add rule --action ACCEPT --source any --dest net0 --proto tcp --dport 22

## Les Outils d’Infrastructure as Code pour Proxmox

L’approche “Infrastructure as Code” (IaC) est devenue un élément essentiel dans la gestion moderne des infrastructures informatiques, permettant une automatisation efficace et une gestion cohérente des environnements virtualisés. Proxmox VE s’intègre avec plusieurs outils d’IaC, ce qui renforce sa flexibilité et son adaptabilité aux pratiques modernes de gestion d’infrastructure. Voici un aperçu des principaux outils d’IaC compatibles avec Proxmox VE :

### Terraform Provider pour Proxmox

Terraform, un outil populaire d’IaC, permet aux administrateurs de définir et de gérer l’infrastructure en utilisant des fichiers de configuration déclaratifs. Le provider Terraform pour Proxmox étend ces capacités à l’environnement Proxmox, permettant la création, la modification et la gestion des machines virtuelles et des conteneur. Cette intégration facilite la mise en place d’infrastructures répétables et standardisées.

### Ansible Collection pour Proxmox

Ansible est un autre outil d’automatisation largement utilisé, qui excelle dans la gestion des configurations et l’automatisation des tâches répétitives. La collection Ansible pour Proxmox ↗ permet de gérer les ressources Proxmox, comme les machines virtuelles et les conteneurs, directement via des playbooks Ansible. Cela simplifie l’automatisation des déploiements, la maintenance régulière et les mises à jour des systèmes dans Proxmox.

### Packer pour Proxmox

Packer, un outil conçu pour créer des images de machines pour différentes plateformes à partir d’une source unique. Packer peut être utilisé avec Proxmox ↗ pour automatiser la création des templates de machines virtuelles. Il permet de préparer des templates qui peuvent être déployées rapidement dans l’environnement Proxmox, optimisant le processus de déploiement des machines virtuelles.

### Pulumi et Proxmox

Pulumi est un outil d’IaC qui permet aux développeurs d’utiliser des langages de programmation courantsx pour définir et gérer l’infrastructure. Pulumi offre un potentiel intéressant pour une gestion d’infrastructure plus dynamique et codée dans des langages comme TypeScript, Go, Python…

## Avantages et Limitations de Proxmox

L’adoption de Proxmox VE en tant que solution de virtualisation apporte une série d’avantages significatifs, tout en présentant certaines limitations qu’il est important de connaître.

### Avantages de Proxmox VE

1. Open Source et Abordable : Proxmox VE est une solution open-source, offrant une alternative économique aux plates-formes de virtualisation coûteuses. Elle évite les coûts de licence élevés tout en offrant une communauté dynamique et un développement continu.
2. Interface Utilisateur Web Intuitive : L’interface utilisateur web de Proxmox est à la fois puissante et facile à utiliser, rendant la gestion des ressources virtualisées accessible même aux utilisateurs moins expérimentés.
3. Support Complet de la Virtualisation et des Conteneurs : Avec le support de KVM et LXC, Proxmox permet une virtualisation complète et la gestion des conteneurs, offrant ainsi flexibilité et efficacité dans la gestion des ressources.
4. Haute Disponibilité et Clustering : Proxmox VE supporte le clustering et la haute disponibilité, des caractéristiques indispensables pour les environnements d’entreprise nécessitant une continuité des opérations et une gestion des ressources à grande échelle.
5. Stockage et Réseau Flexibles : La prise en charge de diverses solutions de stockage et de configurations réseau avancées permet à Proxmox de s’adapter à divers environnements et exigences. Par contre, le support de le Fiber Chanel n’est pas natif.
6. Prise en charge des IPAM : Proxmox prends en charge les IPAM phpipam et netbox.

### Limitations de Proxmox VE

1. Courbe d’Apprentissage pour les Débutants : Bien que Proxmox soit convivial, les utilisateurs sans expérience en virtualisation ou en administration système peuvent trouver sa multitude de fonctionnalités et options quelque peu intimidantes au début.
2. Dépendance à Debian : Étant basé sur Debian, Proxmox peut hériter de certaines limitations de cette distribution Linux, ce qui peut affecter la compatibilité avec certains matériels ou logiciels.
3. Support Communautaire vs Support Commercial : Bien que la communauté Proxmox soit active et utile, les entreprises nécessitant un support commercial détaillé peuvent trouver les options limitées comparées à des solutions propriétaires.
4. Mises à Jour et Compatibilité : Les mises à jour de Proxmox doivent être réalisées avec soin, surtout dans des environnements complexes, pour éviter des problèmes de compatibilité ou de performance.
5. La documentation officielle : La documentation n’est pas exempt de critiques de la par des utilisateurs : obsolète et incomplète.

## Différence entre la Version Open Source et Commerciale de Proxmox

Proxmox VE est disponible en deux versions : une version open source et une version commerciale :

### Proxmox VE Open Source

1. Licence : La version open source de Proxmox est distribuée sous licence GNU AGPL, v3. Cela signifie que vous pouvez utiliser, modifier et redistribuer le logiciel gratuitement.
2. Fonctionnalités : La version open source offre toutes les fonctionnalités de base de Proxmox VE, y compris la prise en charge de KVM et LXC, l’interface utilisateur web, le clustering et plus encore.
3. Support : Le support pour la version open source est principalement communautaire, via des forums et des wikis. Il n’y a pas de support commercial officiel inclus.
4. Mises à Jour : Les mises à jour sont disponibles, mais elles peuvent ne pas être aussi rapides ou stables que dans la version commerciale. Les utilisateurs doivent souvent attendre que les nouvelles fonctionnalités soient testées et stabilisées.

### Proxmox VE Subscription Edition

1. Licence et Coût : La version Subscription Edition nécessite l’achat d’un abonnement. Ce modèle d’abonnement finance le développement continu et le support professionnel.
2. Fonctionnalités : Toutes les fonctionnalités de la version open source sont incluses. En outre, certains ajouts ou extensions peuvent être disponibles en avant-première pour les abonnés.
3. Support Professionnel : L’abonnement offre un accès au support professionnel de Proxmox, qui inclut l’assistance par e-mail et téléphone, des garanties de temps de réponse et l’accès à des mises à jour et des correctifs de sécurité plus fréquents.
4. Mises à Jour Stables et Testées : Les abonnés reçoivent des versions et des mises à jour qui ont été rigoureusement testées et validées, assurant ainsi une plus grande stabilité et sécurité pour les environnements de production.

### Conclusion

La décision entre la version open source et commerciale de Proxmox VE dépend des besoins spécifiques de l’organisation en termes de support, de stabilité et de budget. Pour les petites équipes ou les environnements moins critiques, la version open source peut être suffisante, tandis que les entreprises nécessitant un support fiable et des mises à jour régulières peuvent préférer l’abonnement commercial.

## Conclusion

Proxmox VE se présente comme une solution de virtualisation et de gestion de conteneurs complète, offrant un équilibre entre puissance, flexibilité et accessibilité. À travers ce billet, nous avons exploré les multiples facettes de Proxmox, de son installation à ses fonctionnalités clés, en passant par les outils en ligne de commande et l’intégration avec des pratiques d’Infrastructure as Code.

Les avantages de Proxmox, tels que son modèle open-source, son interface utilisateur web intuitive et sa prise en charge complète de la virtualisation et des conteneurs, en font un choix privilégié pour de nombreuses organisations. Sa capacité à gérer des environnements virtualisés complexes, tout en restant économiquement accessible, le distingue dans le paysage des solutions de virtualisation.

Cependant, il est important de garder à l’esprit les limitations de Proxmox, notamment en ce qui concerne la courbe d’apprentissage pour les nouveaux utilisateurs et la dépendance à l’écosystème Debian. Ces facteurs doivent être pris en compte lors de l’évaluation de Proxmox pour des environnements spécifiques.

En conclusion, Proxmox VE se dresse comme une plateforme robuste et polyvalente, adaptée à une variété de besoins en matière de virtualisation, depuis les petites entreprises jusqu’aux grandes infrastructures d’entreprise. Son évolution continue et son adaptation aux dernières tendances technologiques, telles que l’Infrastructure as Code, témoignent de son engagement à rester à la pointe des solutions de gestion d’infrastructure IT. Pour les administrateurs systèmes et les organisations cherchant une solution complète et abordable de virtualisation, Proxmox VE offre un ensemble de fonctionnalités impressionnant et une communauté dynamique, constituant ainsi une option à considérer sérieusement.

## Plus d’infos

Voici une liste de liens utiles pour accéder à différentes ressources concernant Proxmox VE :

- Site Officiel de Proxmox VE : https://www.proxmox.com/proxmox-ve ↗
- Documentation de Proxmox VE : https://pve.proxmox.com/wiki/ ↗
- Projet GitHub de Proxmox VE : https://github.com/proxmox ↗