Red Hat, Alma Linux : installer et configurer incus
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.
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.
Dans un premier temps, on s'assure que le système est à jour :
On installera le dépôt EPEL :
Sur les clones de Red Hat Enterprise Linux, on active CRB :
Sur RHEL, c'est Code Ready Builder qu'on active :
Incus étant dans un dépôt COPR, on installe celui-ci :
On va installer incus (outils en ligne de commande) :
On active et on démarre le service :
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.87.195.0/24 soit bien routé dans notre réseau !
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 :
On ajoute une ligne pour l'utilisateur root :
On édite subgid :
On ajoute une ligne pour le groupe root :
On redémarre incus pour prendre en compte tout ça :
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 :
On ajoute le bridge dans la zone :
On dit d'autoriser le trafic :
On recharge le firewall :
Pour lister les images :
On pourra filtrer qu'un système qui nous intéresse, par exemple Alma Linux :
On aura plein d'infos :
Pour créer un conteneur, ici avec une Alma Linux 9 du nom de linuxtricks9 :
Le conteneur est lancé dans la foulée.
Pour lister les conteneurs :
Ce qui renvoie :
Pour rentrer dans le conteneur :
Plus d'infos prochainement dans un article dédié à Incus !
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
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 :
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
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 !