Enterprise File Storage - Gestion avec Terraform
Objectif
Enterprise File Storage est une solution de stockage qui vous permet de provisionner des volumes NFS entièrement gérés par OVHcloud. Terraform est un outil d'infrastructure-as-code qui automatise la provision de ressources.
Dans ce guide, vous apprendrez à utiliser le provider Terraform d'OVHcloud pour gérer les volumes de votre solution Enterprise File Storage (EFS), les snapshots et plus encore.
Dans ce guide, les termes suivants sont utilisés de manière interchangeable :
- Un volume est également appelé share
- Un instantané est également appelé snapshot
- Une liste de contrôle d'accès est également appelée ACL
Prérequis
- Terraform >= 0.17.1
- Provider Terraform OVHcloud >= v2.5.0
- Avoir accèss aux API OVHcloud
- Avoir un service Enterprise File Storage dans votre compte OVHcloud. Le service peut être commandé depuis la page produit ou depuis l'espace client OVHcloud.
En pratique
Configurer le provider Terraform d'OVHcloud
Générer un token d'accès API
Le provider Terraform d'OVHcloud doit être configuré avec un token d'API afin de pouvoir faire des appels à aux API OVHclod.
Le token API doit avoir les permissions suivantes :
- GET
/storage/netapp/* - POST
/storage/netapp/* - PUT
/storage/netapp/* - DELETE
/storage/netapp/*
Vous pouvez suivre le guide Premiers pas avec les API OVHcloud pour générer votre token d'API.
Une fois le token généré, sauvegardez les informations du token pour pouvoir l'utiliser avec le provider Terraform d'OVHcloud.
Récupérer l'ID d'un service
L'ID d'un service peut être obtenu depuis les API OVHcloud ou via l'espace client OVHcloud.
Si vous n'êtes pas familiarisé avec l'utilisation des API OVHcloud, veuillez consulter notre guide sur les Premiers pas avec les API OVHcloud.
- Méthode API : Appelez
GET /storage/netapp
- Méthode via l'espace client OVHcloud : Accédez à la section Enteprise File Storage
Configurer le provider Terraform OVHcloud
Créez un fichier provider .tf définissant la configuration du provider OVHcloud :
Créez ensuite un fichier variables.tf définissant les variables qui seront utilisées dans vos fichiers .tf :
À propos de la variable ovh.endpoint : par défaut, ovh-eu est défini car nous effectuons des appels aux API OVHcloud Europe.
D'autres valeurs existent pour cette variable, en fonction de vos besoins :
ovh-eupour les API OVHcloud Europeovh-capour les API OVHcloud Amérique / Asie
Finalement, créez un fichier secrets.tfvars contenant les valeurs de variables requises :
N'oubliez pas de remplacer <application_key>, <application_secret> et <consumer_key> avec les informations de votre token API obtenu précédemment.
Maintenant, vous pouvez initaliser Terraform :
La commande init initialisera votre répertoire de travail qui contient les fichiers de configuration .tf.
C'est la première commande à exécuter pour une nouvelle configuration, ou après avoir récupéré une configuration existante depuis un dépôt Git, par exemple.
La commande init téléchargera les providers Terraform nécessaires et configurera l'environnement de travail.
Une fois l'initialisation réussie, vous êtes maintenant en mesure de gérer les ressources et les sources de données d'une offre Enterprise File Storage qui sont disponibles à l'intérieur du provider Terraform OVHcloud.
Gestion des services
Récupérer les informations d'un service
La source de données ovh_storage_efs permet de récupérer les détails d'un service.
Créez un fichier main.tf :
Définissez les outputs dans un fichier output.tf :
Exécutez la commande terraform apply pour voir le résultat :
Gestion des volumes
Le provider Terraform OVHcloud permet les opérations de gestion de volume suivantes : création, modification et suppression.
La ressource ovh_storage_efs_share représente un volume.
Créer un volume
Définissez un volume à l’intérieur de votre fichier main.tf :
Propriétés supplémentaires :
- Un chemin de montage personnalisé peut être spécifié en utilisant la propriété
mount_path - Le volume peut être créé à partir d'un snapshot existant en utilisant la propriété
snapshot_id
Exécutez la commande terraform plan afin de créer un plan d'exécution :
Points clés :
- La commande
terraform planva créer un plan d'exécution mais ne l'exécutera pas. Au lieu de cela, elle déterminera les actions nécessaires pour créer la configuration spécifiée à l'intérieur de vos fichiers de configuration. Cela vous permettra de vérifier si votre plan d'exécution correspond à vos attentes avant d'apporter des modifications aux ressources réelles. - Le paramètre facultatif
-outvous permet de spécifier un fichier de sortie pour le plan. Il garantit que le plan que vous avez examiné sera le même que celui qui est appliqué.
Une fois que vous avez examiné le plan d'exécution, exécutez terraform apply pour apporter des modifications :
Votre volume est désormais créé.
Modifier un volume
Le nom (name), la description (description) et la taille (size) d'un volume peuvent être mis à jour.
Une fois que la (ou les) valeur(s) est (sont) mise(s) à jour dans votre fichier main.tf, appliquez les modifications en utilisant terraform apply.
Supprimer un volume
Pour supprimer votre volume, utilisez la commande terraform destroy.
Si votre volume a des snapshots de type manual qui ne sont pas référencés par Terraform, ils doivent être supprimés avant que le volume ne soit supprimé.
Obtenir des informations sur les chemins d'access d'un volume
Pour récupérer des informations sur un ou tous les chemins d'accès d'un volume, utilisez respectivement les sources de données ovh_storage_efs_share_access_paths et ovh_storage_efs_share_access_path.
Créez ou ajoutez au fichier main.tf existant le contenu suivant :
Vous pouvez (ré)utiliser un volume qui existe déjà (dans votre configuration Terraform ou non).
Définissez les outputs dans un fichier output.tf :
Exécutez la commande terraform apply pour ajouter les sources de données et afficher les outputs :
Gestion des snapshots
Le provider Terraform OVHcloud permet les opérations de gestion de snapshots suivantes : création, modification et suppression.
ovh_storage_efs_share_snapshot représente un snapshot.
Créer un snapshot
Définissez un snapshot à l'intérieur de votre fichier main.tf :
Vous pouvez (ré)utiliser un volume qui existe déjà (dans votre configuration Terraform ou non) pour créer votre snapshot.
La ressource time_sleep gère le délai entre la suppression du snapshot et la suppression du volume. Le snapshot doit être supprimé avant que le volume puisse être supprimé.
Si n'avez pas déjà installé le provider Terraform hashicorp/time, vous devrez exécuter terraform init -upgrade pour le télécharger avant de lancer la commande terraform plan.
Exécutez la commande terraform plan afin de créer un plan d'exécution :
Points clés :
- La commande
terraform planva créer un plan d'exécution mais ne l’exécutera pas. Au lieu de cela, elle déterminera les actions nécessaires pour créer la configuration spécifiée à l'intérieur de vos fichiers de configuration. Cela vous permettra de vérifier si votre plan d'exécution correspond à vos attentes avant d'apporter des modifications aux ressources réelles. - Le paramètre facultatif
-outvous permet de spécifier un fichier de sortie pour le plan. Il garantit que le plan que vous avez examiné sera le même que celui qui est appliqué.
Une fois que vous avez examiné le plan d'exécution, exécutez terraform apply pour apporter des modifications :
Votre snapshot est désormais créé.
Modifier un snapshot
Le nom (name) et la description (description) d'un snapshot peuvent être mis à jour.
Une fois que la (ou les) valeur(s) est (sont) mise(s) à jour dans votre fichier main.tf, appliquez les modifications en utilisant terraform apply.
Supprimer un snapshot
Pour supprimer votre snapshot, utilisez la commande terraform destroy.
Gestion des ACLs
Le provider Terraform OVHcloud permet les opérations de gestion des ACL suivantes : création et suppression.
La ressource ovh_storage_efs_share_acl représente une ACL.
Créer une ACL
Définissez une ACL dans le fichier main.tf :
Vous pouvez (ré)utiliser un volume qui existe déjà (dans votre configuration Terraform ou non) pour créer une ACL.
Exécutez la commande terraform plan afin de créer un plan d'exécution :
Points clés :
- La commande
terraform planva créer un plan d'execution mais ne l’exécutera pas. Au lieu de cela, elle déterminera les actions nécessaires pour créer la configuration spécifiée à l'intérieur de vos fichiers de configuration. Cela vous permettra de vérifier si votre plan d'exécution correspond à vos attentes avant d'apporter des modifications aux ressources réelles. - Le paramètre facultatif
-outvous permet de spécifier un fichier de sortie pour le plan. Il garantit que le plan que vous avez examiné sera le même que celui qui est appliqué.
Une fois que vous avez examiné le plan d'exécution, exécutez terraform apply pour apporter les modifications :
Votre ACL est désormais créée.
Supprimer une ACL
Pour supprimer votre ACL, utilisez la commande terraform destroy.
Erreurs fréquentes
- Problèmes d'authentification : Vérifiez les informations d'identification des API et les autorisations.
- Limites de ressources : Vérifiez l'utilisation des quotas de volumes/snapshots dans le gestionnaire OVHcloud.
- Problèmes de suppression de volume : Assurez-vous que tous les snapshots de type
manualsont supprimés avant de supprimer le volume.
Aller plus loin
Enterprise File Storage - API Quickstart
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Échangez avec notre communauté d'utilisateurs.