Prácticas recomendadas para las operaciones de Terraform

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