Passer au contenu principal

CLI et outils pour développeurs

Installation du CLI

Le CLI NexDNS est un binaire unique sans dépendances externes. Choisissez la méthode d’installation adaptée à votre environnement.

Installation rapide (Linux / macOS)

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

Homebrew

brew install nexdns/tap/nexdns-cli

Docker

docker pull nexdns/cli

Vérifier l’installation

Après l’installation, confirmez que le CLI est disponible et vérifiez sa version :

nexdns version

Authentification

Le CLI nécessite un token API pour communiquer avec l’API NexDNS. Vous pouvez créer un token sur nexdns.tech/settings/api-keys.

Enregistrer le token dans la configuration

nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx

Variable d’environnement (CI/CD)

export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx

Vérifier le statut d’authentification

nexdns auth status

Fichier de configuration

Le token est stocké dans ~/.nexdns/config.yaml. Le CLI résout les identifiants dans l’ordre de priorité suivant :

  1. --token (priorité la plus élevée)
  2. Variable d’environnement NEXDNS_TOKEN
  3. Fichier de configuration ~/.nexdns/config.yaml

Gestion des zones

Gérez les zones DNS en ligne de commande. Toutes les commandes de zone sont sous la sous-commande nexdns zone.

Lister les zones

nexdns zone list

Ajouter une zone

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

Informations sur la zone

nexdns zone info example.com

Exporter une zone (format BIND)

nexdns zone export example.com

Importer un fichier de zone

Utilisez --dry-run pour prévisualiser les modifications avant de les appliquer :

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

Garantir l’existence d’une zone

Crée la zone uniquement si elle n’existe pas déjà (idempotent) :

nexdns zone ensure example.com

Vérifier la santé de la zone

nexdns zone check example.com

Supprimer une zone

nexdns zone delete example.com

Gestion des enregistrements

Gérez les enregistrements DNS au sein d’une zone. Toutes les commandes d’enregistrement sont sous la sous-commande nexdns record.

Lister les enregistrements

nexdns record list example.com

Ajouter des enregistrements

# 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

Mettre à jour un enregistrement

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

Créer l’enregistrement s’il est absent

Crée l’enregistrement uniquement s’il n’existe pas déjà (correspondance exacte du type, du nom et du contenu). Les enregistrements existants au contenu différent ne sont pas modifiés – sûr pour les configurations round-robin. Idempotent :

nexdns record ensure example.com A www 1.2.3.4

Supprimer un enregistrement

nexdns record delete example.com <record-id>

DNSSEC

Gérez la signature DNSSEC de vos zones.

Vérifier le statut DNSSEC

nexdns dnssec status example.com

Activer DNSSEC

nexdns dnssec enable example.com

Obtenir les enregistrements DS

Récupérez les enregistrements DS à configurer auprès de votre bureau d’enregistrement de domaine :

nexdns dnssec ds-records example.com

Désactiver DNSSEC

nexdns dnssec disable example.com

DNS en tant que code

Définissez votre infrastructure DNS de manière déclarative dans un fichier nexdns.yaml et gérez-la avec le contrôle de version. Le CLI compare votre configuration locale à l’état actuel et n’applique que les modifications nécessaires.

Format de configuration

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

Prévisualiser les modifications

Afficher un diff de ce qui changerait sans rien appliquer :

nexdns apply

Appliquer les modifications

Appliquer les modifications après avoir examiné le diff :

nexdns apply --confirm

Diff uniquement

nexdns diff

Récupérer l’état actuel

Générer un nexdns.yaml à partir de la configuration DNS actuelle :

nexdns pull example.com

Substitution de variables d’environnement

Utilisez la syntaxe ${VARIABLE} dans votre fichier de configuration. Le CLI substitue les variables d’environnement au moment de l’application, ce qui facilite la réutilisation des configurations entre les environnements :

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

Docker

Le CLI est disponible en tant qu’image Docker. Transmettez votre token API via la variable d’environnement NEXDNS_TOKEN.

Exécuter des commandes

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

Importer un fichier de zone

Montez un répertoire local pour transmettre des fichiers de zone au conteneur :

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

Options globales

Les options suivantes sont disponibles pour toutes les commandes :

Option Description de l’option
--token Token API (remplace le fichier de configuration et la variable d’environnement)
--api-url Remplacer l’URL de base de l’API (par défaut : https://api.nexdns.tech/v1)
--output, -o Format de sortie : table (par défaut), json, yaml, csv
--color Forcer la sortie colorée (auto, always, never)
--quiet, -q Supprimer la sortie non essentielle
--verbose, -v Activer la journalisation détaillée (utile pour le débogage)
--dry-run Prévisualiser les modifications sans les appliquer
--timeout Délai d’expiration des requêtes en secondes (par défaut : 30)

Terraform

Le provider Terraform NexDNS vous permet de gérer les zones et les enregistrements en tant que ressources Terraform. Installez le provider depuis le Terraform Registry et configurez-le avec votre 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"
}

Intégration DNSControl

DNSControl est un outil DNS-as-code de Stack Overflow. Utilisez le provider NexDNS pour gérer vos zones de manière déclarative.

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 est un outil DNS-as-code de GitHub. Installez le provider NexDNS et configurez-le comme source ou cible dans votre configuration OctoDNS.

Installer le provider

pip install octodns-nexdns

Fichier config/production.yaml

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

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

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

Nous utilisons des cookies pour assurer le bon fonctionnement de ce site et améliorer votre expérience. Certains cookies sont strictement nécessaires au fonctionnement du site, tandis que d'autres sont facultatifs.

Vous pouvez accepter tous les cookies ou limiter votre choix aux cookies strictement nécessaires. Pour plus de détails, consultez notre Politique de confidentialité et notre Politique relative aux cookies.