IBM Cloud Docs
使用 Terraform 提供Databases for MongoDB企业版实例Enterprise Edition实例

使用 Terraform 提供Databases for MongoDB企业版实例Enterprise Edition实例

在本教程中,您将学习如何使用 Terraform 来配置Databases for MongoDB Enterprise Edition实例,其中包含Databases for MongoDB分析插件。Enterprise Edition分析插件。 The Databases for MongoDB EE Analytics Add-On allows you to run long-running analytical queries and/or provision a MongoDB Connector for business intelligence(BI) to make your query data compatible with BI tools, such as Tableau.

可用工具概述

在开始使用 Terraform 配置数据库之前,你需要有一个IBM Cloud账户。

在本教程中,您将使用 Terraform 来配置您的数据库,Terraform 是一项能让您安全、可预测地创建、更改和改进基础架构的服务。 它是一种开源工具,可将应用程序接口编入声明式配置文件,这些文件可在团队成员之间共享,并被视为代码进行编辑、审核和版本控制。 这属于基础架构即代码。 您只需写下基础架构的样子,Terraform 就会根据需要创建、更新和删除云资源。 如需了解更多信息,请参阅 了解 Terraform 基础知识。

为了支持多云方法,Terraform 使用多个提供者。 提供程序负责理解 API 交互并公开资源。IBM Cloud®为 Terraform 提供了提供程序,使IBM Cloud®的用户能够使用 Terraform 管理资源。 虽然 Terraform 被分类为基础架构即代码,但适用范围并不局限于基础架构即服务资源。 有关详细信息,请参阅 ibm_database。

步骤 1:安装 Terraform

按照 安装 Terraform的步骤安装 Terraform。

第 2 步:配置IBM Cloud®提供商插件提供程序插件

  1. 创建或获取IBM Cloud®API 密钥。 API 密钥用于与IBM Cloud®平台进行身份验证,并确定您使用IBM Cloud®服务的权限。

  2. 在IBM Cloud上创建 Terraform数据库项目目录下创建 Terraform。 该目录包含您在本教程中创建的所有配置文件。 本教程中的目录名为 tf-mongodbee,但可以使用任何名称。

    mkdir tf-mongodbee && cd tf-mongodbee
    
  3. 在项目目录下创建一个名为 terraform.tfvars 的变量定义文件,并指定所获取的IBM CloudAPI 密钥。 此外,您还需要指定创建IBM Cloud资源的区域。 如果未指定地区,IBM Cloud®提供商插件会自动在美国南方地区创建资源。提供商插件会自动在 us-south 区域创建资源。 Terraform 会在初始化IBM Cloud提供商插件时自动加载 terraform.tfvars 文件中定义的变量。提供程序插件初始化时,Terraform 会自动加载该文件中定义的变量。

    由于变量定义文件包含机密信息,请勿将该文件推送到版本控制系统。 该文件只能保存在本地系统中。

    示例 terraform.tfvars 文件

    ibmcloud_api_key = "<IBMCLOUD_API_KEY>"
    region = "us-east"
    

    us-east 区域仅作为示例,并非要求。 使用最适合实例部署的区域。

  4. 创建一个名为 provider.tf. Use this file to configure the IBM Cloud Provider plug-in with the IBM Cloud API key from your terraform.tfvars file. 插件使用此密钥访问IBM Cloud并与您的IBM Cloud服务协同工作。 要从 terraform.tfvars 文件访问变量值,必须先在 provider.tf 文件中声明变量,然后使用 var.<variable_name> 语法引用变量。

    示例 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
    }
    

第 3 步:提供Databases for MongoDB实例

在同一项目目录下,创建一个名为 mongodbee.tf.

示例 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
}
  • 资源组- 您声明的资源组值。
  • 名称- 服务名称可以是任何字符串,是网络和 CLI 中用于标识新部署的名称。
  • 服务- 对于Databases for MongoDB 而言,服务 ID 为 databases-for-mongodb。 为您的部署选择正确的服务 ID。
  • 计划- 本教程使用标准计划。 如需了解更多信息,请参阅 IBM Cloud®定价
  • 位置- 为您的部署实例选择合适的区域。
  • 服务端点- 为部署实例选择服务端点。建议在生产中使用_“私有”_。
  • 管理员密码- 必须先设置管理员密码,才能使用它进行连接。 有关详细信息,请参阅 设置管理员密码
  • 扩展组代表分配给部署的各种资源。 To see an example for configuring and deploying a database that uses group attributes, se 使用组属性的示例数据库实例。{external}
  • 组值- 内存、磁盘和 CPU 值均基于配置Databases for MongoDB实例的最低要求。
  • 超时- Create, update, and delete values for this resource. Cloud Databases create typically takes between 30-45 minutes. delete and update typically take 1 minute. 供应时间不可预测。 如果部署因超时而失败,请在 create 完成后导入数据库资源。

步骤 4:测试配置

现在,您已为资源配置了IBM Cloud®。提供商插件后,就可以使用 Terraform 来初始化、运行、计划和应用命令来调配资源了。 您需要执行以下命令

Terrarform 配置命令
命令描述 命令
terraform init The terraform init command is used to initialize a working directory containing Terraform configuration files.
terraform fmt terraform fmt 命令用于将 Terraform 配置文件重写为规范格式和样式。
terraform validate The terraform validate command validates the configuration files in a directory
terraform apply The terraform apply command runs the actions that are proposed in a Terraform plan.

有关更多信息,请参阅 调配IBM Cloud®资源

要查看包含完整 Terraform 配置文件的 Terraform 模板示例以进行测试,请参阅 模板示例

有关 Terraform 资源和数据源的概述,请参见 IBM Cloud®资源和数据源的 Terraform 索引