Aller au contenu principal
Sommaire de la formation

Configuration de l’Environnement

coolibra415 vues

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

Connectez-vous pour rejoindre la discussion.

Aucun commentaire pour le moment.