İçeriğe geç
0850 554 5439 [email protected]

Size nasıl yardımcı olabiliriz?

Rehberlerimizde ve eğitimlerimizde arama yapın ya da aşağıdaki kategorilere göz atın.

Gyro DNS'i API, gyro CLI ve Terraform ile yönetin

71 görüntülenme Kullanım rehberi Son doğrulama: Markdown
Bu rehberde ne öğreneceksinizGyro DNS'teki her işlemi (zone, kayıt, DNSSEC, sağlık kontrolü) REST API, gyro komut satırı aracı ve Terraform ile yapmayı; hangi işlemlerin açık onay (confirm) istediğini ve sık hataları.
Süre15 dakika
Kimin içinDNS kayıtlarını betik, CI hattı ya da altyapı-kod (IaC) ile yöneten geliştiriciler ve sistem yöneticileri.
GerekenlerGyro DNS hizmeti (Ücretsiz ve Pro'da API açıktır), services_read ve services_write izinli bir API anahtarı (Gyro API'ye ilk adım).

1. Hizmet numarası ve kimlik

Tüm DNS uçları Gyro DNS hizmet numaranızla çalışır: /cloud/dns/{id}/.... Bu numarayı müşteri panelindeki hizmet adresinde ya da hizmetin Yönetim → Bağlantı ve API sayfasında görürsünüz; o sayfadaki CLI ve Terraform örneklerinde numaranız hazır yazılıdır.

Bağlantı ve API: CLI ve Terraform örneklerinde hizmet numaranız hazır yazılıdır; kopyalayıp kullanabilirsiniz.

API listesinden de bulabilirsiniz: hizmet listesinde Gyro DNS hizmetleri product_line: "dns" ile döner.

Gereken izin (kapsam) İşlemler
services_read Listeleme, zone ve kayıt okuma, dışa aktarma, DNSSEC durumu
services_write Zone ekleme/silme, kayıt yazma/silme, içe aktarma, DNSSEC, sağlık kontrolü

Anahtarı ortam değişkenine koyun:

bash
read -rs GYRO_TOKEN && export GYRO_TOKEN

2. Uç listesi

İşlem Uç Onay
Zone'ları listele GET /cloud/dns/{id}/zones
Zone ekle POST /cloud/dns/{id}/zones
Zone'u kayıtlarıyla getir GET /cloud/dns/{id}/zones/{zone}
Zone'u sil DELETE /cloud/dns/{id}/zones/{zone} confirm
Sahipliği şimdi doğrula POST /cloud/dns/{id}/zones/{zone}/verify
BIND içe aktar POST /cloud/dns/{id}/zones/{zone}/import confirm
BIND dışa aktar GET /cloud/dns/{id}/zones/{zone}/export
Kayıt kümelerini listele GET /cloud/dns/{id}/zones/{zone}/records
Kayıt kümesi yaz (oluştur ya da değiştir) PUT /cloud/dns/{id}/zones/{zone}/records
Kayıt kümesi sil DELETE /cloud/dns/{id}/zones/{zone}/records confirm
DNSSEC durumu ve DS GET /cloud/dns/{id}/zones/{zone}/dnssec
DNSSEC aç POST /cloud/dns/{id}/zones/{zone}/dnssec
DNSSEC kapat DELETE /cloud/dns/{id}/zones/{zone}/dnssec confirm
Sağlık kontrollerini listele GET /cloud/dns/{id}/health-checks
Sağlık kontrollü kayıt oluştur POST /cloud/dns/{id}/health-checks
Sağlık kontrolünü sil DELETE /cloud/dns/{id}/health-checks/{hid} confirm

Tam alan listesi ve yanıt örnekleri: geliştirici belgeleri ("Managed DNS" bölümü).

Dikkat

Onay sütunu dolu işlemler veri siler ya da değiştirir; gövdede "confirm": true (DELETE isteklerinde ?confirm=true de olur) yoksa 422 confirm_required döner. Bu, yanlışlıkla çalışan bir betiğin zone'unuzu silmesine karşı korumadır.

3. API ile (curl)

Bir kayıt kümesi yazın. Aynı ad ve tipte küme varsa tamamen değiştirilir:

