Gracias a la infraestructura como código (IaC), las organizaciones pueden automatizar y administrar de manera escalable y consistente su infraestructura de TI. Terraform de HashiCorp, con las principales empresas de tecnología y proveedores de nube que ofrecen diferentes herramientas de IaC, se destaca por su enfoque declarativo para el aprovisionamiento y la administración de recursos en la nube. Una característica interesante en el conjunto de comandos de Terraform es la actualización de terraformas, que desempeña un papel fundamental para garantizar que el estado de la infraestructura se alinee con los archivos de configuración.
Este artículo profundiza en la actualización de terraformes, su importancia en la administración de infraestructura y cómo utilizarla de manera efectiva.
Comprender la actualización de Terraform
La actualización de Terraform sincroniza su archivo de estado de Terraform con el estado actual de su infraestructura administrada por Terraform. Imagine su archivo de estado Terraform como un plano que describe la configuración deseada para su infraestructura. Sin embargo, los cambios manuales pueden realizarse directamente en la infraestructura fuera del control de Terraform con el tiempo. La actualización de Terraform cierra esta brecha al actualizar el archivo de estado para reflejar estas modificaciones del mundo real.
El propósito principal de la actualización de terraformas es detectar cualquier desviación entre el estado real de los recursos y el estado deseado, según se define en los archivos de configuración. Esta desviación puede ocurrir debido a cambios manuales realizados en la infraestructura fuera de Terraform o cambios en el entorno de infraestructura en sí.
Cómo usar la actualización de Terraform
El uso de la actualización de terraformes es sencillo. La sintaxis de comandos es la siguiente:
$ terraform refresh
Este comando le indica a Terraform que actualice el archivo de estado para todos los recursos administrados actualmente en su configuración de Terraform. Es importante tener en cuenta que la actualización de la terraforma solo actualiza el archivo de estado; no realiza ninguna modificación a su infraestructura real.
Supongamos que tiene una configuración Terraform que aprovisiona una instancia de bucket AWS S3. Este es un archivo de configuración de muestra (main.tf):
provider "aws" {
region = "us-west-2"
}
resource "aws_s3_bucket" "example" {
bucket = "my-unique-bucket-name"
acl = "private"
}
Para aplicar esta configuración y crear el cubo S3, debe ejecutar lo siguiente:
$ terraform init
$ terraform apply
Si se realiza algún cambio en el bucket S3 directamente a través de la consola de AWS o API , la ejecución de la actualización de terraform actualizará el archivo de estado para reflejar estos cambios:
$ terraform refresh
Indicadores y opciones adicionales
- entrada: Si se configura en falso, desactiva la entrada interactiva cuando Terraform necesita la entrada del usuario.
- estado: Especifica un archivo de estado personalizado que se utilizará para la operación
Este es un ejemplo de su uso:
$ terraform refresh -input=false -state="custom_state.tfstate"
Beneficios de la actualización de Terraform
La incorporación de la actualización de terraformas en su flujo de trabajo de administración de infraestructura tiene varias ventajas. Algunas de ellas son las siguientes:
- Precisión del plan mejorada: Al actualizar el archivo de estado, la actualización de la terraforma garantiza que los resultados de su plan de terraforma reflejen con precisión los cambios deseados necesarios para alinear su infraestructura con su configuración de Terraform. Esto elimina el riesgo de proponer modificaciones innecesarias basadas en información de estado obsoleta.
- Visibilidad mejorada de la infraestructura: La actualización de Terraform le ofrece una imagen clara del estado actual de su infraestructura. Esta transparencia le permite identificar cualquier discrepancia entre su código y la infraestructura real, lo que le permite tomar medidas correctivas si es necesario.
- Administración de infraestructura optimizada: La actualización de Terraform simplifica la administración de la infraestructura al mantener actualizado su archivo de estado de Terraform. Puede aplicar con confianza los cambios de configuración, sabiendo que su archivo de estado refleja con precisión la infraestructura subyacente.
Mejores prácticas para usar la actualización de Terraform
Estas son algunas de las mejores prácticas que debe tener en cuenta al usar la actualización de terraformes:
- Antes de Terraform v0.15.4: En versiones anteriores, la actualización de la terraforma actualizó directamente su archivo de estado. Sin embargo, este comportamiento ahora se considera obsoleto debido a posibles inquietudes de seguridad. Se recomienda usar la aplicación de terraformes, solo actualización. Este enfoque ofrece el beneficio de solicitarle confirmación antes de finalizar la actualización, lo que le permite revisar los cambios antes de que se apliquen al archivo de estado.
- -autoaprobación: Si bien algunos documentos pueden hacer referencia al indicador de aprobación automática con actualización de terraforma, este indicador también está obsoleto y debe evitarse. Omite la confirmación y, potencialmente, produce consecuencias no deseadas.
- Uso planificado: Por lo general, se recomienda utilizar la actualización de terraformas de manera estratégica, especialmente antes de ejecutar el plan de terraformas o los comandos de aplicación de terraformas. Esto garantiza que su plan refleje el estado de infraestructura más reciente.
- Integración del control de versiones: Considere integrar su configuración Terraform con un sistema de control de versiones como Git. Esto le permite realizar un seguimiento de los cambios en su código Terraform y volver a las versiones anteriores si es necesario. Esto se vuelve especialmente importante si una actualización de terraforma revela discrepancias inesperadas.
- Actualización de alcance limitado: Si solo desea actualizar un recurso o módulo específico dentro de su configuración de Terraform, puede aprovechar el indicador de objetivo con la actualización de terraformes. Este enfoque dirigido puede ser útil para administrar implementaciones de infraestructura grandes y complejas.
- Comprender el impacto potencial: Si bien la actualización de terraformes actualiza el archivo de estado, no modifica su infraestructura. Sin embargo, actualizar el estado puede revelar diferencias entre el estado deseado (definido en la configuración de Terraform) y el estado real de su infraestructura. Esté preparado para abordar cualquier discrepancia que surja después de actualizar el archivo de estado.
Conclusiones
La actualización de Terraform desempeña un papel fundamental en el mantenimiento de la consistencia entre su configuración de Terraform y su infraestructura real. Al mantener su archivo de estado sincronizado, se asegura de que sus planes sean precisos y que la administración de su infraestructura esté optimizada.
Para las soluciones de almacenamiento avanzadas que complementan su infraestructura administrada por Terraform, considere las ofertas de Pure Storage como Portworx® para Kubernetes y Pure Cloud Block Store varias cargas de trabajo de contenedores. Estas soluciones proporcionan capacidades de administración de datos sólidas que pueden mejorar aún más la confiabilidad y la eficiencia de su infraestructura en la nube.