使用 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®提供商插件提供程序插件
-
创建或获取IBM Cloud®API 密钥。 API 密钥用于与IBM Cloud®平台进行身份验证,并确定您使用IBM Cloud®服务的权限。
-
在IBM Cloud上创建 Terraform数据库项目目录下创建 Terraform。 该目录包含您在本教程中创建的所有配置文件。 本教程中的目录名为
tf-mongodbee
,但可以使用任何名称。mkdir tf-mongodbee && cd tf-mongodbee
-
在项目目录下创建一个名为
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
区域仅作为示例,并非要求。 使用最适合实例部署的区域。 -
创建一个名为
provider.tf
. Use this file to configure the IBM Cloud Provider plug-in with the IBM Cloud API key from yourterraform.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
andupdate
typically take 1 minute. 供应时间不可预测。 如果部署因超时而失败,请在create
完成后导入数据库资源。
步骤 4:测试配置
现在,您已为资源配置了IBM Cloud®。提供商插件后,就可以使用 Terraform 来初始化、运行、计划和应用命令来调配资源了。 您需要执行以下命令
命令描述 | 命令 |
---|---|
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 索引。