Suministrar una instancia de Databases for MongoDB Enterprise Edition con Terraform
En esta guía de aprendizaje, aprenderá a utilizar Terraform para suministrar una instancia de Databases for MongoDB Enterprise Edition que incluya el complemento Databases for MongoDB Enterprise Edition Analytics. El Databases for MongoDB EE Analytics Add-On le permite ejecutar consultas analíticas de larga duración y/o proporcionar un conectorMongoDB para inteligencia empresarial(BI) para que sus datos de consulta sean compatibles con herramientas de BI, como Tableau.
Visión general de las herramientas disponibles
Antes de iniciar el proceso de suministro de una base de datos con Terraform, es necesario tener una cuenta de IBM Cloud.
En esta guía de aprendizaje puede suministrar la base de datos mediante Terraform, un servicio que le permite crear, cambiar y mejorar la infraestructura de forma segura y predecible. Es una herramienta de código abierto que codifica las API en archivos de configuración declarativos que se pueden compartir entre los miembros del equipo, tratar como código, editar, revisar y versionar. Es infraestructura como código. Puede escribir cómo debe ser la infraestructura y Terraform creará, actualizará y eliminará los recursos de nube según sea necesario. Para obtener más información, consulte Comprender los conceptos básicos de Terraform.
Para dar soporte a un enfoque de varias nubes, Terraform trabaja con proveedores. Un proveedor es responsable de entender las interacciones de la API y de exponer los recursos. IBM Cloud® tiene un proveedor para Terraform, lo que permite a los usuarios de IBM Cloud® gestionar recursos con Terraform. Aunque Terraform es un producto clasificado como infraestructura como código, no se limita a los recursos de una infraestructura como servicio. Para obtener más información, consulte ibm_database.
Paso 1: Instalar Terraform
Siga los pasos en Instalar Terraform para instalar Terraform.
Paso 2: Configurar el plug-in IBM Cloud® Provider
-
Cree o recupere una clave de API de IBM Cloud®. La clave de API se utiliza para autenticar con la plataforma IBM Cloud® y para determinar los permisos para los servicios de IBM Cloud®.
-
Cree un Terraform en el directorio del proyecto de IBM Cloud Databases. El directorio contiene todos los archivos de configuración que crea como parte de esta guía de aprendizaje. El directorio de esta guía de aprendizaje se denomina
tf-mongodbee
, pero puede utilizar cualquier nombre para el directorio.mkdir tf-mongodbee && cd tf-mongodbee
-
En el directorio del proyecto, cree un archivo de definición de variables denominado
terraform.tfvars
y especifique la clave de API de IBM Cloud que ha recuperado. Además, especifique la región en la que desea que se creen los recursos de IBM Cloud. Si no se especifica ninguna región, el plug-in IBM Cloud® Provider crea automáticamente los recursos en la región us-south. Terraform carga automáticamente las variables definidas en el archivoterraform.tfvars
cuando se inicializa el plug-in IBM Cloud Provider y puede hacer referencia a ellas en cada archivo de configuración de Terraform que utilice.Dado que el archivo de definiciones de variables contiene información confidencial, no pulse este archivo en un sistema de control de versiones. Este archivo debe estar sólo en su sistema local.
Ejemplo de archivo
terraform.tfvars
ibmcloud_api_key = "<IBMCLOUD_API_KEY>" region = "us-east"
La región
us-east
se proporciona como un ejemplo, no un requisito. Utilice la región que mejor funciona para el despliegue de la instancia. -
Cree un archivo de configuración de proveedor denominado
provider.tf
. Utilice este archivo para configurar el plug-in IBM Cloud Provider con la clave de API de IBM Cloud del archivoterraform.tfvars
. El plug-in utiliza esta clave para acceder a IBM Cloud y para trabajar con el servicio IBM Cloud. Para acceder a un valor de variable del archivoterraform.tfvars
, primero debe declarar la variable en el archivoprovider.tf
y, a continuación, hacer referencia a la variable con la sintaxisvar.<variable_name>
.Ejemplo de archivo
provider.tf
terraform { required_providers { ibm = { source = "IBM-Cloud/ibm" version = ">= 1.28.0" } } } variable "ibmcloud_api_key" {} variable "region" {} provider "ibm" { ibmcloud_api_key = var.ibmcloud_api_key region = var.region }
Paso 3: Suministrar una instancia de Databases for MongoDB
En el mismo directorio de proyecto, cree un archivo de configuración de Terraform denominado mongodbee.tf
.
Ejemplo de archivo mongodbee.tf
data "ibm_resource_group" "mongodbee_tutorial" {
is_default = true
}
resource "ibm_database" "mongodbee_db" {
resource_group_id = data.ibm_resource_group.mongodbee_tutorial.id
name = "terraform_mongodbee"
service = "databases-for-mongodb"
plan = "enterprise"
location = "us-east"
service_endpoints = "public"
adminpassword = "password123changeme"
group {
group_id = "member"
host_flavor {
id = "b3c.4x16.encrypted"
}
disk {
allocation_mb = 20480
}
}
group {
group_id = "analytics"
members {
allocation_count = 1
}
}
group {
group_id = "bi_connector"
members {
allocation_count = 1
}
}
timeouts {
create = "120m"
update = "120m"
delete = "15m"
}
}
data "ibm_database_connection" "mongodbee_conn" {
deployment_id = resource.ibm_database.mongodbee_db.id
user_id = resource.ibm_database.mongodbee_db.adminuser
user_type = "database"
endpoint_type = "public"
}
output "bi_connector_connection" {
description = "BI Connector connection string"
value = data.ibm_database_connection.mongodbee_conn.bi_connector.0.composed.0
}
output "analytics_connection" {
description = "Analytics Node connection string"
value = data.ibm_database_connection.mongodbee_conn.analytics.0.composed.0
}
- Grupo de recursos: el valor del grupo de recursos que declara.
- Nombre: el nombre de servicio puede ser cualquier serie y es el nombre que se utiliza en la web y en la CLI para identificar el nuevo despliegue.
- Servicio: para Databases for MongoDB, el ID de servicio es
databases-for-mongodb
. Elija el ID de servicio correcto para su despliegue. - Plan: esta guía de aprendizaje utiliza un plan estándar. Para obtener más información, consulte IBM Cloud® Precios.
- Ubicación: elija una región adecuada para la instancia de despliegue.
- Puntos finales de servicio- Elija los puntos finales de servicio para su instancia de despliegue. se recomienda "privado" para uso en producción.
- Contraseña de administrador: debe establecer la contraseña de administrador para poder utilizarla para conectarse. Para obtener más información, consulte Establecimiento de la contraseña de administrador.
- Grupo: los grupos de escalado representan los diversos recursos que se asignan a un despliegue. Para ver un ejemplo de configuración y despliegue de una base de datos que utiliza atributos de
group
, consulte Ejemplo de instancia de base de datos con atributos de grupo.{external} - Valores de grupo: los valores de memoria, disco y CPU se basan en requisitos mínimos para el suministro de una instancia de Databases for MongoDB .
- Tiempos muertos- Create, update, and delete values for this resource. Cloud Databases
create
typically takes between 30-45 minutes.delete
andupdate
typically take 1 minute. Los tiempos de suministro son imprevisibles. Si el despliegue falla debido a un tiempo de espera excedido, importe el recurso de base de datos una vez que se haya completadocreate
.
Paso 4: Probar la configuración
Ahora que ha configurado el plug-in IBM Cloud® Provider para el recurso, puede utilizar Terraform para inicializar, ejecutar, planificar y aplicar mandatos para suministrar el recurso. Necesita los mandatos siguientes:
Descripción del mandato | Mandato |
---|---|
terraform init |
El mandato terraform init se utiliza para inicializar un directorio de trabajo que contiene los archivos de configuración de Terraform. |
terraform fmt |
El mandato terraform fmt se utiliza para reescribir los archivos de configuración de Terraform en un formato y estilo canónicos. |
terraform validate |
El mandato terraform validate valida los archivos de configuración en un directorio |
terraform apply |
El mandato terraform apply ejecuta las acciones que se proponen en un plan de Terraform. |
Para obtener más información, consulte Suministro de recursos de IBM Cloud®.
Para ver plantillas de Terraform de muestra con los archivos de configuración de Terraform completos para probar, consulte Plantillas de muestra.
Para una visión general de los recursos y fuentes de datos de Terraform, véase Índice de Terraform sobre IBM Cloud® recursos y fuentes de datos.