IBM Cloud Docs
Suministrar una instancia de Databases for MongoDB Enterprise Edition con Terraform

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

  1. 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®.

  2. 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
    
  3. 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 archivo terraform.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.

  4. 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 archivo terraform.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 archivo terraform.tfvars, primero debe declarar la variable en el archivo provider.tf y, a continuación, hacer referencia a la variable con la sintaxis var.<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 and update 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 completado create.

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:

Comandos de aprovisionamiento Terrarform
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.