概述
此用例使用 Terraform 管理 F5 Distributed Cloud 上的权威 DNS。一个精简、可复用的计划为委派域创建主 DNS 区域及其记录,将状态保存在 Azure Blob Storage 中,并通过 GitHub Actions 实现拉取请求时执行 plan、合并时执行 apply 的自动化流程。
- 一个
xcsh_dns_zone— F5 XCsystem命名空间中的权威主区域,包含 A 记录。区域名称为委派域(一个变量),因此重新定向目标只需修改配置,而无需修改代码。 - Azure 中的远程 Terraform 状态,使运行结果可在操作人员本地机器与 CI 之间共享。
| 层级 | 选择 | 原因 |
|---|---|---|
| Provider | f5-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 工作流,以及所需的变量和密钥。