Terraform 공급자
DNS를 코드로 관리하세요
당사의 Terraform 공급자인 zinn-digital/zinn은 귀하의 조직 도메인에 있는 DNS 레코드를 관리하고 사이트, 도메인, 플랜 및 호스팅 리전을 데이터 소스로 읽습니다. Terraform Registry에 게시되어 있으며 다른 모든 것과 동일한 퍼블릭 API를 기반으로 구축되었습니다.
설치
공급자를 선언하고 terraform init을 실행하십시오. 릴리스는 서명되어 있으며, Terraform은 공급자를 다운로드할 때 서명을 확인합니다.
terraform {
required_providers {
zinn = {
source = "zinn-digital/zinn"
}
}
}
# api_key falls back to ZINN_API_KEY.
provider "zinn" {}빠른 시작
이름으로 도메인을 검색하여 www를 연결한 다음, 호스팅 리전을 나열하십시오.
data "zinn_regions" "all" {}
data "zinn_domains" "all" {}
resource "zinn_dns_record" "www" {
domain_id = one([for d in data.zinn_domains.all.domains : d.id if d.fqdn == "example.com"])
name = "www"
type = "CNAME"
value = "example.com."
ttl = 3600
}
output "regions" { value = [for r in data.zinn_regions.all.regions : r.slug] }인증
공급자는 api_key 인수 또는 ZINN_API_KEY 환경 변수에서 조직별 API 키를 읽습니다. regions 및 plans 데이터 소스에는 키가 필요하지 않습니다. 사이트 보기 및 DNS 관리와 같이 구성에 필요한 권한만 키에 부여하십시오.
현재 관리 대상
리소스: zinn_dns_record
도메인의 DNS 레코드(A, AAAA, CNAME, MX, TXT, SRV 및 해당 영역에서 지원하는 기타 유형)를 생성, 업데이트, 삭제 및 가져오기할 수 있습니다.
데이터 소스
zinn_sites 및 zinn_domains는 귀하의 조직을 읽습니다. zinn_regions 및 zinn_plans는 공개 카탈로그를 읽으며 키가 필요하지 않습니다.
사양에서 생성됨
공급자의 요청 및 응답 모델은 당사의 OpenAPI 사양에서 생성되며, 새 릴리스는 Terraform Registry에 자동으로 게시됩니다.
인벤토리 읽기
데이터 소스에는 리소스가 전혀 필요하지 않으므로 이미 가지고 있는 항목을 읽는 것으로 시작할 수 있습니다.
# A read-only inventory of your organisation and the catalogue.
data "zinn_sites" "all" {}
data "zinn_plans" "agency" { product_line = "agency" }
output "site_count" { value = length(data.zinn_sites.all.sites) }
output "agency_plans" { value = [for p in data.zinn_plans.agency.plans : p.code] }질문
Terraform 공급자가 있습니까?
예. Terraform Registry의 source = "zinn-digital/zinn"을 사용하세요. 현재는 DNS 레코드를 관리하고 사이트, 도메인, 요금제 및 호스팅 리전을 읽습니다.
Terraform으로 사이트나 사서함을 만들 수 있나요?
아직 아닙니다. 사이트, 사서함 및 요금제는 대시보드, API, SDK 또는 Zinnector® CLI를 통해 관리됩니다. 공급업체는 DNS 레코드를 관리하고 나머지를 읽습니다.
기존 DNS 레코드를 Terraform 관리 하에 가져오려면 어떻게 해야 하나요?
도메인 ID와 레코드 ID를 슬래시로 구분하여 terraform import를 실행하십시오(예: terraform import zinn_dns_record.www <domain_id>/<record_id>).