Installationsanleitung
Das NexDNS CLI ist eine einzelne Binärdatei ohne externe Abhängigkeiten. Wählen Sie die Installationsmethode, die zu Ihrer Umgebung passt.
Schnellinstallation (Linux / macOS)
curl -sL https://get.nexdns.tech/cli | sh
Homebrew
brew install nexdns/tap/nexdns-cli
Docker
docker pull nexdns/cli
Installation überprüfen
Bestätigen Sie nach der Installation, dass das CLI verfügbar ist, und prüfen Sie die Version:
nexdns version
Authentifizierung
Das CLI benötigt ein API-Token zur Kommunikation mit der NexDNS API. Sie können ein Token unter nexdns.tech/settings/api-keys erstellen.
Token in Konfiguration speichern
nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx
Umgebungsvariable (CI/CD)
export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx
Authentifizierungsstatus prüfen
nexdns auth status
Konfigurationsdatei
Das Token wird in ~/.nexdns/config.yaml gespeichert. Das CLI löst Anmeldedaten in der folgenden Prioritätsreihenfolge auf:
--token-Flag (höchste Priorität)- Umgebungsvariable
NEXDNS_TOKEN - Konfigurationsdatei
~/.nexdns/config.yaml
Zonenverwaltung
Verwalten Sie DNS-Zonen über die Kommandozeile. Alle Zonenbefehle befinden sich unter dem Unterbefehl nexdns zone.
Zonen auflisten
nexdns zone list
Zone hinzufügen
nexdns zone add example.com --ns-group eu
Zoneninformationen
nexdns zone info example.com
Zone exportieren (BIND-Format)
nexdns zone export example.com
Zonendatei importieren
Verwenden Sie --dry-run, um Änderungen vor der Anwendung in der Vorschau zu sehen:
nexdns zone import example.com zone.txt --dry-run
Zonenexistenz sicherstellen
Erstellt die Zone nur, wenn sie noch nicht existiert (idempotent):
nexdns zone ensure example.com
Zonenstatus prüfen
nexdns zone check example.com
Zone löschen
nexdns zone delete example.com
Eintragsverwaltung
Verwalten Sie DNS-Einträge innerhalb einer Zone. Alle Eintragsbefehle befinden sich unter dem Unterbefehl nexdns record.
Einträge auflisten
nexdns record list example.com
Einträge hinzufügen
# 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
Eintrag aktualisieren
nexdns record update example.com <record-id> --content 5.6.7.8
Eintrag bei Fehlen anlegen
Legt den Eintrag nur an, wenn er noch nicht existiert (exakte Übereinstimmung von Typ, Name und Inhalt). Bestehende Einträge mit abweichendem Inhalt bleiben unangetastet – sicher für Round-Robin-Setups. Idempotent:
nexdns record ensure example.com A www 1.2.3.4
Eintrag löschen
nexdns record delete example.com <record-id>
DNSSEC
Verwalten Sie die DNSSEC-Signierung für Ihre Zonen.
DNSSEC-Status prüfen
nexdns dnssec status example.com
DNSSEC aktivieren
nexdns dnssec enable example.com
DS-Einträge abrufen
DS-Einträge abrufen, um sie bei Ihrem Domain-Registrar zu konfigurieren:
nexdns dnssec ds-records example.com
DNSSEC deaktivieren
nexdns dnssec disable example.com
DNS als Code
Definieren Sie Ihre DNS-Infrastruktur deklarativ in einer nexdns.yaml-Datei und verwalten Sie sie mit Versionskontrolle. Das CLI vergleicht Ihre lokale Konfiguration mit dem Live-Zustand und wendet nur die notwendigen Änderungen an.
Konfigurationsformat
zones:
example.com:
dnssec: true
records:
- type: A
name: "@"
content: "1.2.3.4"
ttl: 300
- type: CNAME
name: www
content: example.com
Änderungen vorschauen
Zeigt einen Diff der Änderungen an, ohne etwas anzuwenden:
nexdns apply
Änderungen anwenden
Wenden Sie die Änderungen nach der Überprüfung des Diffs an:
nexdns apply --confirm
Nur Diff
nexdns diff
Live-Zustand abrufen
Generieren Sie eine nexdns.yaml aus der aktuellen Live-DNS-Konfiguration:
nexdns pull example.com
Umgebungsvariablen-Substitution
Verwenden Sie die Syntax ${VARIABLE} in Ihrer Konfigurationsdatei. Das CLI ersetzt Umgebungsvariablen zum Zeitpunkt der Anwendung, sodass Konfigurationen einfach über verschiedene Umgebungen hinweg wiederverwendet werden können:
zones:
${DOMAIN}:
records:
- type: A
name: "@"
content: "${SERVER_IP}"
Docker
Das CLI ist als Docker-Image verfügbar. Übergeben Sie Ihr API-Token über die Umgebungsvariable NEXDNS_TOKEN.
Befehle ausführen
docker run --rm -e NEXDNS_TOKEN=nxd_xxx nexdns/cli zone list
Zonendatei importieren
Binden Sie ein lokales Verzeichnis ein, um Zonendateien in den Container zu übergeben:
docker run --rm -e NEXDNS_TOKEN=nxd_xxx \
-v ./zones:/zones \
nexdns/cli zone import example.com /zones/example.com.zone
Globale Flags
Die folgenden Flags sind bei allen Befehlen verfügbar:
| Optionsflag | Beschreibung |
|---|---|
--token |
API-Token (überschreibt Konfigurationsdatei und Umgebungsvariable) |
--api-url |
API-Basis-URL überschreiben (Standard: https://api.nexdns.tech/v1) |
--output, -o |
Ausgabeformat: table (Standard), json, yaml, csv |
--color |
Farbige Ausgabe erzwingen (auto, always, never) |
--quiet, -q |
Nicht wesentliche Ausgaben unterdrücken |
--verbose, -v |
Ausführliche Protokollierung aktivieren (nützlich für Debugging) |
--dry-run |
Änderungen vorschauen, ohne sie anzuwenden |
--timeout |
Anfrage-Timeout in Sekunden (Standard: 30) |
Terraform
Der NexDNS Terraform-Provider ermöglicht die Verwaltung von Zonen und Einträgen als Terraform-Ressourcen. Installieren Sie den Provider aus der Terraform Registry und konfigurieren Sie ihn mit Ihrem API-Token.
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-Integration
DNSControl ist ein DNS-as-Code-Tool von Stack Overflow. Verwenden Sie den NexDNS-Provider, um Ihre Zonen deklarativ zu verwalten.
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 ist ein DNS-as-Code-Tool von GitHub. Installieren Sie den NexDNS-Provider und konfigurieren Sie ihn als Quelle oder Ziel in Ihrer OctoDNS-Konfiguration.
Provider installieren
pip install octodns-nexdns
Konfigurationsdatei config/production.yaml
providers:
nexdns:
class: octodns_nexdns.NexdnsProvider
api_token: env/NEXDNS_TOKEN
zones:
example.com.:
sources:
- config
targets:
- nexdns
Zonendatei 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.