Przejdź do głównej treści

CLI i narzędzia deweloperskie

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:

  1. --token flaga (najwyższy priorytet)
  2. Zmienna środowiskowa NEXDNS_TOKEN
  3. 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.

Używamy cookies, aby zapewnić prawidłowe działanie tej strony i poprawić Twoje doświadczenia. Niektóre cookies są ściśle niezbędne do działania strony, a inne są opcjonalne.

Możesz zaakceptować wszystkie cookies lub ograniczyć wybór do ściśle niezbędnych. Szczegóły znajdziesz w naszej Polityka prywatności i Polityka cookies.