概要
このユースケースは、Terraform を使用して F5 Distributed Cloud 上の権威 DNS を管理します。小規模で再利用可能なプランが、委任されたドメインのプライマリ DNS ゾーンとそのレコードを作成し、Azure Blob Storage にステートを保存し、GitHub Actions を通じてプルリクエスト時のプラン実行とマージ時の適用を行います。
xcsh_dns_zone— F5 XC のsystemネームスペースにある権威プライマリゾーン(A レコード付き)。ゾーン名は委任されたドメイン(変数)であるため、対象の変更はコード変更ではなく設定変更で行えます。- Azure 上のリモート Terraform ステート。これにより、オペレーターのマシンと CI 間でのステート共有が可能になります。
アーキテクチャ
Section titled “アーキテクチャ”| レイヤー | 選択 | 理由 |
|---|---|---|
| プロバイダー | 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 | すべてのプルリクエスト時にプランを実行し、main へのマージ時に適用します。バックエンドの座標と入力はリポジトリの変数から取得し、認証情報はシークレットから取得します。 |
デモセクションでは、ライフサイクル全体をエンドツーエンドで説明します:Terraform を使用してゾーンを構築し、名前解決を検証し、DNS ロードバランサーでフェイルオーバーを行い、ティアダウンします。ゾーンのデプロイに関するすべての Terraform ファイル、CI ワークフロー、必要な変数とシークレットを含む完全なハウツーガイドである フェーズ 1 — 構築 から始めてください。