Instalacja
CLI NexDNS to pojedynczy plik binarny bez zewnętrznych zależności. Wybierz metodę instalacji odpowiednią dla Twojego środowiska.
Szybka instalacja (Linux / macOS)
curl -sL https://get.nexdns.tech/cli | sh
Homebrew
brew install nexdns/tap/nexdns-cli
Docker
docker pull nexdns/cli
Weryfikacja instalacji
Po instalacji sprawdź, czy CLI jest dostępne i wyświetl wersję:
nexdns version
Autoryzacja
CLI wymaga tokenu API do komunikacji z API NexDNS. Token możesz utworzyć pod adresem nexdns.tech/settings/api-keys.
Zapisz token w konfiguracji
nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx
Zmienna środowiskowa (CI/CD)
export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx
Sprawdź status autoryzacji
nexdns auth status
Plik konfiguracyjny CLI
Token jest przechowywany w ~/.nexdns/config.yaml. CLI rozwiązuje dane uwierzytelniające w następującej kolejności priorytetów:
--tokenflaga (najwyższy priorytet)- Zmienna środowiskowa
NEXDNS_TOKEN - Plik konfiguracyjny
~/.nexdns/config.yaml
Zarządzanie strefami
Zarządzaj strefami DNS z wiersza poleceń. Wszystkie polecenia stref znajdują się pod komendą nexdns zone.
Wyświetl strefy
nexdns zone list
Dodaj strefę
nexdns zone add example.com --ns-group eu
Informacje o strefie
nexdns zone info example.com
Eksportuj strefę (format BIND)
nexdns zone export example.com
Importuj plik strefy
Użyj --dry-run, aby podejrzeć zmiany przed ich zastosowaniem:
nexdns zone import example.com zone.txt --dry-run
Zapewnij istnienie strefy
Tworzy strefę tylko wtedy, gdy jeszcze nie istnieje (idempotentnie):
nexdns zone ensure example.com
Sprawdź kondycję strefy
nexdns zone check example.com
Usuń strefę
nexdns zone delete example.com
Zarządzanie rekordami
Zarządzaj rekordami DNS w strefie. Wszystkie polecenia rekordów znajdują się pod komendą nexdns record.
Wyświetl rekordy
nexdns record list example.com
Dodaj rekordy
# 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
Zaktualizuj rekord
nexdns record update example.com <record-id> --content 5.6.7.8
Utwórz rekord, jeśli go brak
Tworzy rekord tylko wtedy, gdy jeszcze nie istnieje (dokładne dopasowanie typu, nazwy i zawartości). Istniejące rekordy o innej zawartości pozostają nienaruszone – bezpieczne dla konfiguracji round-robin. Idempotentnie:
nexdns record ensure example.com A www 1.2.3.4
Usuń rekord
nexdns record delete example.com <record-id>
DNSSEC
Zarządzaj podpisywaniem DNSSEC dla stref.
Sprawdź status DNSSEC
nexdns dnssec status example.com
Włącz DNSSEC
nexdns dnssec enable example.com
Pobierz rekordy DS
Pobierz rekordy DS do skonfigurowania u rejestratora domen:
nexdns dnssec ds-records example.com
Wyłącz DNSSEC
nexdns dnssec disable example.com
DNS jako kod
Definiuj infrastrukturę DNS deklaratywnie w pliku nexdns.yaml i zarządzaj nią za pomocą kontroli wersji. CLI porównuje lokalną konfigurację ze stanem aktualnym i stosuje tylko niezbędne zmiany.
Format konfiguracji
zones:
example.com:
dnssec: true
records:
- type: A
name: "@"
content: "1.2.3.4"
ttl: 300
- type: CNAME
name: www
content: example.com
Podgląd zmian
Pokaż różnice bez stosowania zmian:
nexdns apply
Zastosuj zmiany
Zastosuj zmiany po przejrzeniu różnic:
nexdns apply --confirm
Tylko różnice
nexdns diff
Pobierz aktualny stan
Wygeneruj plik nexdns.yaml z bieżącej konfiguracji DNS:
nexdns pull example.com
Podstawianie zmiennych środowiskowych
Użyj składni ${VARIABLE} w pliku konfiguracyjnym. CLI podstawia zmienne środowiskowe podczas stosowania, ułatwiając ponowne wykorzystanie konfiguracji w różnych środowiskach:
zones:
${DOMAIN}:
records:
- type: A
name: "@"
content: "${SERVER_IP}"
Docker
CLI jest dostępne jako obraz Docker. Przekaż token API za pomocą zmiennej środowiskowej NEXDNS_TOKEN.
Uruchamianie poleceń
docker run --rm -e NEXDNS_TOKEN=nxd_xxx nexdns/cli zone list
Importuj plik strefy
Zamontuj lokalny katalog, aby przekazać pliki stref do kontenera:
docker run --rm -e NEXDNS_TOKEN=nxd_xxx \
-v ./zones:/zones \
nexdns/cli zone import example.com /zones/example.com.zone
Flagi globalne
Następujące flagi są dostępne dla wszystkich poleceń:
| Flaga | Opis |
|---|---|
--token |
Token API (nadpisuje plik konfiguracyjny i zmienną środowiskową) |
--api-url |
Nadpisz bazowy URL API (domyślnie: https://api.nexdns.tech/v1) |
--output, -o |
Format wyjściowy: table (domyślnie), json, yaml, csv |
--color |
Wymuś kolorowe wyjście (auto, always, never) |
--quiet, -q |
Pomiń nieistotne wyjście |
--verbose, -v |
Włącz szczegółowe logowanie (przydatne do debugowania) |
--dry-run |
Podgląd zmian bez ich stosowania |
--timeout |
Limit czasu zapytania w sekundach (domyślnie: 30) |
Terraform
Provider Terraform NexDNS umożliwia zarządzanie strefami i rekordami jako zasobami Terraform. Zainstaluj provider z Terraform Registry i skonfiguruj go za pomocą tokenu API.
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
DNSControl to narzędzie DNS jako kod od Stack Overflow. Użyj providera NexDNS do deklaratywnego zarządzania strefami.
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 to narzędzie DNS-as-code od GitHub. Zainstaluj provider NexDNS i skonfiguruj go jako źródło lub cel w konfiguracji OctoDNS.
Zainstaluj provider
pip install octodns-nexdns
config/production.yaml
providers:
nexdns:
class: octodns_nexdns.NexdnsProvider
api_token: env/NEXDNS_TOKEN
zones:
example.com.:
sources:
- config
targets:
- nexdns
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.