Virtualiser Ubuntu Server 22.04 LTS sur Proxmox VE

Guide d'installation de Ubuntu Server 22.04 LTS sur Proxmox VE avec mes meilleurs réglages.

Virtualiser Ubuntu Server 22.04 LTS sur Proxmox VE
pve proxmox proxmoxve ubuntu server

Dans ce tutoriel, vous allez faire d'une pierre deux coup. Vous allez apprendre à :

  • Créer une machine virtuelle Ubuntu Server 22.04 LTS en adoptant les bonnes pratiques,
  • Créer un template qui servira pour vos futures machines virtuelles,

Téléchargez l'ISO

Il existe deux méthodes pour télécharger une ISO sur Proxmox VE.

Méthode 1 : GUI

Accédez à votre interface web et allez dans nomduserveur\local\ISO Images

Mais il existe une méthode encore plus rapide que l'interface web.

Méthode 2 : CLI (Command Line Interface)

Allez dans nomduserver\shell

Et tapez la commande suivante sur le terminal :

wget -O /var/lib/vz/template/iso https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso

Pour en savoir plus sur la commande wget :

Wget - Download files to Specific Directory
Wget is a free command-line utility for downloading files from the remote server. It supports HTTP, HTTPS, and FTP protocols, as well as follows the HTTP proxies servers. The default wget download files under the current working directory. In this tutorial, we will describe you to how to download fi…

Création de la machine virtuelle

Passons à la création de la machine virtuelle.

Cliquez sur "create VM".

Pensez à cocher la case "Advanced" pour avoir plus d'options disponibles.

General

  • Choisissez un VMID disponible et un nom

OS

  • Storage : Sélectionnez l'image ISO d'Ubuntu Server.
  • Guest OS : laissez par défaut.

