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 :
Copier vers le presse-papierCode BASH :
dnf upgrade


On installera le dépôt EPEL :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode BASH :
dnf config-manager --enable crb


Sur RHEL, c'est Code Ready Builder qu'on active :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode 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) :
Copier vers le presse-papierCode BASH :
dnf install incus incus-tools


On active et on démarre le service :
Copier vers le presse-papierCode BASH :
systemctl enable incus --now


Configuration



Initialisation



Maintenant que incus est installé, on va dans un premier temps l'initialiser :
Copier vers le presse-papierCode BASH :
incus admin init


Je ne souhaite pas utiliser de clustering ou de fonctions avancées, j'ai répondu ainsi aux questions :
Copier vers le presse-papierCode :
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 :
Copier vers le presse-papierCode BASH :
incus list



Qui pour le moment ne renvoie aucune élément, on a rien déployé :
Copier vers le presse-papierCode :
+-----+------+------+------+------+-------------+
| NOM | ÉTAT | IPV4 | IPV6 | TYPE | INSTANTANÉS |
+-----+------+------+------+------+-------------+



Le réseau créé est celui-ci sur le bridge :
Copier vers le presse-papierCode :
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 :
Copier vers le presse-papierCode BASH :
vim /etc/subuid


On ajoute une ligne pour l'utilisateur root :
Copier vers le presse-papierCode :
root:1000000:1000000000


On édite subgid :
Copier vers le presse-papierCode BASH :
vim /etc/subgid


On ajoute une ligne pour le groupe root :
Copier vers le presse-papierCode BASH :
root:1000000:1000000000


On redémarre incus pour prendre en compte tout ça :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode BASH :
firewall-cmd --new-zone=incusbr --permanent


On ajoute le bridge dans la zone :
Copier vers le presse-papierCode BASH :
firewall-cmd --zone=incusbr --add-interface=incusbr0 --permanent


On dit d'autoriser le trafic :
Copier vers le presse-papierCode BASH :
firewall-cmd --zone=incusbr --set-target=ACCEPT --permanent


On recharge le firewall :
Copier vers le presse-papierCode BASH :
firewall-cmd --reload



Utilisation



Lister les images



Pour lister les images :
Copier vers le presse-papierCode BASH :
incus image list images:


On pourra filtrer qu'un système qui nous intéresse, par exemple Alma Linux :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode BASH :
incus list


Ce qui renvoie :
Copier vers le presse-papierCode :
+-------------------+---------+--------------------+------+-----------+-------------+
|        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 :
Copier vers le presse-papierCode BASH :
incus exec linuxtricks9 bash



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