Grâce à l’infrastructure en tant que code (IaC), les organisations peuvent automatiser et gérer leur infrastructure informatique de manière évolutive et cohérente. Avec des entreprises technologiques et des fournisseurs de cloud qui proposent différents outils IaC, Terraform by HashiCorp se distingue par son approche déclarative de la mise en service et de la gestion des ressources cloud. L’actualisation terraforme est une fonctionnalité intéressante de la suite de commandes Terraform, qui joue un rôle essentiel pour s’assurer que l’état de l’infrastructure s’aligne sur les fichiers de configuration.
Cet article aborde la mise à jour terraforme, son importance dans la gestion de l’infrastructure et la manière de l’utiliser efficacement.
Comprendre Terraform Refresh
L’actualisation Terraform synchronise votre fichier d’état Terraform avec l’état actuel de votre infrastructure gérée par Terraform. Imaginez votre fichier d’état Terraform comme un plan décrivant la configuration souhaitée pour votre infrastructure. Cependant, des modifications manuelles peuvent être apportées directement à l’infrastructure au fil du temps, en dehors du contrôle de Terraform. L’actualisation Terraform comble ce fossé en actualisant le fichier d’état pour refléter ces modifications concrètes.
L’objectif principal de l’actualisation terraforme est de détecter toute dérive entre l’état réel des ressources et l’état souhaité, tel que défini dans les fichiers de configuration. Cette dérive peut survenir en raison de modifications manuelles apportées à l’infrastructure en dehors de Terraform ou de modifications de l’environnement de l’infrastructure lui-même.
Comment utiliser Terraform Refresh
L’actualisation terraforme est simple. La syntaxe de commande est la suivante :
$ terraform refresh
Cette commande demande à Terraform d’actualiser le fichier d’état pour toutes les ressources actuellement gérées dans votre configuration Terraform. Il est important de noter que l’actualisation terraforme ne met à jour que le fichier d’état, elle n’apporte aucune modification à votre infrastructure réelle.
Supposons que vous ayez une configuration Terraform qui fournit une instance de compartiment AWS S3 . Voici un exemple de fichier de configuration (main.tf) :
provider "aws" {
region = "us-west-2"
}
resource "aws_s3_bucket" "example" {
bucket = "my-unique-bucket-name"
acl = "private"
}
Pour appliquer cette configuration et créer le compartiment S3, vous devez exécuter les opérations suivantes :
$ terraform init
$ terraform apply
Si des modifications sont apportées au compartiment S3 directement via la console AWS ou l’API , l’exécution de l’actualisation terraforme mettra à jour le fichier d’état pour refléter ces modifications :
$ terraform refresh
Options et indicateurs supplémentaires
- entrée : Si défini sur faux, désactive l’entrée interactive lorsque Terraform a besoin d’une entrée utilisateur
- état : Spécifie un fichier d'état personnalisé à utiliser pour l'opération
Voici un exemple de leur utilisation :
$ terraform refresh -input=false -state="custom_state.tfstate"
Avantages de Terraform Refresh
Il existe plusieurs avantages à intégrer une actualisation terraforme dans votre flux de travail de gestion de l’infrastructure, dont certains sont :
- Amélioration de la précision du plan : En actualisant le fichier d’état, l’actualisation terraforme garantit que les résultats de votre plan terraforme reflètent précisément les modifications souhaitées pour aligner votre infrastructure sur votre configuration Terraform. Cela élimine le risque de proposer des modifications inutiles basées sur des informations obsolètes.
- Visibilité renforcée de l’infrastructure : L’actualisation Terraform vous donne une image claire de l’état actuel de votre infrastructure. Cette transparence vous permet d’identifier toute divergence entre votre code et l’infrastructure réelle, ce qui vous permet de prendre des mesures correctives si nécessaire.
- Gestion rationalisée de l’infrastructure : Terraform Refresh simplifie la gestion de l’infrastructure en maintenant votre fichier d’état Terraform à jour. Vous pouvez appliquer des modifications de configuration en toute confiance, en sachant que votre fichier d’état reflète précisément l’infrastructure sous-jacente.
Bonnes pratiques d’utilisation de Terraform Refresh
Voici quelques bonnes pratiques à garder à l’esprit lors de l’utilisation de l’actualisation terraforme :
- Avant Terraform v0.15.4 : Dans les versions antérieures, l’actualisation terraforme a directement mis à jour votre fichier d’état. Cependant, ce comportement est désormais considéré comme obsolète en raison de problèmes de sécurité potentiels. Il est recommandé d’utiliser terraform apply -refresh-only à la place. Cette approche vous invite à confirmer avant de finaliser l’actualisation, ce qui vous permet d’examiner les modifications avant qu’elles ne soient appliquées au fichier d’état.
- -auto-approbation : Bien que certains documents puissent faire référence à l’indicateur d’approbation automatique avec actualisation terraforme, cet indicateur est également obsolète et doit être évité. Il contourne la confirmation et peut entraîner des conséquences imprévues.
- Utilisation prévue : Il est généralement recommandé d’utiliser l’actualisation terraforme de manière stratégique, en particulier avant d’exécuter un plan terraforme ou des commandes d’application terraforme. Cela garantit que votre plan reflète l’état le plus récent de l’infrastructure.
- Intégration du contrôle de version : Envisagez d’intégrer votre configuration Terraform à un système de contrôle de version comme Git. Cela vous permet de suivre les modifications apportées à votre code Terraform et de revenir aux versions précédentes si nécessaire. Cela devient particulièrement important si une actualisation terraforme révèle des divergences inattendues.
- Mise à jour limitée du périmètre : Si vous souhaitez uniquement actualiser une ressource ou un module spécifique dans votre configuration Terraform, vous pouvez utiliser l’indicateur -target avec l’actualisation terraforme. Cette approche ciblée peut être utile pour gérer des déploiements d’infrastructure volumineux et complexes.
- Comprendre l’impact potentiel : Bien que l’actualisation terraforme mette à jour le fichier d’état, elle ne modifie pas votre infrastructure. Cependant, l’actualisation de l’état peut révéler des différences entre l’état souhaité (défini dans votre configuration Terraform) et l’état réel de votre infrastructure. Préparez-vous à corriger toute divergence après avoir actualisé le fichier d’état.
Conclusion
L’actualisation Terraform joue un rôle essentiel dans le maintien de la cohérence entre votre configuration Terraform et votre infrastructure réelle. En synchronisant vos fichiers d’état, vous vous assurez que vos plans sont exacts et que la gestion de votre infrastructure est rationalisée.
Pour des solutions de stockage avancées qui complètent votre infrastructure gérée par Terraform, optez pour des offres Pure Storage telles que Portworx® pour Kubernetes et Pure Cloud Block Store™ pour diverses charges de travail de conteneurs. Ces solutions offrent des capacités de gestion des données robustes qui peuvent renforcer la fiabilité et l’efficacité de votre infrastructure cloud.