Přejít k hlavnímu obsahu

CLI a vývojářské nástroje

Instalace

NexDNS CLI je jeden binární soubor bez externích závislostí. Vyberte si způsob instalace, který vyhovuje vašemu prostředí.

Rychlá instalace (Linux / macOS)

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

Homebrew

brew install nexdns/tap/nexdns-cli

Docker

docker pull nexdns/cli

Ověření instalace

Po instalaci ověřte, že CLI je dostupné, a zkontrolujte jeho verzi:

nexdns version

Autentizace

CLI vyžaduje API token pro komunikaci s NexDNS API. Token si můžete vytvořit na nexdns.tech/settings/api-keys.

Uložení tokenu do konfigurace

nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx

Proměnná prostředí (CI/CD)

export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx

Kontrola stavu autentizace

nexdns auth status

Konfigurační soubor

Token je uložen v ~/.nexdns/config.yaml. CLI řeší přihlašovací údaje v následujícím pořadí priority:

  1. Příznak --token (nejvyšší priorita)
  2. Proměnná prostředí NEXDNS_TOKEN
  3. Konfigurační soubor ~/.nexdns/config.yaml

Správa zón

Správa DNS zón z příkazové řádky. Všechny příkazy pro zóny jsou pod podpříkazem nexdns zone.

Výpis zón

nexdns zone list

Přidání zóny

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

Informace o zóně

nexdns zone info example.com

Export zóny (formát BIND)

nexdns zone export example.com

Import souboru zóny

Použijte --dry-run pro náhled změn před jejich provedením:

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

Zajištění existence zóny

Vytvoří zónu pouze v případě, že dosud neexistuje (idempotentní):

nexdns zone ensure example.com

Kontrola stavu zóny

nexdns zone check example.com

Smazání zóny

nexdns zone delete example.com

Správa záznamů

Správa DNS záznamů v rámci zóny. Všechny příkazy pro záznamy jsou pod podpříkazem nexdns record.

Výpis záznamů

nexdns record list example.com

Přidání záznamů

# 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

Aktualizace záznamu

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

Vytvoření záznamu, pokud chybí

Vytvoří záznam pouze v případě, že dosud neexistuje (přesná shoda typu, názvu a obsahu). Stávající záznamy s odlišným obsahem zůstanou nedotčené – bezpečné pro round-robin konfigurace. Idempotentní:

nexdns record ensure example.com A www 1.2.3.4

Smazání záznamu

nexdns record delete example.com <record-id>

DNSSEC

Správa podepisování DNSSEC pro vaše zóny.

Kontrola stavu DNSSEC

nexdns dnssec status example.com

Aktivace DNSSEC

nexdns dnssec enable example.com

Získání záznamů DS

Získání záznamů DS pro konfiguraci u vašeho registrátora domén:

nexdns dnssec ds-records example.com

Deaktivace DNSSEC

nexdns dnssec disable example.com

DNS jako kód

Definujte svou DNS infrastrukturu deklarativně v souboru nexdns.yaml a spravujte ji pomocí verzovacího systému. CLI porovná vaši lokální konfiguraci s aktuálním stavem a provede pouze nezbytné změny.

Formát konfigurace

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

Náhled změn

Zobrazení diffu toho, co by se změnilo, bez provedení jakýchkoli změn:

nexdns apply

Aplikace změn

Aplikujte změny po kontrole diffu:

nexdns apply --confirm

Pouze diff

nexdns diff

Stažení aktuálního stavu

Vygenerujte soubor nexdns.yaml z aktuální živé konfigurace DNS:

nexdns pull example.com

Substituce proměnných prostředí

V konfiguračním souboru použijte syntaxi ${VARIABLE}. CLI nahradí proměnné prostředí při aplikaci, což usnadňuje opětovné použití konfigurací napříč prostředími:

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

Docker

CLI je k dispozici jako Docker image. Předejte svůj API token prostřednictvím proměnné prostředí NEXDNS_TOKEN.

Spuštění příkazů

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

Import souboru zóny

Připojte lokální adresář pro předání souborů zón do kontejneru:

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

Globální příznaky

Následující příznaky jsou k dispozici u všech příkazů:

Příznak Popis
--token API token (přepíše konfigurační soubor a proměnnou prostředí)
--api-url Přepsání základní URL API (výchozí: https://api.nexdns.tech/v1)
--output, -o Formát výstupu: table (výchozí), json, yaml, csv
--color Vynutit barevný výstup (auto, always, never)
--quiet, -q Potlačení nepodstatného výstupu
--verbose, -v Aktivace podrobného logování (užitečné pro ladění)
--dry-run Náhled změn bez jejich provedení
--timeout Časový limit požadavku v sekundách (výchozí: 30)

Terraform

NexDNS Terraform provider umožňuje spravovat zóny a záznamy jako Terraform resources. Nainstalujte provider z Terraform Registry a nakonfigurujte ho s vaším API tokenem.

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"
}

Integrace DNSControl

DNSControl je nástroj pro DNS-as-code od Stack Overflow. Použijte NexDNS provider pro deklarativní správu vašich zó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 je nástroj pro DNS-as-code od GitHub. Nainstalujte NexDNS provider a nakonfigurujte ho jako zdroj nebo cíl ve vaší konfiguraci OctoDNS.

Instalace provideru

pip install octodns-nexdns

Soubor config/production.yaml

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

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

Soubor 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.

Používáme soubory cookie k zajištění správného fungování těchto webových stránek a ke zlepšení Vašeho prohlížení. Některé soubory cookie jsou nezbytně nutné pro provoz webu, zatímco jiné jsou volitelné.

Můžete přijmout všechny soubory cookie, nebo omezit svůj výběr pouze na nezbytné. Podrobnosti naleznete v našich Zásadách ochrany osobních údajů a Zásadách cookies.