Ana içeriğe geç

CLI ve Geliştirici Araçları

Kurulum

NexDNS CLI, harici bağımlılığı olmayan tek bir çalıştırılabilir dosyadır. Ortamınıza uygun kurulum yöntemini seçin.

Hızlı Kurulum (Linux / macOS)

curl -sL https://get.nexdns.tech/cli | sh

Homebrew

brew install nexdns/tap/nexdns-cli

Docker

docker pull nexdns/cli

Kurulumu Doğrulama

Kurulumdan sonra CLI'nin kullanılabilir olduğunu doğrulayın ve sürümünü kontrol edin:

nexdns version

Kimlik Doğrulama

CLI, NexDNS API ile iletişim kurmak için bir API jetonu gerektirir. nexdns.tech/settings/api-keys adresinden bir jeton oluşturabilirsiniz.

Jetonu Yapılandırmaya Kaydetme

nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx

Ortam Değişkeni (CI/CD)

export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx

Kimlik Doğrulama Durumunu Kontrol Etme

nexdns auth status

Yapılandırma Dosyası

Jeton ~/.nexdns/config.yaml dosyasında saklanır. CLI, kimlik bilgilerini aşağıdaki öncelik sırasına göre çözümler:

  1. --token bayrağı (en yüksek öncelik)
  2. NEXDNS_TOKEN ortam değişkeni
  3. Yapılandırma dosyası ~/.nexdns/config.yaml

Bölge yönetimi

DNS bölgelerini komut satırından yönetin. Tüm bölge komutları nexdns zone alt komutu altındadır.

Bölgeleri Listeleme

nexdns zone list

Bölge Ekleme

nexdns zone add example.com --ns-group eu

Bölge Bilgisi

nexdns zone info example.com

Bölge Dışa Aktarma (BIND Formatı)

nexdns zone export example.com

Bölge Dosyası İçe Aktarma

Değişiklikleri uygulamadan önce önizlemek için --dry-run kullanın:

nexdns zone import example.com zone.txt --dry-run

Bölgenin Mevcut Olmasını Sağlama

Bölgeyi yalnızca henüz mevcut değilse oluşturur (idempotent):

nexdns zone ensure example.com

Bölge Sağlığını Kontrol Etme

nexdns zone check example.com

Bölge Silme

nexdns zone delete example.com

Kayıt Yönetimi

Bir bölge içindeki DNS kayıtlarını yönetin. Tüm kayıt komutları nexdns record alt komutu altındadır.

Kayıtları Listeleme

nexdns record list example.com

Kayıt Ekleme

# A record
nexdns record add example.com A www 1.2.3.4 --ttl 300

# MX record with priority
nexdns record add example.com MX @ mail.example.com --priority 10

Kayıt Güncelleme

nexdns record update example.com <record-id> --content 5.6.7.8

Kayıt Yoksa Oluşturma

Kaydı yalnızca henüz mevcut değilse oluşturur (tür, ad ve içeriğin tam eşleşmesi). İçeriği farklı olan mevcut kayıtlara dokunulmaz – round-robin yapılandırmaları için güvenlidir. Idempotent:

nexdns record ensure example.com A www 1.2.3.4

Kayıt Silme

nexdns record delete example.com <record-id>

DNSSEC

Bölgeleriniz için DNSSEC imzalamasını yönetin.

DNSSEC Durumunu Kontrol Etme

nexdns dnssec status example.com

DNSSEC'i Etkinleştirme

nexdns dnssec enable example.com

DS Kayıtlarını Alma

Alan adı kayıt şirketinizde yapılandırmak için DS kayıtlarını alın:

nexdns dnssec ds-records example.com

DNSSEC'i Devre Dışı Bırakma

nexdns dnssec disable example.com

Kod olarak DNS

DNS altyapınızı bir nexdns.yaml dosyasında bildirimsel olarak tanımlayın ve sürüm kontrolü ile yönetin. CLI, yerel yapılandırmanızı canlı durumla karşılaştırır ve yalnızca gerekli değişiklikleri uygular.

Yapılandırma Formatı

zones:
  example.com:
    dnssec: true
    records:
      - type: A
        name: "@"
        content: "1.2.3.4"
        ttl: 300
      - type: CNAME
        name: www
        content: example.com

Değişiklikleri Önizleme

Hiçbir şey uygulamadan nelerin değişeceğini gösteren bir fark görüntüleyin:

nexdns apply

Değişiklikleri Uygulama

Farkı inceledikten sonra değişiklikleri uygulayın:

nexdns apply --confirm

