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.
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
- Cliquez sur "Download from URL",
- Dans "URL", ajoutez le lien suivant : https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso et validez en cliquant sur "Query URL",
- Puis cliquez sur "Download" pour télécharger l'ISO,
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 :
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 :
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 :
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" :
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 :
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 :