Red Hat et dérivées version SERVEUR

Red Hat, Alma Linux : installer et configurer incus

Table des matières

lxc_logo



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.

Dans cet article, nous allons voir comment l'installer sur Red Hat Enterprise Linux et clones tels qu'Alma Linux.

On n'installera pas la console d'administration Web qui n'est pas documentée sur le site officiel.

L'ensemble des commandes seront exécurées en tant que root.

Prérequis



Dans un premier temps, on s'assure que le système est à jour :
Code BASH :
dnf upgrade


On installera le dépôt EPEL :
Code BASH :
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm


Sur les clones de Red Hat Enterprise Linux, on active CRB :
Code BASH :
dnf config-manager --enable crb


Sur RHEL, c'est Code Ready Builder qu'on active :
Code BASH :
subscription-manager repos --enable "codeready-builder-for-rhel-$(rpm -E %rhel)-x86_64-rpms


Incus étant dans un dépôt COPR, on installe celui-ci :
Code BASH :
dnf copr enable neil/incus


Incus supporte BTRFS et ZFS en plus de LVM et d'un dossier pour le stockage.
Cependant, RHEL et ses clones (hors Oracle Linux) ne supportent pas BTRFS.
Pour utliser ZFS, il faudra mettre en place OpenZFS au besoin, mais ce n'est pas traité dans cet article.


Installation



On va installer incus (outils en ligne de commande) :
Code BASH :
dnf install incus incus-tools


On active et on démarre le service :
Code BASH :
systemctl enable incus --now


Configuration



Initialisation



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
Voulez-vous configurer un nouveau pool de stockage? (yes/no) [default=yes]: yes
Name of the new storage pool [default=default]: 
Name of the storage backend to use (lvm, lvmcluster, dir) [default=dir]: dir
Where should this storage pool store its data? [default=/var/lib/incus/storage-pools/default]: 
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]: 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
Adresses à associé à (sans inclure les ports) [default=all]: all
Port to bind to [default=8443]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: 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 :
+-----+------+------+------+------+-------------+
| NOM | ÉTAT | IPV4 | IPV6 | TYPE | INSTANTANÉS |
+-----+------+------+------+------+-------------+



Le réseau créé est celui-ci sur le bridge :
Code :
3: incusbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:16:3e:df:ca:6d brd ff:ff:ff:ff:ff:ff
    inet 10.87.195.1/24 scope global incusbr0
       valid_lft forever preferred_lft forever


On s'assurera que le réseau 10.87.195.0/24 soit bien routé dans notre réseau !


Configuration utilisateurs



Si on veut utiliser incus en tant que root, il faudra définir les subuid et du subgid de l'utilisateur root.

On édite subuid :
Code BASH :
vim /etc/subuid


On ajoute une ligne pour l'utilisateur root :
Code :
root:1000000:1000000000


On édite subgid :
Code BASH :
vim /etc/subgid


On ajoute une ligne pour le groupe root :
Code BASH :
root:1000000:1000000000


On redémarre incus pour prendre en compte tout ça :
Code BASH :
systemctl restart incus


Configuration firewall



Dans le monde Red Hat, on a un parefeu qui est actif par défaut.
On va devoir autoriser le trafic vers le bridge (incusbr0 précédemment créé).

Création d'une zone incusbr :
Code BASH :
firewall-cmd --new-zone=incusbr --permanent


On ajoute le bridge dans la zone :
Code BASH :
firewall-cmd --zone=incusbr --add-interface=incusbr0 --permanent


On dit d'autoriser le trafic :
Code BASH :
firewall-cmd --zone=incusbr --set-target=ACCEPT --permanent


On recharge le firewall :
Code BASH :
firewall-cmd --reload



Utilisation



Lister les images



Pour lister les images :
Code BASH :
incus image list images:


On pourra filtrer qu'un système qui nous intéresse, par exemple Alma Linux :
Code BASH :
incus image list images:alma


On aura plein d'infos :

incus-cli-images-alma




Créer un conteneur



Pour créer un conteneur, ici avec une Alma Linux 9 du nom de linuxtricks9 :
Code BASH :
incus launch images:almalinux/9 linuxtricks9


Si l'image n'a pas été téléchargée, elle le sera avant la création du conteneur évidemment.

Le conteneur est lancé dans la foulée.

Lister les conteneurs



Pour lister les conteneurs :
Code BASH :
incus list


Ce qui renvoie :
Code :
+-------------------+---------+--------------------+------+-----------+-------------+
|        NOM        |  ÉTAT   |        IPV4        | IPV6 |   TYPE    | INSTANTANÉS |
+-------------------+---------+--------------------+------+-----------+-------------+
| linuxtricks9      | RUNNING | 10.87.195.6 (eth0) |      | CONTAINER | 0           |
+-------------------+---------+--------------------+------+-----------+-------------+


Entrer dans le conteneur



Pour rentrer dans le conteneur :
Code BASH :
incus exec linuxtricks9 bash



Plus d'infos prochainement dans un article dédié à Incus !
Cette page a été vue 243 fois