2017-08-08 4 views
0

Dans Azure ARM, je peux avoir Infrastructure comme code, et en utilisant un déploiement incrémentiel, si quelqu'un entre en contact avec la configuration ARM (par exemple, supprime une machine virtuelle dans le modèle ARM), cela ne fonctionnera pas. la suppression (nous pouvons le faire manuellement et ajuster le modèle ARM après).Existe-t-il une option pour appliquer Terraform de manière incrémentielle? par exemple. Non-destructif (similaire à l'option incrémentielle Azure ARM)

Existe-t-il une option similaire dans Terraform? En regardant dans stackoverflow il ne semble pas que cela rende cette approche risquée pour l'utilisation opérationnelle pour nous (mais bon pour les environnements internes/démos).

Y a-t-il une approche appropriée à moindre risque avec Terraform? par exemple. éviter les suppressions accidentelles de ressources.

Répondre

1

Je ne sais pas ce que vous entendez par « application progressive », mais le plan d'application d'un soutien Terraform, donc ce que vous devez faire est:

terraform plan -out=plan 

Cela affichera des changements qui seront effectués à votre infrastructure et créer fichier plan qui les décrit. Après cela, vous pouvez juste tirer

terraform apply plan 

Et ce effectuerez un plan donné que si l'état de l'infrastructure n'a pas changé depuis la création de plan.

0

Vous ne savez pas comment fonctionne Azure ARM, mais pour éviter toute suppression accidentelle, vous pouvez utiliser l'indicateur prevent_destroy dans le bloc de cycle de vie des ressources/modules requis.

https://www.terraform.io/docs/configuration/resources.html#lifecycle

https://www.terraform.io/docs/configuration/resources.html#prevent_destroy

prevent_destroy (bool) - Ce drapeau offre une protection supplémentaire contre la destruction d'une ressource donnée. Lorsque ce paramètre est défini sur true, tout plan qui inclut une destruction de cette ressource renvoie un message d'erreur .