bash
curl -s -X PUT "https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/ornekfirma.com/records" \
  -H "Authorization: Bearer $GYRO_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"www","type":"A","ttl":300,"records":["203.0.113.10","203.0.113.11"]}'
  • name: zone'a göre ad (@ kök, * joker) ya da sonu noktalı tam ad.
  • records: her değer ayrı öğe, zone dosyası yazımıyla (MX için "10 mx1.ornekfirma.com."; TXT'de tırnak isteğe bağlı).

Kayıt kümesini silin:

bash
curl -s -X DELETE "https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/ornekfirma.com/records?name=www&type=A&confirm=true" \
  -H "Authorization: Bearer $GYRO_TOKEN"

Zone ekleyin (ad sunucuları zaten Gyro DNS'teyse hemen yayına girer; değilse yanıttaki txt_name ve txt_value ile doğrulayın):

bash
curl -s -X POST "https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones" \
  -H "Authorization: Bearer $GYRO_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"ornekfirma.com"}'

4. gyro CLI ile

gyro aracını kurmadıysanız: gyro CLI kurulumu ve ilk komutlar. DNS komutları dört grupta durur (v1.5.0 ve sonrası):

Grup Komutlar
gyro dns zone list, create, get, delete, verify, import, export
gyro dns rrset list, set, delete
gyro dns dnssec status, enable, disable
gyro dns health list, create, delete

Örnekler (12345 = Gyro DNS hizmet numaranız):

bash
gyro dns zone list 12345
gyro dns zone create 12345 --name ornekfirma.com
gyro dns rrset set 12345 ornekfirma.com --name www --type A --ttl 300 --records 203.0.113.10,203.0.113.11
gyro dns rrset set 12345 ornekfirma.com --name @ --type MX --records "10 mx1.ornekfirma.com."
gyro dns rrset delete 12345 ornekfirma.com --name www --type A --yes
gyro dns zone export 12345 ornekfirma.com -o text --query bind > ornekfirma.com.zone
gyro dns dnssec enable 12345 ornekfirma.com
gyro dns health create 12345 --zone ornekfirma.com --name @ --type A \
  --primary 203.0.113.10 --backup 198.51.100.20 --check https --port 443 --path /saglik --ttl 60
  • Silme, kapatma ve içe aktarma komutları onay sorar; betiklerde --yes ekleyin (içe aktarmada gyro 1.5.1 ve sonrası gerekir; gyro version --check ile sürümünüze bakın, eskiyse kurulum komutunu yeniden çalıştırın).

  • --records virgülle ayrılmış birden çok değer alır. Değerin kendisinde virgül varsa (ör. bazı TXT kayıtları) --data '{"name":"@","type":"TXT","records":["..."]}' ile JSON gövde verin.

  • Zone dosyası içe aktarma:

    bash
    gyro dns zone import 12345 ornekfirma.com --bind "$(cat ornekfirma.com.zone)" --mode merge --yes
    
  • --mode merge dosyadaki kayıtları ekler/değiştirir, diğerlerine dokunmaz; --mode replace dosyada olmayanları siler.

Bilgi

Kayıt komutlarının adı rrset'tir (kayıt kümesi). gyro dns record komutları ise Gyro'da kayıtlı alan adlarının klasik DNS yönetimi içindir; Gyro DNS zone'larında rrset kullanın.

5. Terraform ile

Gyro sağlayıcısının 0.5.0 ve üstü gyro_dns_zone ve gyro_dns_record kaynaklarını içerir. Sağlayıcıyı ilk kez kullanıyorsanız: Terraform ile Gyro Bulut.

hcl
terraform {
  required_providers {
    gyro = {
      source  = "gyro-hosting/gyro"
      version = ">= 0.5.0"
    }
  }
}

provider "gyro" {}   # anahtarı GYRO_TOKEN ortam değişkeninden okur

resource "gyro_dns_zone" "ornek" {
  service_id = 12345           # Gyro DNS hizmet numaranız
  name       = "ornekfirma.com"
  dnssec     = true
}

resource "gyro_dns_record" "www" {
  service_id = gyro_dns_zone.ornek.service_id
  zone       = gyro_dns_zone.ornek.name
  name       = "www"
  type       = "A"
  ttl        = 300
  records    = ["203.0.113.10"]
}

resource "gyro_dns_record" "mx" {
  service_id = gyro_dns_zone.ornek.service_id
  zone       = gyro_dns_zone.ornek.name
  name       = "@"
  type       = "MX"
  records    = ["10 mx1.ornekfirma.com."]
}

output "ad_sunuculari" { value = gyro_dns_zone.ornek.nameservers }
output "dogrulama_txt" { value = "${gyro_dns_zone.ornek.verification_txt_name} = ${gyro_dns_zone.ornek.verification_txt_value}" }
output "ds"            { value = gyro_dns_zone.ornek.ds_records }

Bilmeniz gerekenler:

  • gyro_dns_record için zone'un yayında olması gerekir. Zone status = "pending" iken önce ad sunucularını değiştirin ya da dogrulama_txt çıktısındaki TXT kaydını ekleyin; sonra terraform apply'ı yeniden çalıştırın.
  • zone_file alanı yalnız zone ilk oluşturulurken bir kez içe aktarılır; sonraki değişiklikleri gyro_dns_record kaynaklarıyla yönetin.
  • Mevcut zone ve kayıtları içe alma: terraform import gyro_dns_zone.ornek 12345/ornekfirma.com ve terraform import gyro_dns_record.www 12345/ornekfirma.com/www/A (kök için ad @).
  • terraform destroy zone'u ve kayıtlarını ad sunucularımızdan hemen kaldırır.

6. Sınırlar

Konu Değer
TTL 60-86400 saniye (sağlık kontrollü kayıtta 30-300)
Kayıt sayısı Zone başına 1.000; bir kümede en çok 100 değer
Zone dosyası En çok 2 MB; SOA ve kök NS atlanır
Kayıt tipleri A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS, NS (kök dışında), PTR
İstek hızı API'nin genel hız sınırı geçerlidir (ayrıntı); çok sık değişiklikte rate_limited döner

7. Sık hatalar

Hata kodu Sebep Çözüm
401 Anahtar yok ya da geçersiz Authorization: Bearer başlığını kontrol edin
403 insufficient_scope Anahtarın services_write izni yok Anahtara yazma izni verin
404 service_not_found Hizmet numarası yanlış ya da bir Gyro DNS hizmeti değil Doğru hizmet numarasını kullanın
422 confirm_required Silme/kapatma/içe aktarma onaysız "confirm": true ekleyin; CLI'da --yes
422 + "Kök adda CNAME olamaz" @ için CNAME type: "ALIAS" kullanın
422 + "DNSSEC açık zone'da ALIAS kullanılamaz" DNSSEC ve ALIAS birlikte Birinden vazgeçin
"Zone bulunamadı" Zone bu hizmete ait değil ya da henüz eklenmedi gyro dns zone list ile kontrol edin

8. Sık sorulan sorular

API ile yaptığım değişiklik ne zaman yayına girer?

Panelle aynı: istek döndüğünde iki ad sunucusuna gönderilmiştir, yanıtların değişmesi en geç yaklaşık bir dakika sürer.

Hosting (cPanel) hesabımdan gelen zone'u API'den okuyabilir miyim?

Evet, salt okunur: GET .../zones/{zone}/records?source=cpanel. Bu zone'lar yazılamaz; değişikliği cPanel'den yapın.

Ücretsiz pakette API kullanılabilir mi?

Evet. API, CLI ve Terraform iki pakette de vardır; fark zone sayısındadır (Ücretsiz 5, Pro 50).

Terraform planında TXT ya da göreli adlar için neden sürekli fark çıkıyor?

Sağlayıcı 0.5.0, tırnaksız TXT ve göreli adları sunucudaki biçimle eşleştirir. Eski sürüm kullanıyorsanız terraform init -upgrade ile güncelleyin.

Birden çok zone'u tek seferde taşımanın en hızlı yolu nedir?

Her zone için gyro dns zone create ve ardından zone dosyasıyla gyro dns zone import çalıştıran kısa bir betik. Zone dosyasını zone oluştururken --bind ile vermek de mümkündür; dosya, zone doğrulanınca içe aktarılır.

Biliyor muydunuz?

Aynı API anahtarıyla bulut sunucu açıp IP'sini doğrudan DNS kaydına yazabilirsiniz: Terraform'da records = [gyro_server.web.ipv4] gibi. Sunucu açmak için İlk bulut sunucunuz.

Sıradaki adım

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.