Utiliser OVHcloud Object Storage comme Backend Terraform pour stocker votre état (state) Terraform
Objectif
Il est possible de stocker l’état de Terraform sur un datastore/backend distant comme un bucket AWS S3, un Google Cloud Storage (GCS), etc. Mais savez-vous que vous pouvez également stocker vos états Terraform sur un conteneur Object Storage OVHcloud ?
Dans ce tutoriel, vous allez :
- Créer un conteneur Object Storage
- Créer un backend Terraform distant
- Initialiser votre backend Terraform
Prérequis
- Une instance Public Cloud dans votre compte OVHcloud
- Installation de la CLI Terraform
Accès à l'espace client OVHcloud
- Lien direct : Projets Public Cloud
- Pour accéder à vos services :
Public Cloud> Sélectionnez votre projet
Avant de commencer
- Vous devez avoir installé Terraform CLI, version 0.12.x minimum, sur votre machine. Vous pouvez l'installer en suivant les instructions d'installation détaillées ou avec l'outil tfenv.
Terraform
Terraform est un outil open source d’Infrastructure as Code (IaC) créé par Hashicorp en 2014 et écrit en Go. Il a pour but de construire, de modifier et de contrôler la version de votre infrastructure. Vous pouvez définir et provisionner votre infrastructure en écrivant la définition de vos ressources dans Hashicorp Configuration Language (HCL).
Cet outil dispose d’une interface de ligne de commande (CLI) puissante et très intuitive. Si vous souhaitez tirer parti de vos connaissances sur Terraform CLI, consultez l'aide-mémoire.
Chez OVHcloud, nous avons créé un provider Terraform qui vous permet d'interagir et de gérer les ressources OVHcloud.
Terraform states et backend
Terraform a plusieurs concepts, dont celui de state (état).
Un état Terraform est un snapshot de votre infrastructure depuis la dernière exécution de la commande terraform apply.
Par défaut, le fichier d'état est stocké localement dans un fichier terraform.tfstate.
Mais l’usage courant, en environnement de production, est de le stocker à distance.
Par exemple, vous pouvez stocker votre état Terraform sur un conteneur Object Storage High Performance d’OVHcloud.
Pour ce faire, vous devez configurer un backend dans vos fichiers de configuration Terraform HCL.
Les états Terraform ne sont pas chiffrés lorsqu'ils sont stockés dans un conteneur Object Storage.
Instructions
Création d'un conteneur/bucket Object Storage
Vous devez d’abord disposer d’un conteneur Object Storage. Si ce n’est pas le cas, suivez le tutoriel de création d’un conteneur Object Storage.
Pour ce guide, notre conteneur Object Storage est nommé terraform-state-hp, sa classe de stockage est High Performance et sa région est GRA.
Afin de stocker vos états Terraform sur un Object Storage, et généralement si vous souhaitez interagir avec l'Object Storage, vous devez avoir les droits pour gérer un Object Storage.
À cette étape de ce tutoriel, vous devez donc disposer d'un conteneur High Performance Object Storage et d'un utilisateur. Vous devez également pouvoir interagir avec la CLI aws et lister les conteneurs High Performance Object Storage d’OVHcloud auxquels l’utilisateur est lié :
Initialisation de la configuration de Terraform
Créez un fichier backend.tf avec le contenu suivant :
Avant Terraform version 1.6.0:
Après Terraform version 1.6.0:
Dans ce fichier, vous définissez un backend Object Storage Terraform dans la région gra. N'hésitez pas à modifier ce paramètre si vous avez créé un conteneur Object Storage dans une autre région.
Terraform Init
Vous pouvez maintenant initialiser votre configuration Terraform avec la commande terraform init.
La commande terraform init permet d'initialiser un répertoire de travail contenant les fichiers de configuration Terraform. Il s’agit de la première commande à exécuter après l’écriture d’une nouvelle configuration Terraform ou le clonage d’une configuration existante à partir du contrôle de version. Il est sûr d'exécuter cette commande plusieurs fois.
Cette commande initialise le backend (état distant ou local).
Après avoir exécuté cette commande, vous devriez obtenir un résultat comme ceci :
Il est maintenant possible de définir vos fichiers de configuration et providers/fournisseurs Terraform et, après l'exécution de la commande terraform apply, votre fichier d'état Terraform sera stocké dans un conteneur de l'Object Storage d'OVHcloud.
Aller plus loin
Échangez avec notre communauté d'utilisateurs.