Objectifs :

  • Pouvoir lancer plusieurs applications indépendantes
  • Pouvoir créer des environnements de tests

Mes besoins :

  • Basse consommation d’énergie
  • Simple à gérer
  • Disque physique chiffré

Le matériel#

Pour réaliser ce setup, je vais utiliser le matériel suivant : ThinkCenter M93p

  • Marque : Lenovo
  • Etat : Reconditionnée
  • Série : Thinkcenter M93p
  • Processeur : Intel i5-4590T (4 coeurs, 2-3 Ghz)
  • Mémoire vive : 8 Go
  • Disque : SSD 256 Go
  • Consommation : ~10W
  • Prix conseillé : <120€~150€

L’installation#

Pour pouvoir customiser notre partitionnement, je préfère utilisé la méthode à partir d’un OS (Debian) de base sur lequel j’installe les paquets Proxmox. Plus de détails dans ce lien pour l’installation de base avec une partition LVM et un chiffrement LUCKS.

Une fois que nous avons notre système prêt on va pouvoir installer Proxmox.

Pré-requis#

Résolution /etc/hosts#

Vérifier que le nom d’hôte de la machine puisse être résolu par le fichier /etc/hosts. Rajouter si nécessaire dans le fichier une entrée permettant au système de résoudre le nom d’hôte par son adresse IP.

Dans mon cas, ma machine se nomme proxmox01 et possède l’adresse IP 10.0.0.15. Voici ce que cela peut donner comme fichier :

127.0.0.1	localhost
#127.0.1.1	proxmox01.home	proxmox01
10.0.0.15	proxmox01.home proxmox01

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Dans mon réseau, j’ai définit un domain privée local (uniquement résolvable par mon serveur DNS sur mon réseau privée) en <hostname>.home. Si vous n’en possédez pas, pas besoin de le spécifié.

Il est possible de tester avec la commande hostname :

hostname --ip-address
10.0.0.15

Install Proxmox VE#

En suivant la documentation officielle PVE Docs chapter sysadmins - package repositories, installez le dépôts et les paquets Proxmox.

echo "deb [arch=amd64] deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
apt-get update
apt-get dist-upgrade
apt install ifupdown2
apt install proxmox-ve postfix open-iscsi

Le paquet ifupdown2 sera nécessaire pour configurer depuis la console Proxmox le réseau.

Nettoyage#

apt remove os-prober
apt remove linux-image-amd64 'linux-image-*'
update-grub

Connexion à l’interface#

Vous pouvez vous connecter à l’interface web en spécifiant l’adresse IP et en utilisant le port 8006 (par défaut) : https://10.0.0.15:8006.

A partir d’ici, la seule authentification possible est en utilisant domaine d’authentification (Realm) PAM (Pluggable Authentification Module). Il permet d’utiliser les utilisateurs du système local pour s’authentifier. Utiliser l’utilisateur root et le mot de passe renseigné lors de l’installation de l’OS pour vous connecter à l’interface web.

Réseaux#

Pour que vos instances puissent se connecter à internet, plusieurs solutions sont envisageable. Je vous suggère d’utiliser un pont réseau. Plus de détails dans la documentation officielle : PVE Docs chapter sysadmin - network configuration with bridge mode

Editer le fichier /etc/network/interfaces

...
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 10.0.0.15/24
        gateway 10.0.0.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

Nous définisons une nouvelle interface virtuelle vmbr0 où notre serveur proxmox possèdera son adresse IP et où toutes les instances seront rattachées. Puis nous lions cette interface à notre interface physique eno1.

Pour mieux comprendre les conventions de nommage des interfaces réseau utilisé par Proxmox, je vous invite à lire attentivement cette documentation : PVE Docs cahpter sysadmin - naming conventions

Organisation Proxmox#

  1. Datacenter <– C’est ici que l’on va gérer notre cluster de serveur si plusieurs serveurs
    1. proxmox01 <– C’est la configuration de notre serveur
      1. local (proxmox01) <– C’est le volume principal du serveur où l’on va pouvoir stocker les données comme les sauvegardes, les images ISO, etc.

Lancement du premier container LXC#

Pour cet exemple simple, on va utiliser un modèle de container de type debian.

  1. Se connecter sur la console Proxmox https://10.0.0.15:8006
  2. Sélectionner le volume local du serveur
  3. Sélectionner le menu CT Template pour télécharger des modèles de containers
  4. Télécharger un modèle avec le bouton Templates

Une fois que le modèle de container est téléchargé, vous pouvez commencer à créer votre premier conteneur LXC.

  1. Cliquez sur le bouton en haut à droite : Create CT
  2. Onglet General
    • Donner un nom à la machine dans le champ hostname (ex: first01)
    • Spécifier un mot de passe et confirmer ce mot de passe
  3. Onglet Template
    • Sélectionner le modèle téléchargé précédemment
  4. Onglet Disks : Laisser les valeurs par défaut
  5. Onglet CPU : Laisser les valeurs par défaut
  6. Onglet Memory : Laisser les valeurs par défaut
  7. Onglet Network
    • Utilisez le serveur DHCP au lieu d’une adresse IP statique
  8. Onglet DNS : Laisser les valeurs par défaut
  9. Onglet Confirmez : Appuyer sur terminé (Finish)

Vous pouvez fermer la console qui est apparue et qui présente l’avancement de l’initialisation du conteneur système.

  • On peut voir en bas l’historique des événements et vérifier si l’initialisation est terminée
  • A gauche, un nouvel item est apparu en gris. Avec un clique droit pour démarrer (start) l’instance.
  • En cliquant sur cet item, un nouveau menu apparait. Vous pouvez, ainsi, voir l’état de l’instance.
  • Cliquer sur le menu Consol pour ouvrir une console et rentrer sur la machine avec l’utilisateur root et le mot de passe renseigné lors de la création de l’instance.

Pour valider le bon fonctionnement, vous pouvez réaliser les actions suivantes :

  1. Vérifier que l’instance possède une adresse IP
ip a
  1. Vérifier que la machine à un accès à internet (mise à jour)
curl https://google.com
apt update && apt upgrade

Si vous ne rencontrez pas de problème, vous êtes prêt à réaliser de nombreuse instances ! Sinon, n’hésitez pas à tester, recommencer et vous aidez des liens en sources pour en savoir plus.

Sources#