Terraform es una herramienta de código abierto de HashiCorp que permite previsualizar, configurar y gestionar la infraestructura y los recursos en la nube. Con Terraform, usted puede crear y actualizar automáticamente los recursos de infraestructura de Alibaba Cloud, además de mantenerlos bajo control de versiones. Utilice Terraform para crear las instancias de entorno que conectan sus recursos en la nube con Application Real-Time Monitoring Service (ARMS). De este modo, podrá monitorear las métricas de rendimiento de los recursos en tiempo real.
Requisitos previos
-
Tener instalada la versión v0.12.28 o posterior de Terraform. Ejecute
terraform --versionpara comprobar la versión instalada. Instale Terraform mediante uno de los siguientes métodos:Cloud Shell: utilice Terraform directamente en Cloud Shell. Este servicio instala y configura Terraform junto con la información de su cuenta de Alibaba Cloud de forma predeterminada, por lo que no se requiere ninguna configuración adicional. Para obtener más instrucciones, consulte Quickly create resources by using Terraform.
Computadora local: instale Terraform en su computadora local. Para obtener más instrucciones, consulte Install and configure Terraform locally.
Resource Orchestration Service ofrece capacidades administradas de Terraform. Estas le permiten crear plantillas de Terraform, definir recursos en Alibaba Cloud, AWS o Azure, y configurar parámetros y dependencias de dichos recursos. Para obtener más información, consulte Create a Terraform template y Create a Terraform stack.
-
La información de su cuenta de Alibaba Cloud debe estar configurada. Proporcione las credenciales de identidad mediante uno de los siguientes métodos:
-
Variables de entorno: agregue variables de entorno para almacenar las credenciales de identidad:
export ALICLOUD_ACCESS_KEY="************" export ALICLOUD_SECRET_KEY="************" export ALICLOUD_REGION="cn-beijing" -
Archivo de configuración: especifique las credenciales de identidad en el bloque
providerdel archivo de configuración:provider "alicloud" { access_key = "************" secret_key = "************" region = "cn-beijing" }
NotaPara mejorar la flexibilidad y la seguridad en la gestión de permisos, cree un usuario de Resource Access Management (RAM) llamado Terraform. Después, genere un accesskey para ese usuario y asígnele los permisos correspondientes. Para obtener más instrucciones, consulte Create a RAM user y Manage permissions for a RAM user.
-
Managed Service for Prometheus está activado.
Creación de una instancia de entorno
ARMS admite instancias de entorno para Container Service, ECS y servicios en la nube. Los tres tipos de entorno comparten el mismo flujo de trabajo de Terraform. La única diferencia radica en el recurso alicloud_arms_environment que se declara en el archivo de configuración main.tf:
|
Tipo de entorno |
|
|
|
|
Container Service |
|
|
El identificador del clúster de Container Service |
|
ECS |
|
|
El identificador de VPC, por ejemplo, |
|
Servicio en la nube |
|
|
El identificador de región de la instancia del servicio en la nube, por ejemplo, |
Identifique el tipo de entorno que corresponde a los recursos en la nube que desea monitorear. A continuación, siga los pasos de la sección correspondiente.
Instancia de entorno de Container Service
-
Cree un directorio de trabajo y, dentro de él, un archivo de configuración llamado
main.tf:# provider, use alicloud provider "alicloud" { # access_key = "************" # secret_key = "************" # region = "cn-beijing" } # The environment instance of Container Service. resource "alicloud_arms_environment" "my_ack-env1" { environment_name = "Container Service environment name 1" environment_type = "CS" environment_sub_type = "ACK" bind_resource_id = "The cluster ID of Container Service" }Los campos
access_key,secret_keyyregionestán comentados. -
Inicialice el entorno de ejecución de Terraform:
terraform initInitializing the backend... Initializing provider plugins... - Checking for available provider plugins... - Downloading plugin for provider "alicloud" (hashicorp/alicloud) 1.90.1... ... You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
Previsualice los recursos que Terraform planea crear:
terraform planRefreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. ... Plan: 5 to add, 0 to change, 0 to destroy. ... -
Cree la instancia de entorno de Container Service:
terraform applyCuando aparezca el mensaje
Enter a value, introduzcayes. Se obtiene a continuación el siguiente resultado:... Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ... alicloud_arms_environment: Creation complete after 8m26s [id=************] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Inicie sesión en la consola de ARMS. En la página Integration Management, compruebe que la instancia de entorno de Container Service aparece en la lista de entornos.
Instancia de entorno de ECS
-
Cree un directorio de trabajo y, dentro de él, un archivo de configuración llamado
main.tf:# provider, use alicloud provider "alicloud" { # access_key = "************" # secret_key = "************" # region = "cn-beijing" } # The ECS environment instance. resource "alicloud_arms_environment" "my_ecs-env1" { environment_name = "ECS environment name 1" environment_type = "ECS" environment_sub_type = "ECS" bind_resource_id = "The vpcId, for example, vpc-bp1jxxx" }Los campos
access_key,secret_keyyregionestán comentados. -
Inicialice el entorno de ejecución de Terraform:
terraform initInitializing the backend... Initializing provider plugins... - Checking for available provider plugins... - Downloading plugin for provider "alicloud" (hashicorp/alicloud) 1.90.1... ... You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
Previsualice los recursos que Terraform planea crear:
terraform planRefreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. ... Plan: 5 to add, 0 to change, 0 to destroy. ... -
Cree la instancia de entorno de ECS:
terraform applyCuando aparezca el mensaje
Enter a value, introduzcayes. Se obtiene a continuación el siguiente resultado:... Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ... alicloud_arms_environment: Creation complete after 8m26s [id=************] Apply complete! Resources: 3 added, 0 changed, 0 destroyed. Inicie sesión en la consola de ARMS. En la página Integration Management, compruebe que la instancia de entorno de ECS aparece en la lista de entornos.
Instancia de entorno de servicio en la nube
-
Cree un directorio de trabajo y, dentro de él, un archivo de configuración llamado
main.tf:# provider, use alicloud provider "alicloud" { # access_key = "************" # secret_key = "************" # region = "cn-beijing" } # The cloud service environment instance. resource "alicloud_arms_environment" "my_cloud-env1" { environment_name = "Cloud service environment name 1" environment_type = "Cloud" environment_sub_type = "Cloud" bind_resource_id = "The regionId of the cloud service instance, for example, cn-hangzhou" }Los campos
access_key,secret_keyyregionestán comentados. -
Inicialice el entorno de ejecución de Terraform:
terraform initInitializing the backend... Initializing provider plugins... - Checking for available provider plugins... - Downloading plugin for provider "alicloud" (hashicorp/alicloud) 1.90.1... ... You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
Previsualice los recursos que Terraform planea crear:
terraform planRefreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. ... Plan: 5 to add, 0 to change, 0 to destroy. ... -
Cree la instancia de entorno de servicio en la nube:
terraform applyCuando aparezca el mensaje
Enter a value, introduzcayes. Se obtiene a continuación el siguiente resultado:... Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ... alicloud_arms_environment: Creation complete after 8m26s [id=************] Apply complete! Resources: 4 added, 0 changed, 0 destroyed. Inicie sesión en la consola de ARMS. En la página Integration Management, compruebe que la instancia de entorno de servicio en la nube aparece en la lista de entornos.
Eliminación de una instancia de entorno
A continuación se describen los pasos aplicables a los tres tipos de entorno: Container Service, ECS y servicio en la nube.
El comando terraform destroy destruye toda la infraestructura que gestiona Terraform. Esta operación no se puede deshacer.
-
Elimine la instancia de entorno que creó con Terraform:
terraform destroyCuando aparezca el mensaje
Enter a value, introduzcayes. Se obtiene a continuación el siguiente resultado:... Do you really want to destroy all resources? Terraform will destroy all your managed infrastructure, as shown above. There is no undo. Only 'yes' will be accepted to confirm. Enter a value: yes ... Destroy complete! Resources: 1 destroyed. Inicie sesión en la consola de ARMS. En la página Integration Management, compruebe que la instancia de entorno se eliminó de la lista de entornos.