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 관리와 같이 구성에 필요한 권한만 키에 부여하십시오.

대시보드에서 API 키를 생성하세요

현재 관리 대상

리소스: 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>).

모든 엔드포인트 살펴보기

제공업체가 아직 관리하지 않는 모든 항목은 API에서 사용할 수 있으며, 이는 API 참조 문서에 엔드포인트별로 설명되어 있습니다.

API 참조