System

  • Graphic card : choisissez SPICE,
  • SCSI Controller : laissez par défaut (c'est le meilleur choix possible en terme de performance),
  • BIOS et Machine : laissez Seabios et i440fx par défaut,
  • Cliquez bien sur Qemu Agent pour que PVE puisse envoyer des commandes à la machine virtuelle et recevoir des informations,

Disks

  • Bus/Device : laissez par défaut,
  • Storage : choisissez "local-lvm" pour un provisionnement dynamique,
  • Disk size (GiB) : laissez par défaut (vous pourrez l'étendre par la suite),

Ici, deux options sont à cocher :

  • SSD emulation : indique à l'OS qu'il démarre sur un SSD et non sur un disque rotatif,
  • Discard : active le TRIM.

CPU

  • Socket : laissez par défaut,
  • Cores : Sélectionnez le nombre de cores que vous souhaiter,
  • Type : kvm64 est le choix par défaut, cela vous permettra de migrer votre machine virtuelle sur n'importe quel serveur sans rencontrer d'incompatibilités,
  • Memory (MiB) : Choisissez la mémoire que vous souhaitez allouer à votre machine virtuelle (c'est 2048 Mib par défaut),
  • Bridge : le pont par défaut du serveur,
  • Firewall : le pare-feu de Proxmox VE (iptable) activé par défaut,
  • Model : VirtIO est installé d'office dans les distributions Linux et vous permettra de profiter des gains de performance dû à la para-virtualisation.

Vérifiez que tout est correct puis finalisez la création de la machine virtuelle.

Optimisations

Dans les options de la machine virtuelle, pensez toujours à décocher l'option "Use tablet for pointer" qui dans le cadre d'un serveur est inutile et consomme beaucoup de ressources.

Installation d'Ubuntu Server 20.04 LTS

Démarrez la machine virtuelle et utilisez NoVNC ou SPICE pour accéder à l'interface.

Après avoir démarré la machine virtuelle, choisissez la langue qui vous convient. Choisissez l'anglais pour l'immersion au quotidien.

Choisissez "Update to the new installer" et validez par "Done".

Identifiez votre clavier avec "Identify keyboard", vous devriez arriver au même résultat que sur la capture d'écran. Validez par "Done".

Cochez "Ubuntu Server (minimized)" qui installera le minimum syndical sur votre serveur. Validez par "Done"

Laissez le DHCP attribuer une adresse IP à votre serveur. Plus tard avec cloud-init, vous pourrez attribuer une adresse IP fixe (IPv4/IPv6) ainsi que fournir une passerelle, une clé SSH et un ou plusieurs DNS.

Si vous n'avez pas de proxy, ne mettez rien et validez par "Done".

Laissez le miroir par défaut. Il se trouve en France donc il répondra plus vite que des miroir se trouvant à l'autre bout du monde.

Utilisez le disque en entier. Quand vous aurez acquis plus d'expérience (je parle aux débutants), il faudra créer les partitions suivantes :

  • / : partition root (système),
  • /home : partition qui contient les utilisateurs,
  • /var : partition qui contient les logs et qui provoque de nombreux plantages quand elle se retrouve remplis,

Dernière chose, le disque sera formaté au format LVM (logical volume management).

Pour en savoir plus sur les volumes logiques :

Gestion par volumes logiques — Wikipédia

Validez par "Continue"

Cochez la case "Install OpenSSH Server" pour pouvoir vous connecté à partir d'un terminal.

N'installez rien car nous vous allez faire de cette machine virtuelle un template (modèle).

Lorsque c'est terminé, validez par "Reboot Now" et appuyez sur la touche "Entrée".

Félicitation!!!! Vous avez réussi à installer Ubuntu Server.

Configuration de Ubuntu 22.04 LTS

Connectez vous en SSH sur votre poste client et tapez votre mot de passe.

ssh george@192.168.0.23
Warning: Permanently added '192.168.0.23' (ECDSA) to the list of known hosts.
george@192.168.0.23's password: 
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-39-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
Last login: Sun Jun 19 15:34:00 2022

Mise à jour du système

Mettez à jour le système avec la commande suivante.

sudo apt update && sudo apt upgrade -y

Qemu-guest-agent

Qemu-guest-agent va permettre à Proxmox VE :

  • De récolter des informations (adresse MAC/IP),
  • De pouvoir envoyer des commandes pour éteindre ou redémarrer la machine virtuelle en toute sécurité,

Tapez la commande suivante :

sudo apt install qemu-guest-agent -y

Cloud-init

Cloud-init (installé d'office) va vous permettre de personnaliser votre machine virtuelle dés son premier démarrage.

L'avantage c'est que de nombreuses distributions Linux proposent des images cloud-init prêtes à l'emploi. Si vous ne le connaissez pas, j'ai rédiger un article à ce sujet :

Proxmox VE - Créer un template avec cloud-init
Aujourd’hui, nous allons voir comment créer un template de machine virtuelle pré-configuré avec cloud-init. Qu’est-ce que Cloud-init ? Cloud-init est un outil conçu par Canonical permettant de gérer l’initialisation d’une machine virtuelle dans le cloud. Au premier démarrage, cloud-init va : *…

Dans le cas d'un template, c'est très pratique car cloud-init fera le travail de configuration initiale à votre place lors de chaque nouvelle création de machine virtuelle.

Installez nano (éditeur de fichiers) avec la commande suivante.

sudo apt install nano -y

Puis dans le fichier /etc/cloud/cloud.cfg, il va falloir supprimer quelques lignes inutiles dans deux sections. C'est optionnel mais au moins cloud-init configurera le strict nécessaire.

La section "cloud_final_modules" :

  • snap,
  • ubuntu-advantage,
  • disable-ec2-metadata,
  • byobu,

La section "cloud_config_modules" :

  • fan,
  • landscape,
  • lxd,
  • puppet,
  • chef,
  • mcollective,
  • salt-minion,
  • rightscale_userdata

Enregistrez les modifications.

Le fichier machine-id

Si vous faites un "cat /etc/machine-id", cela devrait vous afficher l'identifiant du système.

george@ubuntu-2204-server:~$ cat /etc/machine-id
0d9fc815df74417c80745bbaef2c0eb3

Supprimez l'identifiant et créez un fichier vierge.

sudo rm -f /etc/machine-id && sudo touch /etc/machine-id

Pourquoi effectuer cette action ? Cela vous servira à créer un nouvel identifiant à chaque déploiement d'une nouvelle instance à partir du template qu vous allez créer.

Pour en savoir plus sur le fichier "machine-id" :

Ubuntu Manpage: machine-id - Local machine ID configuration file

Nettoyage et extinction de la machine virtuelle

Nettoyez le système.

sudo apt clean -y && sudo apt autoclean -y && sudo apt autoremove --purge -y

Lancez la commande "fstrim" pour réduire l'espace disque (nécessaire lorsqu'on fait du provisionnement dynamique sur du lvm-thin).

sudo fstrim -av

Pour en savoir plus :

Optimiser la taille des disques virtuels de Proxmox
Cet article vous explique comment réduire l’espace disque physique occupé par vos disques de stockage virtuels. Sous Proxmox, les disques durs virtuels sont dynamiques, c’est à dire que…

Enfin, éteignez votre machine virtuelle.

sudo poweroff

Création d'un template

Ajoutez un lecteur cloud-init dans votre machine virtuelle comme indiqué dans la capture d'écran ci-dessous.

Supprimez le lecteur CD/DVD qui est désormais inutile.

Convertissez votre machine virtuelle en template.

Clone complet et cloné lié

Lorsque vous aurez transformer votre machine virtuelle en template, vous aurez deux choix :

  • Créer un clone complet, une copie carbone 1:1 du template totalement indépendant de ce dernier,
  • Créer un clone lié qui continuera sur l'espace disque du template (idéal pour du HomeLab),

Lorsque vous aurez fait votre choix, il faudra renseigner dans les options de cloud-init les informations suivantes :

  • User : nom du nouvel utilisateur,
  • Password : le mot de passe du nouvel utilisateur,
  • DNS Domain : le nom de domaine du serveur DNS (optionnel),
  • DNS servers : l'adresse IP du DNS (optionnel),
  • SSH public key : la clé SSH de votre poste client pour vous connecté sans mot de passe,
  • IP Config : l'adresse IP statique en IPv4 (ou IPv6) avec la passerelle de votre réseau,

Il suffit de démarrer et cloud-init va initialiser votre instance avec les informations que vous aurez communiqués.

Bonus

Petite astuce bien sympathique que je vous partage. En ajoutant un lecteur USB "Spice Port" à votre machine virtuelle, vous pourrez transférer des fichiers de la clé USB connecté physiquement à votre poste client jusqu'à votre machine virtuelle.

La clé USB (au format ext3/ex4) sera visible dans votre machine virtuelle dans "/media/nomdulecteurusb".

Voir mon tutoriel sur le protocole SPICE pour plus d'informations :

Installer SPICE sur Proxmox VE
Guide d’installation du protocole d’affichage SPICE sur Proxmox VE