Comment se débarrasser de la Terraform Taint

Comment se débarrasser de la Terraform Taint
Terraform Taint fait référence à un marqueur qui définit une ressource gérée par Terraform tel que Tained. Une ressource contaminée signifie que la ressource gérée par Terraform est dans un état mauvais ou indésirable. Si une ressource est marquée comme entaché, Terraform le recréera ou le détruira lors de la prochaine application.

Ce court guide vous apprendra à utiliser la fonctionnalité Terraform Intainst pour supprimer les marqueurs de souillure sur une ressource.

Pourquoi utiliser Terraform Taint?

Bien que l'utilisation de Terraform Taint peut varier en fonction de ce qui doit être fait sur les ressources spécifiées, les utilisations courantes incluent:

  1. Recréer des ressources, comme un moteur de calcul ou une instance EC2 en cas de modifications indésirables.
  2. Reconstruire des ressources sans les détruire, en particulier dans le développement.

Comment entourer une ressource

La commande Terraform Taint vous permet de dire Terraform qu'une ressource / objet spécifique est endommagé ou dans un état contaminé. Comme mentionné, cela obligera Terraform à reconstruire la ressource marquée comme entaché pendant le plan suivant.

Usage

La commande Terraform Taint prend la syntaxe comme indiqué:

Adresse Terraform Taint [Options]

L'adresse fait référence à l'adresse de la ressource / objet pour attribuer le marqueur de souillure. Vous pouvez spécifier une adresse de la ressource à l'aide du format comme indiqué:

aws_instance.foo
aws_instance.bar [1]
module.foo.module.bar.aws_instance.quadriller

Vous pouvez également transmettre les options suivantes à la commande de souillure pour modifier les comportements:

  1. -Autorisation - Le paramètre Autor Kissing obligera la commande à réussir même si la ressource spécifiée est manquante.
  2. -Lock = [bool] - Le paramètre de verrouillage accepte un booléen vrai ou faux. S'il est réglé sur False, il désactivera temporairement le verrou de lecture / écriture de Terraform sur l'état pendant l'exécution.
  3. -Lockout-timeout - force Terraform pour réessayer et obtenir un état de verrouillage pendant une période spécifiée en quelques secondes. Cette fonction est nul si le bloc est défini sur false.

L'exemple suivant montre comment créer une instance EC2 et utiliser la commande Taint pour le marquer comme entaché:

Terraform
requis_providers
aws =
source = "hashicorp / aws"
version = "-> 3.27 "


required_version = "> = 0.12 "

fournisseur "aws"
profil = "par défaut"
région = "US-East-1"

ressource "aws_instance" "database_server"
ami = "ami-b7873e35"
instance_type = "t2.micro "

Marquez la ressource comme entaché:

Terraform Taint Aws_instace.base de données.serveur

Une fois que vous marquez la ressource comme entaché, exécutez la commande Terraform Plan pour voir les modifications qui seront appliquées.

Comment utiliser Terraform Intain

Si vous définissez une ressource telle que contournée, vous pouvez revenir et supprimer le marqueur de souillure à l'aide de la commande Terraform Intain.

La commande prend l'ID de ressource comme argument:

Adresse Terraform Intaind [Options]

Il accepte des arguments similaires à la commande de Terraform Taint.

Par exemple, pour supprimer un marqueur de souillure de la ressource ci-dessus, utilisez la commande suivante:

Terraform Intain.base de données.serveur
plan de terre

La commande précédente supprimera le marqueur de souillure sur la ressource et vous affichera les modifications à appliquer sur la prochaine terraform s'applique

Conclusion

Dans ce guide, vous avez appris les bases de Terraform Taint et le processus pour marquer la ressource comme endommagé. De plus, plusieurs options ont été fournies à la commande Terraform Taint pour modifier les comportements. Nous espérons que vous avez trouvé cet article utile. Veuillez vérifier l'indice de Linux pour plus de conseils et d'informations.