Incus : installation et configuration pas à pas sur Ubuntu Server
Table des matières
Incus est un projet open-source pour la plateforme de gestion de conteneurs de nouvelle génération. C'est un fork de LXD (l'hyperviseur de conteneurs). Il peut gérer à la fois des conteneurs Linux et des machines virtuelles. Voyons comment installer la version stable du serveur Incus sur Ubuntu.
Lien du projet : https://linuxcontainers.org/incus/
On aura besoin de Ubuntu Server (24.04 dans cet article) et de préférence à jour !
On va installer le dépôt de Zabbly (développeurs d'Incus) : https://github.com/zabbly/incus
Bien que Incus soit disponible dans les dépôts d'Ubuntu, l'interface web UI est proposée par Zabbly !
On vérifie la clé publique :
On récupère la clé publique :
Et on paramètre le dépôt selon la doc :
Vu que incus est aussi présent dans Ubuntu, on va donner une priorité plus élevée à incud du dépôt Zabbly via une préférence apt :
Et on met ceci :
On met à jour la liste des sources :
On va installer incus (outils en ligne de commande) et l'interface web (UI) :
L'interface web est facultative, mais bien pratique quand même !
Maintenant que incus est installé, on va dans un premier temps l'initialiser :
Je ne souhaite pas utiliser de clustering ou de fonctions avancées, j'ai répondu ainsi aux questions :
On peut vérifier que incus fonctionne avec :
Qui pour le moment ne renvoie aucune élément, on a rien déployé :
Le réseau créé est celui-ci sur le bridge :
On s'assurera que le réseau 10.109.243.0/24 soit bien routé dans notre réseau !
On pourra accéder à l'interface web via son nom sur le port 8443 :
https://incusubu.linuxtricks.lan:8443
Si on a un parefeu, on ouvrira le port en conséquence évidemment
L'authentification est faite par certificat, on va créer un nouveau certificat car on en a pas encore :
On protège le certificat par un mot de passe :
On va ensuite télécharger 2 choses :
- Le certificat à importer sur la machine incus
- Le certificat à importer dans notre navigateur
Après avoir copié le certificat sur le serveur avec un petit "scp", on va sur le serveur, importer le certificat :
Et on importe selon la procédure le certificat (.pfx) dans le navigateur.
Vu que je suis sous Vivaldi :
On importe le certificat et le mot de passe est demandé :
On retourne sur l'interface web et on accepte la connexion via certificat :
On va créer une instance (un conteneur) :
On va créer une Alma Linux 9 (il y en a plen de dispo) :
Et après le Create and start, la machine est déployée et est démarrée :
On pourra utiliser nos conteneurs et VMS :
Introduction
Incus est un projet open-source pour la plateforme de gestion de conteneurs de nouvelle génération. C'est un fork de LXD (l'hyperviseur de conteneurs). Il peut gérer à la fois des conteneurs Linux et des machines virtuelles. Voyons comment installer la version stable du serveur Incus sur Ubuntu.
Lien du projet : https://linuxcontainers.org/incus/
Prérequis
On aura besoin de Ubuntu Server (24.04 dans cet article) et de préférence à jour !
On va installer le dépôt de Zabbly (développeurs d'Incus) : https://github.com/zabbly/incus
Bien que Incus soit disponible dans les dépôts d'Ubuntu, l'interface web UI est proposée par Zabbly !
On vérifie la clé publique :
Code BASH :
wget -q -O - https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
On récupère la clé publique :
Code BASH :
mkdir -p /etc/apt/keyrings/ wget -O /etc/apt/keyrings/zabbly.asc https://pkgs.zabbly.com/key.asc
Et on paramètre le dépôt selon la doc :
Code BASH :
sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources Enabled: yes Types: deb URIs: https://pkgs.zabbly.com/incus/stable Suites: $(. /etc/os-release && echo ${VERSION_CODENAME}) Components: main Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/zabbly.asc EOF'
Vu que incus est aussi présent dans Ubuntu, on va donner une priorité plus élevée à incud du dépôt Zabbly via une préférence apt :
Code BASH :
nano /etc/apt/preferences.d/zabbly
Et on met ceci :
Code TEXT :
Package: * Pin: origin pkgs.zabbly.com Pin-Priority: 1001
On met à jour la liste des sources :
Code BASH :
apt update
Installation
On va installer incus (outils en ligne de commande) et l'interface web (UI) :
Code BASH :
apt install incus incus-ui-canonical
L'interface web est facultative, mais bien pratique quand même !
Configuration
Initialisation d'Incus
Maintenant que incus est installé, on va dans un premier temps l'initialiser :
Code BASH :
incus admin init
Je ne souhaite pas utiliser de clustering ou de fonctions avancées, j'ai répondu ainsi aux questions :
Code :
Would you like to use clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: yes
Name of the new storage pool [default=default]:
Name of the storage backend to use (btrfs, dir, lvm, lvmcluster) [default=btrfs]:
Create a new BTRFS pool? (yes/no) [default=yes]:
Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]:
Size in GiB of the new loop device (1GiB minimum) [default=5GiB]: 18GiB
Would you like to create a new local network bridge? (yes/no) [default=yes]: yes
What should the new bridge be called? [default=incusbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like the server to be available over the network? (yes/no) [default=no]: yes
Address to bind to (not including port) [default=all]:
Port to bind to [default=8443]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]:
On peut vérifier que incus fonctionne avec :
Code BASH :
incus list
Qui pour le moment ne renvoie aucune élément, on a rien déployé :
Code :
+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+
Le réseau créé est celui-ci sur le bridge :
Code TEXT :
3: incusbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:18:7c:b4 brd ff:ff:ff:ff:ff:ff inet 10.109.243.1/24 scope global incusbr0 valid_lft forever preferred_lft forever
On s'assurera que le réseau 10.109.243.0/24 soit bien routé dans notre réseau !
Paramétrage de l'interface web
On pourra accéder à l'interface web via son nom sur le port 8443 :
https://incusubu.linuxtricks.lan:8443
Si on a un parefeu, on ouvrira le port en conséquence évidemment

Code BASH :
ufw allow 8443
L'authentification est faite par certificat, on va créer un nouveau certificat car on en a pas encore :
On protège le certificat par un mot de passe :
On va ensuite télécharger 2 choses :
- Le certificat à importer sur la machine incus
- Le certificat à importer dans notre navigateur
Après avoir copié le certificat sur le serveur avec un petit "scp", on va sur le serveur, importer le certificat :
Code BASH :
incus config trust add-certificate incus-ui.crt
Et on importe selon la procédure le certificat (.pfx) dans le navigateur.
Vu que je suis sous Vivaldi :
Code :
chrome:/settings/certificates
On importe le certificat et le mot de passe est demandé :
On retourne sur l'interface web et on accepte la connexion via certificat :
Créer une instance
On va créer une instance (un conteneur) :
On va créer une Alma Linux 9 (il y en a plen de dispo) :
Et après le Create and start, la machine est déployée et est démarrée :
On pourra utiliser nos conteneurs et VMS :