ข้ามไปยังเนื้อหา

ภาพรวม

กรณีการใช้งานนี้จัดการ DNS แบบ authoritative บน F5 Distributed Cloud ด้วย Terraform แผนขนาดเล็กที่นำกลับมาใช้ใหม่ได้จะสร้างโซน DNS หลักและระเบียนสำหรับโดเมนที่มอบหมาย เก็บสถานะไว้ใน Azure Blob Storage และรัน plan-on-pull-request / apply-on-merge ผ่าน GitHub Actions

  • xcsh_dns_zone — โซน primary แบบ authoritative ใน namespace system ของ F5 XC พร้อมระเบียน A ชื่อโซนคือโดเมนที่มอบหมาย (ตัวแปร) ดังนั้นการเปลี่ยนเป้าหมายจึงเป็นการเปลี่ยนแปลงการกำหนดค่า ไม่ใช่การเปลี่ยนแปลงโค้ด
  • สถานะ Terraform ระยะไกลใน Azure เพื่อให้การรันสามารถแชร์ระหว่างเครื่องของผู้ดำเนินการและ CI ได้
ชั้นตัวเลือกเหตุผล
Providerf5-sales-demo/xcsh (Terraform registry)สร้างจาก F5 XC OpenAPI จัดการ xcsh_dns_zone และทรัพยากร DNS load-balancer ยืนยันตัวตนด้วย API token (Authorization: APIToken <token>)
State backendazurerm (Azure Blob Storage) แบบ access-key authสถานะที่ทนทานและแชร์ได้ ใช้ access-key auth เนื่องจาก subscription มอบสิทธิ์เพียง Contributor ซึ่งไม่สามารถกำหนดบทบาท Storage Blob Data Contributor ที่การยืนยันตัวตนแบบไม่มีคีย์ (OIDC / Azure AD) ต้องการได้
การทำงานอัตโนมัติGitHub ActionsPlan ทุก 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 ที่จำเป็น