跳转到内容

概述

此用例使用 Terraform 管理 F5 Distributed Cloud 上的权威 DNS。一个精简、可复用的计划为委派域创建主 DNS 区域及其记录,将状态保存在 Azure Blob Storage 中,并通过 GitHub Actions 实现拉取请求时执行 plan、合并时执行 apply 的自动化流程。

  • 一个 xcsh_dns_zone — F5 XC system 命名空间中的权威区域,包含 A 记录。区域名称为委派域(一个变量),因此重新定向目标只需修改配置,而无需修改代码。
  • Azure 中的远程 Terraform 状态,使运行结果可在操作人员本地机器与 CI 之间共享。
层级选择原因
Providerf5-sales-demo/xcsh(Terraform 注册表)从 F5 XC OpenAPI 生成,管理 xcsh_dns_zone 及 DNS 负载均衡器资源。使用 API 令牌进行身份验证(Authorization: APIToken <token>)。
状态后端azurerm(Azure Blob Storage),访问密钥认证持久化、可共享的状态存储。使用访问密钥认证,原因是该订阅仅授予了 Contributor 权限,无法分配无密钥(OIDC / Azure AD)认证所需的 Storage Blob Data Contributor 角色。
自动化GitHub Actions每次拉取请求时执行 plan,合并到 main 时执行 apply。后端协调信息和输入参数来自仓库变量,凭据来自密钥

演示部分将完整介绍整个生命周期的端到端流程:使用 Terraform 构建区域、验证其解析结果、通过 DNS 负载均衡器实现故障转移,以及销毁资源。请从第 1 阶段 — 构建开始,该阶段提供了部署区域的完整操作指南,包括所有 Terraform 文件、CI 工作流,以及所需的变量和密钥。