Yalnızca Fark

nexdns diff

Canlı Durumu Çekme

Mevcut canlı DNS yapılandırmasından bir nexdns.yaml dosyası oluşturun:

nexdns pull example.com

Ortam Değişkeni Değiştirme

Yapılandırma dosyanızda ${VARIABLE} söz dizimini kullanın. CLI, uygulama sırasında ortam değişkenlerini değiştirir ve yapılandırmaları ortamlar arasında yeniden kullanmayı kolaylaştırır:

zones:
  ${DOMAIN}:
    records:
      - type: A
        name: "@"
        content: "${SERVER_IP}"

Docker

CLI, bir Docker imajı olarak kullanılabilir. API jetonunuzu NEXDNS_TOKEN ortam değişkeni aracılığıyla geçirin.

Komut Çalıştırma

docker run --rm -e NEXDNS_TOKEN=nxd_xxx nexdns/cli zone list

Bölge Dosyası İçe Aktarma

Bölge dosyalarını konteynere aktarmak için yerel bir dizin bağlayın:

docker run --rm -e NEXDNS_TOKEN=nxd_xxx \
    -v ./zones:/zones \
    nexdns/cli zone import example.com /zones/example.com.zone

Genel Bayraklar

Aşağıdaki bayraklar tüm komutlarda kullanılabilir:

Bayrak Açıklama
--token API jetonu (yapılandırma dosyasını ve ortam değişkenini geçersiz kılar)
--api-url API temel URL'sini geçersiz kıl (varsayılan: https://api.nexdns.tech/v1)
--output, -o Çıktı formatı: table (varsayılan), json, yaml, csv
--color Renkli çıktıyı zorla (auto, always, never)
--quiet, -q Gerekli olmayan çıktıyı bastır
--verbose, -v Ayrıntılı günlüğü etkinleştir (hata ayıklama için kullanışlı)
--dry-run Değişiklikleri uygulamadan önizle
--timeout İstek zaman aşımı saniye cinsinden (varsayılan: 30)

Terraform

NexDNS Terraform sağlayıcısı, bölgeleri ve kayıtları Terraform kaynakları olarak yönetmenizi sağlar. Sağlayıcıyı Terraform Registry'den kurun ve API jetonunuzla yapılandırın.

provider "nexdns" {
  api_token = var.nexdns_token
}

resource "nexdns_zone" "main" {
  name     = "example.com"
  ns_group = "eu"
}

resource "nexdns_record" "www" {
  zone_id = nexdns_zone.main.id
  type    = "A"
  name    = "www"
  content = "1.2.3.4"
}

DNSControl entegrasyonu

DNSControl, Stack Overflow tarafından geliştirilen bir DNS-as-code aracıdır. Bölgelerinizi bildirimsel olarak yönetmek için NexDNS sağlayıcısını kullanın.

creds.json

{
    "nexdns": {
        "TYPE": "NEXDNS",
        "api_token": "nxd_xxxxxxxxxxxxxxxxxxxx"
    }
}

dnsconfig.js

var REG_NONE = NewRegistrar("none");
var DSP_NEXDNS = NewDnsProvider("nexdns");

D("example.com", REG_NONE, DnsProvider(DSP_NEXDNS),
    A("@", "1.2.3.4"),
    A("www", "1.2.3.4"),
    MX("@", 10, "mail.example.com."),
    CNAME("blog", "example.com.")
);

OctoDNS

OctoDNS, GitHub tarafından geliştirilen bir DNS-as-code aracıdır. NexDNS sağlayıcısını kurun ve OctoDNS yapılandırmanızda kaynak veya hedef olarak yapılandırın.

Sağlayıcıyı Kurma

pip install octodns-nexdns

Dosya config/production.yaml

providers:
  nexdns:
    class: octodns_nexdns.NexdnsProvider
    api_token: env/NEXDNS_TOKEN

zones:
  example.com.:
    sources:
      - config
    targets:
      - nexdns

Dosya zones/example.com.yaml

"":
  type: A
  value: 1.2.3.4
www:
  type: A
  value: 1.2.3.4
blog:
  type: CNAME
  value: example.com.

Bu web sitesinin düzgün çalışmasını sağlamak ve deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bazı çerezler sitenin çalışması için zorunludur, diğerleri ise isteğe bağlıdır.

Tüm çerezleri kabul edebilir veya yalnızca zorunlu olanlarla sınırlayabilirsiniz. Ayrıntılar için Gizlilik Politikası ve Çerez Politikası sayfalarımızı inceleyebilirsiniz.