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:
- Příznak
--token(nejvyšší priorita) - Proměnná prostředí
NEXDNS_TOKEN - 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.