使用 Terraform 配置 Schematics
IBM Cloud® 上的 Terraform 能够以可预测和一致的方式提供 IBM Cloud 服务,从而按照基础设施即代码( IaC )原则快速构建复杂的多层云环境。 同样,您也可以使用 Terraform 自动配置、更新和删除 IBM Cloud Schematics 工作区和操作实例。
正在寻找 IBM Cloud 上的 Terraform 托管解决方案? 试用 IBM Cloud Schematics. 有了 Schematics,你可以使用熟悉的 Terraform 语言,但不必担心设置和维护 Terraform 命令行和 IBM Cloud Provider 插件。Schematics 还提供预定义的 Terraform 模板,你可以从 IBM Cloud 目录中安装。
开始之前,请确保您具有创建和使用 IBM Cloud Schematics 工作空间所需的 访问权。
示例-使用 Terraform 创建 Schematics 工作空间
完成以下步骤以使用 Terraform 创建 Schematics 工作空间:
-
遵循 Terraform on IBM Cloud 入门教程 以安装 Terraform CLI 并配置 IBM Cloud Provider Plug-in for Terraform。 该插件对用于供应,更新或删除 Schematics 资源的 IBM Cloud
APIs进行抽象。 -
创建名为
main.tf,terraform.tfvars和versions.tf的 Terraform 配置文件。您可以使用Terraform示例 Git URL
https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway。 本示例使用服务实例为您选择IBM Cloud设置API。 您可以指定要用于访问服务的 API 端点,并定义预订密钥,以便可以安全地使用 API。如果在
us以外的区域中创建了其他工作空间,那么必须将 API 端点设置为该区域。 例如,如果指定的区域为eu,那么应在环境变量中将 API 端点指定为IBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.com。 有关 Schematics 工作区位置和使用端点的更多信息,请参阅 我的信息存储在哪里?然后在区域的
default资源组中创建 Schematics 工作空间tf-testwks-apigwy。 此工作空间指向您选择的需要 Terraform 版本terraform_v1.5的 Terraform 模板。versions.tf样本
versions.tf文件,用于指定创建工作空间所需的提供程序版本。terraform { required_version = ">=1.0.0, <2.0" required_providers { ibm = { source = "IBM-Cloud/ibm" } } }terraform.tfvars用于存储敏感信息 (例如凭证) 的样本
terraform.tfvars文件。 有关更多信息,请参阅 引用terraform.tfvars文件中的凭证。 要创建 API 密钥,请参阅 创建和 API 密钥。schematics_workspace_name="tf-testwks-apigwy" schematics_workspace_description="Sample workspace created with terraform with URL" schematics_workspace_type="terraform_v1.5" schematics_workspace_location="us-south" schematics_workspace_resource_group="default" ibmcloud_api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"main.tf查看以下样本
main.tf文件。 此文件调用来自terraform.tfvars使用 Git URL 文件,然后使用您的 Schematics IBM Cloud API 密钥创建 Schematics 工作区。variable "schematics_workspace_name" {} variable "schematics_workspace_description" {} variable "schematics_workspace_type" {} variable "schematics_workspace_location" {} variable "schematics_workspace_resource_group" {} variable "ibmcloud_api_key" {} resource "ibm_schematics_workspace" "schematics_workspace_instance" { name = var.schematics_workspace_name description = var.schematics_workspace_description location = var.schematics_workspace_location resource_group = var.schematics_workspace_resource_group tags = ["sample"] template_env_settings = [ { env1 = "val1" }, { env2 = "val2" } ] template_type= var.schematics_workspace_type template_git_url = "https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway" } provider "ibm" { region = "us-south" ibmcloud_api_key = var.ibmcloud_api_key }下表列出了使用 Terraform 创建和初始化服务实例时受支持的参数。 有关用于创建工作空间的详细参数的更多信息,请参阅
ibm_schematics_workspace资源。用于使用 Terraform 创建 Schematics 工作空间的受支持参数。 参数 描述 description工作空间的描述。 location要在其中创建 Schematics 工作空间并运行 Schematics 操作的位置。 resource_group要在其中供应工作空间的资源组的标识。 name工作空间的名称。 该名称最多可以为 128 个字符,可包含字母数字字符、空间、短划线和下划线。 为您自己的 Terraform 模板创建工作空间时,请考虑包含使用 Terraform 模板设置的微服务组件以及在其中要以您的名义部署资源的 IBM Cloud 环境。 tags与工作空间关联的标记的列表。 template_env_settings要在执行 Terraform 操作期间应用的环境变量的列表。 template_git_urlGit URL,其中包含配置详细信息,用于配置资源。 template_type指定要在 Schematics 工作空间中应用的 Terraform 版本。 -
初始化 Terraform CLI。
terraform init如果未设置 Terraform 的环境变量路径,那么可以看到
command not found: terraform错误。 通过设置 Terraform 安装目录 的路径来修正错误。 -
创建 Terraform 执行计划。 Terraform 执行计划总结了在帐户中创建 Schematics 工作空间时需要运行的所有操作。
terraform plan -
在 IBM Cloud中创建 Schematics 工作空间实例和 IAM 访问策略。
terraform apply有关排除
terraform apply命令错误的更多信息,请参阅 查找 Schematics 应用失败的根本原因。 -
从 Schematics 仪表板 中,检查是否已创建
tf-testwks-apigwy工作空间。 并且会从 IBM Cloud Schematics 资源列表供应资源。 -
验证是否成功分配了访问策略。 有关更多信息,请参阅 在控制台中复审分配的访问权。
后续步骤?
现在,您已成功在 IBM Cloud上使用 Terraform 创建了第一个 Schematics 工作空间,您可以在以下任务之间进行选择:
- 了解如何创建 IBM Cloud Schematics 作业 资源以在 IBM Cloud中运行 Terraform 模板。
- 要在 IBM Cloud 中运行
Ansible playbooks,请查看 IBM Cloud Schematics 操作 资源。 - 浏览 IBM Cloud Schematics 的其他受支持的 Terraform 资源和数据源,或者检出可用于示例中使用的 Terraform 资源的其他自变量和属性。
- 使用开源、默认安全和企业就绪的 Terraform IBM 模块(TIM), 简化配置。