ภาพรวม
กรณีการใช้งานนี้จัดการ DNS แบบ authoritative บน F5 Distributed Cloud ด้วย Terraform แผนขนาดเล็กที่นำกลับมาใช้ใหม่ได้จะสร้างโซน DNS หลักและระเบียนสำหรับโดเมนที่มอบหมาย เก็บสถานะไว้ใน Azure Blob Storage และรัน plan-on-pull-request / apply-on-merge ผ่าน GitHub Actions
สิ่งที่จัดการ
หัวข้อที่มีชื่อว่า “สิ่งที่จัดการ”xcsh_dns_zone— โซน primary แบบ authoritative ใน namespacesystemของ F5 XC พร้อมระเบียน A ชื่อโซนคือโดเมนที่มอบหมาย (ตัวแปร) ดังนั้นการเปลี่ยนเป้าหมายจึงเป็นการเปลี่ยนแปลงการกำหนดค่า ไม่ใช่การเปลี่ยนแปลงโค้ด- สถานะ Terraform ระยะไกลใน Azure เพื่อให้การรันสามารถแชร์ระหว่างเครื่องของผู้ดำเนินการและ CI ได้
สถาปัตยกรรม
หัวข้อที่มีชื่อว่า “สถาปัตยกรรม”| ชั้น | ตัวเลือก | เหตุผล |
|---|---|---|
| Provider | f5-sales-demo/xcsh (Terraform registry) | สร้างจาก F5 XC OpenAPI จัดการ xcsh_dns_zone และทรัพยากร DNS load-balancer ยืนยันตัวตนด้วย API token (Authorization: APIToken <token>) |
| State backend | azurerm (Azure Blob Storage) แบบ access-key auth | สถานะที่ทนทานและแชร์ได้ ใช้ access-key auth เนื่องจาก subscription มอบสิทธิ์เพียง Contributor ซึ่งไม่สามารถกำหนดบทบาท Storage Blob Data Contributor ที่การยืนยันตัวตนแบบไม่มีคีย์ (OIDC / Azure AD) ต้องการได้ |
| การทำงานอัตโนมัติ | GitHub Actions | Plan ทุก pull request, apply เมื่อ merge เข้า main พิกัด backend และ input มาจาก variables ของ repository ส่วน credentials มาจาก secrets |
จุดเริ่มต้น
หัวข้อที่มีชื่อว่า “จุดเริ่มต้น”ขั้นตอน Demo จะนำผ่านวงจรชีวิตทั้งหมดแบบ end-to-end: Build โซนด้วย Terraform, Validate ว่าสามารถ resolve ได้, Failover ด้วย DNS load balancer และ Teardown เริ่มต้นที่ Phase 1 — Build ซึ่งเป็นคู่มือฉบับสมบูรณ์สำหรับการ deploy โซน รวมถึงไฟล์ Terraform ทั้งหมด เวิร์กโฟลว์ CI และ variables และ secrets ที่จำเป็น