Vai al contenuto principale

CLI e strumenti per sviluppatori

Installazione

La CLI NexDNS è un singolo binario senza dipendenze esterne. Scelga il metodo di installazione più adatto al Suo ambiente.

Installazione rapida (Linux / macOS)

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

Homebrew

brew install nexdns/tap/nexdns-cli

Docker

docker pull nexdns/cli

Verifica dell’installazione

Dopo l’installazione, verifichi che la CLI sia disponibile e controlli la versione:

nexdns version

Autenticazione

La CLI richiede un token API per comunicare con l’API NexDNS. È possibile creare un token su nexdns.tech/settings/api-keys.

Salvataggio del token nella configurazione

nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx

Variabile d’ambiente (CI/CD)

export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx

Verifica dello stato di autenticazione

nexdns auth status

File di configurazione

Il token viene memorizzato in ~/.nexdns/config.yaml. La CLI risolve le credenziali nel seguente ordine di priorità:

  1. --token flag (priorità più alta)
  2. Variabile d’ambiente NEXDNS_TOKEN
  3. File di configurazione ~/.nexdns/config.yaml

Gestione delle zone

Gestione delle zone DNS dalla riga di comando. Tutti i comandi per le zone sono sotto il sottocomando nexdns zone.

Elencare le zone

nexdns zone list

Aggiungere una zona

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

Informazioni sulla zona

nexdns zone info example.com

Esportare una zona (formato BIND)

nexdns zone export example.com

Importare un file di zona

Utilizzare --dry-run per visualizzare le modifiche prima di applicarle:

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

Garantire l’esistenza della zona

Crea la zona solo se non esiste già (idempotente):

nexdns zone ensure example.com

Controllare l’integrità della zona

nexdns zone check example.com

Eliminare una zona

nexdns zone delete example.com

Gestione dei record

Gestione dei record DNS all’interno di una zona. Tutti i comandi per i record sono sotto il sottocomando nexdns record.

Elencare i record

nexdns record list example.com

Aggiungere record

# 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

Aggiornare un record

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

Creare il record se mancante

Crea il record solo se non esiste già (corrispondenza esatta di tipo, nome e contenuto). I record esistenti con contenuto diverso non vengono modificati – sicuro per le configurazioni round-robin. Idempotente:

nexdns record ensure example.com A www 1.2.3.4

Eliminare un record

nexdns record delete example.com <record-id>

DNSSEC

Gestione della firma DNSSEC per le zone.

Controllare lo stato DNSSEC

nexdns dnssec status example.com

Abilitare DNSSEC

nexdns dnssec enable example.com

Ottenere i record DS

Recuperare i record DS per configurarli presso il registrar del dominio:

nexdns dnssec ds-records example.com

Disabilitare DNSSEC

nexdns dnssec disable example.com

DNS come codice

Definisca la Sua infrastruttura DNS in modo dichiarativo in un file nexdns.yaml e la gestisca con il controllo di versione. La CLI confronta la configurazione locale con lo stato live e applica solo le modifiche necessarie.

Formato della configurazione

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

Anteprima delle modifiche

Mostra un diff di ciò che cambierebbe senza applicare nulla:

nexdns apply

Applicare le modifiche

Applica le modifiche dopo aver esaminato il diff:

nexdns apply --confirm

Solo diff

nexdns diff

Estrarre lo stato live

Genera un nexdns.yaml dalla configurazione DNS live corrente:

nexdns pull example.com

Sostituzione delle variabili d’ambiente

Utilizzi la sintassi ${VARIABLE} nel file di configurazione. La CLI sostituisce le variabili d’ambiente al momento dell’applicazione, rendendo facile riutilizzare le configurazioni tra ambienti diversi:

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

Docker

La CLI è disponibile come immagine Docker. Inserire il token API tramite la variabile d’ambiente NEXDNS_TOKEN.

Eseguire comandi

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

Importare un file di zona

Montare una directory locale per passare i file di zona al container:

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

Flag globali

I seguenti flag sono disponibili su tutti i comandi:

Opzione Descrizione
--token Token API (sovrascrive il file di configurazione e la variabile d’ambiente)
--api-url Sovrascrive l’URL di base dell’API (predefinito: https://api.nexdns.tech/v1)
--output, -o Formato di output: table (predefinito), json, yaml, csv
--color Forza l’output colorato (auto, always, never)
--quiet, -q Sopprime l’output non essenziale
--verbose, -v Abilita il logging dettagliato (utile per il debug)
--dry-run Visualizza le modifiche senza applicarle
--timeout Timeout della richiesta in secondi (predefinito: 30)

Terraform

Il provider Terraform NexDNS consente di gestire zone e record come risorse Terraform. Installare il provider dal Terraform Registry e configurarlo con il token 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 è uno strumento DNS-as-code di Stack Overflow. Utilizzare il provider NexDNS per gestire le zone in modo dichiarativo.

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 è uno strumento DNS-as-code di GitHub. Installare il provider NexDNS e configurarlo come sorgente o destinazione nella configurazione OctoDNS.

Installare il provider

pip install octodns-nexdns

File config/production.yaml

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

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

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

Utilizziamo cookie per garantire il corretto funzionamento di questo sito web e migliorare la Sua esperienza. Alcuni cookie sono strettamente necessari per il funzionamento del sito, mentre altri sono opzionali.

Può accettare tutti i cookie o limitare la scelta a quelli strettamente necessari. Per maggiori dettagli, consulti la nostra Informativa sulla privacy e la Politica sui cookie.