Sélectionner une page

Formation > Blog > Terraform > Comment maîtriser la commande terraform apply : Le guide ultime

terraform apply

Terraform a révolutionné la gestion d’infrastructures, permettant de déployer, modifier et gérer les ressources cloud via une approche d’infrastructure as code. Parmi les commandes essentielles, terraform apply joue un rôle clé. Cet article vous aidera à mieux comprendre la commande, à l’utiliser efficacement, et à éviter les pièges courants.

Avant de commencer

Vous souhaitez devenir expert en gestion des infrastructures réseau ? Notre formation Terraform de 3 jours vous permettra de maitriser l’approvisionnement en mode infra-as-code et de déployer le tout sur votre cloud préféré.

L’équipe Ambient IT

La commande terraform apply applique les changements définis dans les fichiers de configuration Terraform (fichiers .tf). Ces changements peuvent concerner la création, la mise à jour ou la suppression de ressources cloud. En combinant les commandes terraform plan et terraform apply, vous pouvez d’abord visualiser les modifications proposées, puis les appliquer en toute confiance.

Voici la commande de base :

terraform apply

Ce simple appel déploiera ou mettra à jour votre infrastructure selon la configuration spécifiée dans les fichiers Terraform. Cependant, son utilisation va bien au-delà de ce seul appel.

Les options avancées de Terraform apply

Pour les utilisateurs plus expérimentés de Terraform, plusieurs options peuvent grandement améliorer le contrôle et la sécurité lors de l’application des changements. Voici quelques-unes des plus utiles :

1. -auto-approve

Cette option supprime l’interaction utilisateur et approuve automatiquement les modifications. Elle est utile pour automatiser des déploiements dans des pipelines CI/CD.

terraform apply -auto-approve

Utilisation recommandée : L’option est idéale dans les environnements où les changements ont déjà été validés via des tests automatisés. Cependant, son utilisation en production peut être risquée, car elle supprime une couche de vérification manuelle.

2. -lock

Lors de l’exécution de terraform apply, Terraform verrouille automatiquement l’état pour éviter que plusieurs utilisateurs n’appliquent simultanément des modifications sur la même infrastructure. Cependant, dans certains cas, vous pourriez souhaiter désactiver cette fonctionnalité avec l’option -lock=false.

terraform apply -lock=false

Cela peut être utile dans des scénarios où un verrou bloqué ne peut pas être libéré correctement, mais cette option doit être utilisée avec précaution pour éviter des conflits sur l’état des ressources.

3. -parallelism

Terraform applique par défaut les modifications de ressources en parallèle. L’option -parallelism permet de limiter le nombre de ressources modifiées simultanément.

terraform apply -parallelism=5

C’est particulièrement utile pour éviter les surcharges de l’API des fournisseurs cloud ou pour gérer les dépendances entre les ressources.

terraform apply -parallelism=5

C’est particulièrement utile pour éviter les surcharges de l’API des fournisseurs cloud ou pour gérer les dépendances entre les ressources.

Meilleures pratiques pour utiliser terraform apply

1. utilisez ‘Terraform plan’ avant d’appliquer vos modifications

Il est impératif de ne jamais lancer un terraform apply sans avoir d’abord exécuté un terraform plan. Ce dernier génère un plan détaillant toutes les modifications qui seront apportées à l’infrastructure, et vous permet de les valider avant leur application.

terraform plan

Cela permet de s’assurer que les changements à appliquer correspondent aux attentes et d’éviter les mauvaises surprises.

2. Utilisez des workspaces pour séparer les environnements

Terraform propose des workspaces qui permettent de gérer plusieurs environnements (production, staging, développement) à partir du même ensemble de fichiers de configuration. Cela réduit le risque de modifier accidentellement l’infrastructure de production.

terraform workspace new production
terraform apply

En utilisant des workspaces, vous pouvez tester des modifications dans un environnement de staging avant de les déployer en production.

3. Versionnez et sauvegardez le fichier d’état

Le fichier d’état (terraform.tfstate) est essentiel pour suivre les ressources créées. Assurez-vous qu’il est bien sauvegardé et versionné, surtout si vous travaillez en équipe. Les outils comme Amazon S3 ou GCS peuvent être utilisés pour stocker cet état de manière sécurisée et partagée.

Les erreurs courantes et comment les éviter

Malgré sa simplicité d’utilisation, terraform apply peut facilement être mal utilisé. Voici quelques erreurs courantes et comment les éviter :

  1. Appliquer des modifications sur le mauvais environnement
    Cela arrive souvent lorsque les workspaces ne sont pas correctement configurés. Assurez-vous toujours que vous êtes dans le bon workspace avant d’exécuter terraform apply. Une bonne pratique consiste à intégrer cette vérification dans vos pipelines CI/CD pour éviter les erreurs humaines.
  2. Des modifications imprévues
    Ne pas exécuter terraform plan peut entraîner l’application de modifications non prévues, comme la suppression ou la création accidentelle de ressources. Toujours valider les changements avant de les appliquer.
  3. Mauvaise gestion des fichiers de variables
    Les fichiers de variables (variables.tf et terraform.tfvars) permettent de rendre la configuration plus dynamique. Cependant, une mauvaise gestion de ces fichiers peut entraîner l’application de paramètres incorrects sur des ressources sensibles.

Cas pratiques et scénarios avancés

Voici quelques exemples concrets d’utilisation avancée de terraform apply dans des environnements complexes.

  1. Automatisation via CI/CD
    Dans un environnement CI/CD, il est courant d’intégrer Terraform pour automatiser le déploiement d’infrastructures. Par exemple, vous pouvez configurer un pipeline avec Jenkins ou GitLab CI pour exécuter terraform plan et terraform apply automatiquement à chaque commit dans une branche spécifique.
  2. Gestion d’environnements multi-cloud
    Terraform est agnostique en termes de fournisseurs cloud. Vous pouvez donc gérer simultanément des ressources AWS, Google Cloud, ou Azure via un seul jeu de fichiers. L’application de modifications avec terraform apply devient alors un élément clé dans la gestion d’infrastructures hybrides.

terraform apply -var-file=env/production.tfvars

Sécurisation de terraform apply

L’utilisation de Terraform dans des environnements critiques nécessite de mettre en place des mesures de sécurité supplémentaires pour garantir que seules les modifications validées soient appliquées. Voici quelques outils et stratégies que vous pouvez adopter :

  1. Terraform Sentinel
    Sentinel est un outil qui permet de définir des politiques pour contrôler les modifications d’infrastructure. Vous pouvez créer des règles qui valident les configurations avant d’appliquer les modifications.
  2. Open Policy Agent (OPA)
    OPA permet de gérer les politiques de sécurité dans vos pipelines CI/CD en validant les modifications proposées avant leur application.

Conclusion

Maîtriser la commande terraform apply est essentiel pour garantir des déploiements d’infrastructure sûrs et efficaces. En adoptant les bonnes pratiques et en utilisant les options avancées, vous pouvez minimiser les risques et maximiser l’efficacité de vos workflows Terraform. Que vous soyez dans un environnement de développement ou de production, la rigueur et la vigilance sont de mise pour éviter des erreurs coûteuses.

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp