Al tener un entorno local para hacer pruebas en Terraform te puedes ayudar de un archivo llamado terraform.tfvars para hospedar ahí todas las variables que requieres al trabajar.

De esta manera te evitarás tener que declarar los valores por defecto en cada una de las variables lo cual no es una buena práctica en lo absoluto. El problema viene cuando debes insertar información sensible como algún secreto o cuando tú debes trabajar en un entorno de pruebas pero al colocar tu proyecto en un control de versiones lo debes hacer en un entorno productivo, en fin, cualquiera que sea la situación, debes saber que lo mejor es crear un archivo .tfvars con un nombre diferente que te permita tener toda tu configuración del entorno local que vas a utilizar. Yo acabo de crear uno llamado localDev.tfvars y luce como esto.

Como podrás ver en las dos imágenes, tengo un archivo que no tiene ningún dato de la cuenta y tampoco ningún secreto y en el segundo (mi archivo local) si tengo toda esta información (seamos honestos, el ejemplo no es muy práctico debido a que en mi entorno local Terraform tomaría las credenciales de mi Azure CLI, pero se me hace un gran escenario).
Ahora, antes de continuar ve corriendo a tu archivo .gitignore y has lo que te salvará por completo, agregar este nuevo archivo como omitido para subir a tu control de versiones. Esto evitará que por error subas TODA la información sensible a tu control de versiones. Para ello solo abre tu archivo .gitignore y agrega una línea como la siguiente.

Ya con tu supervivencia asegurada, lo que sigue es especificarle a Terraform que quieres archivo quiere utilizar antes de desplegar. Por defecto, el comando terraform plan buscará la opción de terraform.tfvars, lo único que necesitas para modificar esta ruta por defecto es el comando
terraform plan –var-file localDev.tfvars
Así de simple harás que el nuevo ambiente que vas a probar en un modo local sea capaz de usar el archivo que tú quieres de manera local sin interferir con ningún elemento de un ambiente diferente.
Usando workspaces
Otra manera muy útil de utilizar estos archivos de Terraform y además haciéndolo en un espacio de trabajo diferente es utilizando workspaces, que básicamente se trata de una forma de aislar tus escenarios de trabajo.
Puedes comenzar con el comando workspace para conocer las acciones que puedes hacer ahí.

Ya con las posibilidades que tienes puedes ver en que espacio de trabajo te encuentras y después crear uno nuevo para ti.

Esto te permitirá jugar a voluntad en todo lo que quieras hacer, practicar con configuraciones diferentes, jugar con estados aislados e incluso experimentar cosas nuevas sin tener que modificar el entorno de trabajo con el estás trabajando en tu proyecto. Una herramienta muy útil para jugar con muchas posibilidades, un caso puede ser crear un archivo .tfvars diferente para cada espacio de trabajo y ver como se verá reflejado este resultado.
1 comentario en «Trabajar con diferentes archivos .tfvars en Terraform»