En este documento se ofrecen directrices y recomendaciones para las operaciones de Terraform.
Esta guía no es una introducción a Terraform. Para obtener una introducción al uso de Terraform con Google Cloud, consulta el artículo Empezar a usar Terraform.
Planifica siempre primero
Genera siempre un plan antes de ejecutar Terraform. Guarda el plan en un archivo de salida. Una vez que el propietario de la infraestructura lo apruebe, ejecuta el plan. Incluso cuando los desarrolladores están creando prototipos de cambios a nivel local, deben generar un plan y revisar los recursos que se van a añadir, modificar y eliminar antes de aplicar el plan.
Implementar una canalización automatizada
Para asegurar un contexto de ejecución coherente, ejecuta Terraform mediante herramientas automatizadas. Si ya se usa un sistema de compilación (como Jenkins) y está ampliamente adoptado, úsalo para ejecutar los comandos terraform plan
y terraform apply
automáticamente.
Si no hay ningún sistema disponible, adopta Cloud Build o Terraform Cloud.
Usar las credenciales de la cuenta de servicio para la integración continua
Cuando Terraform se ejecuta desde una máquina en una canalización de CI/CD, debe heredar las credenciales de la cuenta de servicio del servicio que ejecuta la canalización. Siempre que sea posible, ejecuta las pipelines de CI en Google Cloud porque Cloud Build, Google Kubernetes Engine o Compute Engine insertan credenciales sin descargar claves de cuentas de servicio.
En el caso de las canalizaciones que se ejecutan fuera de Google Cloud, es preferible usar la federación de identidades de cargas de trabajo para obtener credenciales sin descargar claves de cuentas de servicio.
Evitar importar recursos disponibles
Si es posible, evita importar recursos (con terraform import
), ya que puede ser difícil entender por completo la procedencia y la configuración de los recursos creados manualmente. En su lugar, crea recursos nuevos con Terraform y elimina los antiguos.
En los casos en los que eliminar recursos antiguos suponga un esfuerzo considerable, usa el comando terraform import
con aprobación explícita. Una vez que se ha importado un recurso a Terraform, debe gestionarse exclusivamente con Terraform.
Google proporciona una herramienta que puedes usar para importar tus Google Cloud recursos al estado de Terraform. Para obtener más información, consulta Importar tus recursos a Terraform State. Google Cloud
No modifiques el estado de Terraform manualmente
El archivo de estado de Terraform es fundamental para mantener la asignación entre la configuración de Terraform y los recursos de Google Cloud . La corrupción puede provocar
graves problemas de infraestructura. Cuando sea necesario modificar el estado de Terraform, usa el comando terraform state
.
Revisa periódicamente las fijaciones de versiones
Fijar versiones garantiza la estabilidad, pero impide que se incorporen correcciones de errores y otras mejoras a tu configuración. Por lo tanto, revisa periódicamente las versiones fijadas de Terraform, los proveedores de Terraform y los módulos.
Para automatizar este proceso, utiliza una herramienta como Dependabot.
Usar las credenciales de aplicación predeterminadas al ejecutar la aplicación de forma local
Cuando los desarrolladores iteran localmente en la configuración de Terraform, deben autenticarse ejecutando gcloud auth application-default login
para generar credenciales predeterminadas de la aplicación. No descargues claves de cuentas de servicio, ya que son más difíciles de gestionar y proteger.
Definir alias en Terraform
Para facilitar el desarrollo local, puedes añadir alias al perfil de tu shell de comandos:
alias tf="terraform"
alias terrafrom="terraform"
Siguientes pasos
- Consulta las prácticas recomendadas para usar Terraform de forma segura.
- Consulta las prácticas recomendadas para probar módulos y configuraciones de Terraform.