2017-09-20 4 views
2

J'ai créé une pile terraform pour toutes les ressources requises que nous utilisons pour créer un centre de données virtuel dans AWS. VPC, sous-réseau, groupes de sécurité, etc.Terraform Stack

Tout fonctionne à merveille :). J'ai un argument constant avec les ingénieurs de réseau qui veulent avoir un état complètement séparé pour le réseautage etc. En conséquence, nous devons gérer plusieurs fichiers d'état et il faut 10 à 15 terraform planifier/appliquer des commandes pour être dans le centre de données . Non seulement devons-nous exécuter les commandes plusieurs fois, nous ne pouvons pas référencer les variables de sortie du module lors de la création d'instances ec2 etc, donc maintenant il y a des variables "magiques" apparaissant dans les fichiers variables. Je veux mettre les scripts pour créer les instances ec2, els etc dans le même répertoire que la configuration "data center" pour que nous gérions un fichier d'état (crypté en s3 avec dynamodb lock) et que notre repo git a un à un relation avec notre infrastructure. Il y a aussi l'avantage supplémentaire qu'un plan terraform/apply unique va construire l'ensemble du centre de données en une seule commande. Question est vraiment, est-ce une bonne idée de gérer les ressources du centre de données (vpc, sous-réseaux, groupes de sécurité) et de calculer les ressources dans un seul fichier d'état? Y a-t-il des problèmes que je pourrais rencontrer? Quelqu'un at-il l'expérience de la gestion d'un environnement AWS avec terraform de cette façon?

Cordialement, David

Répondre

2

Pour commencer par le Terraform provider let de vous les variables de sortie d'accès d'autres fichiers d'état afin que vous ne devez pas utiliser des variables magiques. Le reste est juste une question de style. Souffrez-vous fréquemment toute l'infrastracture du datacenter? Si oui, vous pouvez envisager de le faire dans un projet. Si d'un autre côté, vous ne modifiez que certaines choses, vous pouvez le rendre plus modulaire en vous basant sur les résultats d'autres projets. En les gardant séparés, cela rend la planification plus rapide et évite une erreur très coûteuse.