跳转至

创建 Megaport Terraform Provider 配置文件

本主题基于 Megaport 解决方案架构师在与客户合作中总结的常见且有效的方法,提供逐步说明以准备 Megaport Terraform Provider 配置文件。

开始之前,请先完成开始使用 Megaport Terraform Provider 中描述的先决条件。

创建配置文件

当你的网络设计准备就绪后,可以按照以下步骤创建可执行的 Terraform 配置文件来部署该设计。

创建配置文件

  1. 使用 Megaport 服务设计你的网络。

    示例 Megaport Terraform Provider 配置文件可在 Megaport Terraform Provider GitHub repository 中获取。

    Megaport 还提供了关于常见多云连接场景 的说明。常见多云连接场景的示例 Megaport Terraform Provider 配置文件可在 Megaport Terraform Provider GitHub examples page 中找到。

  2. 确定 Megaport 启用的位置 ID。

    在 API 中,数据中心位置名称和站点代码有时可能会发生变化。 为了获得可靠且稳定的 Megaport Terraform Provider 配置,请使用位置 ID,而不是名称或代码。有关 Megaport 数据中心位置的最新列表,请参见 Megaport 位置 ID

    位置 ID 也可以通过 GET /v3/locations Megaport API 获取。

  3. 定义 Megaport Terraform Provider 环境。

    管理 Terraform 目录和配置文件(.tf 文件)有多种方式。 你需要确定最适合你需求的 Terraform 资源管理方式。

    以下示例展示了如何以有条理的方式管理 Terraform 配置文件。

    • 创建一个目录,用于存放一组 Terraform 配置文件,以管理一组 Megaport 服务,例如 Port、MCR、VXC。

    • 创建一个 provider.tf 文件,用于声明 Megaport Terraform Provider 环境。

      注意

      你可以在 provider.tf 文件中定义其他提供程序(如 AWS、Azure 和 GCP) 的设置。更多信息,请参见 Build Infrastructure (HashiCorp)

    • provider.tf 文件与其他 Terraform 配置文件保存在同一目录中。 下面的示例展示了包含 Megaport Terraform Provider 相关配置的 provider.tf 文件:

      terraform {
        required_providers {
          megaport = {
            source = "megaport/megaport"
              version = ">= 1.4.1"
          }
        }
      }
      provider "megaport" {
        environment           = "staging"
        access_key            = "access_key"
        secret_key            = "secret_Key"
        accept_purchase_terms = true
      }
      

      注意

      配置 Megaport Terraform Provider 配置文件时,你需要定义一些重要的字段和信息。

      • Version(版本) – Megaport 会针对 Terraform 的两个最新主版本进行测试。你可以在 Megaport Terraform Provider Registry documentation 中找到 Megaport Terraform Provider 的最新版本。 我们强烈建议你将 provider.tf 文件更新到最新的版本号。
      • Environment(环境) – 定义使用 Terraform 部署服务的环境。例如,如果将其设置为 staging,则会在 https://portal-staging.megaport.com/ 环境中创建服务。完成在 staging 环境的测试并准备在生产环境部署服务时,将该值设置为 production。有关更多信息,参见环境
      • API key(API 密钥) – 在使用 Megaport Terraform Provider 之前,你需要先创建一个 API 密钥。API 密钥由 access_keysecret_key 值组成。 API 密钥仅在其创建的环境中有效。如果你需要访问其他环境的 API 密钥,请登录该环境中的 Megaport Portal 并在那里创建 API 密钥。有关更多信息,参见创建 API 密钥
      • Accept purchase terms(接受购买条款) – 要使用 Terraform 订购 Megaport 服务,你必须接受购买条款。这将允许在生产环境中发生可计费事件,即在生产环境中创建和部署会产生费用的 Megaport 服务。
  4. 创建 main.tf 文件以声明你的基础设施。然后将实现与你的网络设计最接近的示例配置复制到 main.tf 文件中,并根据需要进行修改。

    你可以在 Megaport Terraform Provider GitHub repository 中找到示例配置。

    以下示例展示了一个 Megaport Terraform Provider 配置,用于订购单个 Port。

    data "megaport_location" "location_1" {
      name = "NextDC B1"
    }
    
    resource "megaport_port" "port" {
      product_name           = "Megaport Port Example"
      port_speed             = 10000
      location_id            = 5
      contract_term_months   = 1
      marketplace_visibility = false
    }
    

    部署 Terraform 时,会先执行 provider.tf。 然后将自动执行 main.tf,以及同一目录中保存的其他 Terraform 配置文件。

  5. 如果这是你首次使用 Terraform,请在你的目录中运行 terraform init 命令,以准备包含 Terraform 配置文件的工作目录。

    此命令会执行多个设置任务,例如下载 Megaport Terraform Provider 和其他后端插件,以便为 Terraform 的使用准备你的工作目录。

    运行此命令之前,目录中必须已有 Terraform 配置文件。 可以安全地多次运行此命令,以使工作目录与配置中的更改保持最新。

    下图展示了 terraform init 命令输出的示例。

    terraform init 输出示例

    有关更多信息,参见 terraform init command (HashiCorp)

后续步骤

准备好 Terraform 配置文件后,可以先在 staging 环境中进行初始测试,再应用到生产环境。

有关更多信息,参见使用 Megaport Terraform Provider 创建和管理服务

参考资料