Configuration de l’Environnement
2. Configuration de l’Environnement
-
- Installation de Terraform
- Mise en place de l'environnement Incus
- Configuration du provider Incus dans Terraform
- Premiers pas avec Terraform : création d’un fichier de configuration de base
Installation de Terraform
Pour commencer à utiliser Terraform, il est essentiel de l'installer sur votre machine. Terraform est disponible pour différents systèmes d'exploitation, et son installation est simple.
Étapes d’installation
- Commandes d'installation sur linux
sudo apt update
sudo apt install -y curl wget unzip
# Verifier les version de terraform ici
# https://www.terraform.io/downloads.html
# copier l'url de telechargement
wget https://releases.hashicorp.com/terraform/1.9.8/terraform_1.9.8_linux_amd64.zip
unzip terraform_1.9.8_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform -v
Cela affichera la version installée et confirmera que l'installation s'est déroulée avec succès.
Mise en place de l'environnement Incus
Installation d'Incus
Incus peut être installé facilement sur la plupart des systèmes Linux. Voici les étapes pour configurer Incus sur ubuntu
- Commandes d'installation
curl https://pkgs.zabbly.com/get/incus-stable | sudo bash -x
sudo usermod -a -G incus-admin $USER
sudo usermod -a -G incus $USER
# configurer incus
sudo incus admin init
incus config set core.https_address :8443
sudo apt install -y incus-ui-canonical
incus list
Pour acceder à l'ui de incus accepter le certificat : https://localhost:8443
Suivre les instruction pour generer le certificat et l'importer.
Si docker est installé sur le host incus, il faut executer ces commandes:
# https://localhost:8443/documentation/howto/network_bridge_firewalld/#network-incus-docker
sudo apt-get update
sudo apt-get install iptables-persistent
sudo iptables -I DOCKER-USER -j ACCEPT
sudo iptables -I DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo netfilter-persistent save
Configuration du provider Terraform lxc/incus Terraform
Pour que Terraform interagisse avec Incus, il faut configurer le provider Incus dans les fichiers de configuration. Terraform nécessite l'utilisation de providers pour se connecter à différents services ou infrastructures, et Incus en fait partie.
- Generer un tocken pour l'acces teraform : sudo incus config trust add <nom-token>
sudo incus config trust add home-terraform
sudo incus config trust list
-
Ajout du provider : Dans votre fichier de configuration Terraform, vous devez spécifier le provider Incus. Un fichier basique main.tf pourrait ressembler à ceci :
terraform {
required_providers {
incus = {
source = "lxc/incus"
version = "0.1.4"
}
}
}
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "incus-server-1"
scheme = "https"
address = "10.1.1.8"
# port = "8443"
token = "token"
default = true
}
remote {
name = "incus-server-2"
scheme = "https"
address = "10.1.2.8"
# port = "8443"
token = "token"
}
}
Dans cet exemple :
-
- api_endpoint : Il s'agit de l'adresse de votre serveur Incus.
- client_cert et client_key : Ce sont les certificats nécessaires pour authentifier votre connexion à Incus.
- insecure : Si vous utilisez des certificats auto-signés, cette option permet de contourner les vérifications strictes de certificat.
- Initialisation du provider : Après avoir configuré le provider, vous devez initialiser Terraform pour télécharger les dépendances :
terraform init
Cette commande installe le plugin pour Incus, permettant à Terraform d'interagir avec votre environnement Incus.
Premiers pas avec Terraform : création d’un fichier de configuration de base
Une fois Terraform et Incus configurés, vous pouvez créer un premier fichier de configuration simple pour gérer un conteneur avec Incus. Voici un exemple d’un fichier de configuration basique pour créer un conteneur :
- Generer un token pour terraform
sudo incus config trust add home-terraform
sudo incus config trust list
- Création d’un fichier de configuration : Créez un fichier nommé providers.tf avec le contenu suivant :
terraform {
required_providers {
incus = {
source = "lxc/incus"
version = "0.1.4"
}
}
}
provider "incus" {
accept_remote_certificate = true
generate_client_certificates = true
remote {
name = "incus-server-1"
scheme = "https"
address = "192.168.1.28"
# port = "8443"
token = "eyJjbGllbnRfbmFtZSI6ImhvbWUtdG"
default = true
}
}
- Création d’un fichier main.tf : Créez un fichier nommé main.tf avec le contenu suivant :
resource "incus_instance" "srv-instance" {
count = 2
project = "default"
# Utilisation de l'index pour donner un nom unique à chaque instance
name = "srv-node-0${count.index + 1}"
# Image utilisée pour la création de l'instance
image = "images:ubuntu/22.04"
type = "virtual-machine"
config = {
"boot.autostart" = true
}
limits = {
cpu = 2
}
}
Explication du fichier :
-
- provider "incus" : Configure la connexion à votre environnement Incus.
- resource "incus_container" : Définit un conteneur nommé "example-container", basé sur l’image Ubuntu 20.04.

-
Application de la configuration : Pour créer les vm, exécutez les commandes suivantes:
terraform init
terraform plan
terraform apply
Terraform vous demandera de confirmer l’application des changements. Après confirmation, il provisionnera un conteneur basé sur la configuration.
Vérification :
Vous pouvez vérifier la création du conteneur via l'interface Incus:
incus list

Vous devriez voir le conteneur "example-container" actif dans la liste.
Ou depuis l'url de incus: https://incus_ip:8443

- Supprimer les vm: la command terraform destroy detruit toutes les ressources donc doit être utilisé avec precaution.
terraform destroy
Commentaires
Aucun commentaire pour le moment.