使用 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 工作空间:

  1. 遵循 Terraform on IBM Cloud 入门教程 以安装 Terraform CLI 并配置 IBM Cloud Provider Plug-in for Terraform。 该插件对用于供应,更新或删除 Schematics 资源的 IBM Cloud APIs 进行抽象。

  2. 创建名为 main.tfterraform.tfvarsversions.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_url Git URL,其中包含配置详细信息,用于配置资源。
    template_type 指定要在 Schematics 工作空间中应用的 Terraform 版本。
  3. 初始化 Terraform CLI。

    terraform init
    

    如果未设置 Terraform 的环境变量路径,那么可以看到 command not found: terraform 错误。 通过设置 Terraform 安装目录 的路径来修正错误。

  4. 创建 Terraform 执行计划。 Terraform 执行计划总结了在帐户中创建 Schematics 工作空间时需要运行的所有操作。

    terraform plan
    
  5. 在 IBM Cloud中创建 Schematics 工作空间实例和 IAM 访问策略。

    terraform apply
    

    有关排除 terraform apply 命令错误的更多信息,请参阅 查找 Schematics 应用失败的根本原因

  6. Schematics 仪表板 中,检查是否已创建 tf-testwks-apigwy 工作空间。 并且会从 IBM Cloud Schematics 资源列表供应资源。

  7. 验证是否成功分配了访问策略。 有关更多信息,请参阅 在控制台中复审分配的访问权

后续步骤?

现在,您已成功在 IBM Cloud上使用 Terraform 创建了第一个 Schematics 工作空间,您可以在以下任务之间进行选择: