Terraform es una herramienta de código abierto para la orquestación automatizada de recursos. ROS aloja Terraform como un servicio administrado. Cree plantillas y pilas de Terraform para orquestar recursos de Alibaba Cloud, Amazon Web Services (AWS) y Microsoft Azure mediante operaciones compatibles con la API de ROS.
Límites
Terraform admite un subconjunto de las funciones y recursos de ROS. Features and resources supported by Terraform in ROS.
Métodos de desarrollo
Escriba y pruebe el código de Terraform con cualquiera de los siguientes métodos:
Utilice un entorno local.
Utilice la herramienta de depuración en línea de Terraform (solo para recursos de Alibaba Cloud).
(Recomendado) Cree una pila de Terraform en la consola de ROS y continúe o actualícela según sea necesario. Create a Terraform stack, Continue to create a stack, Update a stack.
Beneficios de usar Terraform en ROS
ROS agrega las siguientes capacidades adicionales a la CLI de Terraform:
-
Experiencia unificada en la consola
La consola de ROS gestiona las plantillas de Terraform con la misma experiencia que las plantillas nativas de ROS, lo que centraliza toda la gestión de recursos.
En la página Create Stack de la consola de ROS, introduzca un Stack Name, seleccione una Region como China (Hangzhou) y cargue su plantilla de Terraform.
La consola presenta las variables de la plantilla como un formulario visual con opciones desplegables y valores predeterminados para parámetros como VPC Configuration, vSwitch, Instance Type y Security Group.
$ terraform plan Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create # alicloud_vpc.default will be created + resource "alicloud_vpc" "default" { + cidr_block = "10.0.0.0/8" + vpc_name = (known after apply) } Plan: 6 to add, 0 to change, 0 to destroy.$ terraform apply alicloud_vpc.default: Creating... alicloud_vpc.default: Creation complete after 6s [id=vpc-bp1...] alicloud_vswitch.default[0]: Creating... alicloud_vswitch.default[0]: Creation complete after 5s [id=vsw-bp1...] Apply complete! Resources: 6 added, 0 changed, 0 destroyed. -
Consultas dinámicas y selección de parámetros y propiedades
Consulta dinámicamente los valores válidos de los parámetros.
Referencia un solo parámetro en varias propiedades.
Muestra los parámetros en una interfaz gráfica con valores seleccionables. AssociationProperty and AssociationPropertyMetadata.
Al configurar los parámetros, campos como Virtual Private Cloud (VPC) y Security Group muestran una lista desplegable de los recursos disponibles en la región actual, filtrados dinámicamente según los parámetros seleccionados previamente.
En la sección Parameters de una plantilla, especifique
AssociationPropertypara consultar recursos regionales yAssociationPropertyMetadatapara agregar condiciones de filtro. La consola de ROS muestra entonces valores seleccionables para estos parámetros.Así podrá seleccionar recursos existentes desde listas desplegables en lugar de introducir manualmente los ID de los recursos.
-
Consultas de precios para recursos de la plantilla
Antes del despliegue, ROS calcula y muestra los precios estimados de los recursos de su plantilla de Terraform para facilitar la planificación presupuestal.
El cuadro de diálogo Price Details enumera los costos estimados por Resource Type (como instancias de ECS y RDS), Specifications, Region, Quantity y Billing Method. El total de Prepaid Monthly Fee se muestra en la parte superior.
-
Activación de servicios y verificación de roles
Verificaciones automáticas: ROS comprueba si los servicios de la plantilla están activados y si existen los roles obligatorios antes del despliegue. Si un servicio como Transit Router no está activado, aparece un cuadro de diálogo Dependency Check que indica el número de problemas y proporciona un Activation Link a la página de activación del servicio.
-
Sugerencias y orientación: Si un servicio obligatorio no está activado o falta un rol, ROS proporciona orientación para completar la configuración.
Al hacer clic en el enlace de activación, se le redirige a la página del servicio (como Transit Router), donde debe aceptar el Service Agreement para activarlo.
-
Detección de riesgos
ROS detecta riesgos potenciales antes de ejecutar operaciones, como la eliminación de un security group.
Al eliminar una pila, el cuadro de diálogo Delete Stack muestra una Risk Alert que enumera los recursos con dependencias (por ejemplo, un security group referenciado por una instancia de ECS). Debe seleccionar un Deletion Method (conservar recursos o liberar recursos) y confirmar el Stack Name para continuar.
-
Gestión y uso compartido de versiones de plantillas
ROS ofrece control de versiones para las plantillas de Terraform. Consulte los Template Details (ID, estado de uso compartido, marcas de tiempo), cambie de versión con el selector Template Version, vea el Template Content (como código HCL en un archivo main.tf) en línea, compártalo mediante Share Template o despliéguelo con Create Stack.
-
Propagación de etiquetas y resource groups
Propague etiquetas y resource groups a todos los recursos de la plantilla en una sola operación.
Escenarios
Crear una pila de Terraform
Para orquestar y gestionar recursos en plataformas en la nube (AWS, Azure) o entornos locales de manera centralizada, cree una pila de Terraform. Create a Terraform stack.
Crear una plantilla de Terraform
Para gestionar recursos de nubes de terceros (AWS, Azure) desde Alibaba Cloud, defínalos con sus relaciones de dependencia en una plantilla de Terraform. Create a Terraform template.
Estructura de la plantilla
Defina recursos, parámetros y relaciones de dependencia en las plantillas de Terraform para orquestar recursos de Alibaba Cloud, AWS y Azure. Structure of Terraform templates, What is Alibaba Cloud Terraform?
Recomendaciones de desarrollo
Siga estas prácticas recomendadas al desarrollar código de Terraform para ROS. Methods and suggestions for Terraform code development.
Perfeccione las definiciones de variables.
Especifique la versión del proveedor.
Utilice pseudoparámetros para obtener información de la pila.
Controle el modo de entrada de parámetros y variables en la consola.
Utilice Aliyun::Terraform-v1.0 o posterior.
Utilice Metadata para controlar la visualización de parámetros y variables en la consola.
Guarde el código local en archivos cuyos nombres terminen en .debug.tf.
No declare el proveedor de Alibaba Cloud (alicloud) en el archivo .tf.
Utilice parámetros de ROS en lugar de archivos .tfvars para pasar valores de variables.