Общий синтаксис

Все команды следуют единому синтаксису и поддерживают глобальные флаги.

Общий формат команды

Синтаксис:

dnscli <Command> [flags]

Описание элементов:

  • <Command> — имя команды (например, ZoneCreate, RecordAddA, RecordBulk);

  • [flags] — опциональные параметры, включая глобальные и специфичные для команды.

Глобальные флаги

Все команды поддерживают следующие глобальные флаги, которые влияют на поведение клиента независимо от типа операции:

  • --server — FQDN, IP или NetBIOS-имя сервера elles-dns-api (по умолчанию: localhost); используется для подключения к удаленному хосту;

  • --username — учетные данные для аутентификации Kerberos: current (использовать текущий TGT), UPN (<user>@<REALM>), а также FQDN, IP-адрес или NetBIOS-имя, если они зарегистрированы как SPN в службе каталогов;

  • --json — выводит результат в структурированном JSON-формате; все ошибки также возвращаются в виде JSON;

    В режиме --json все ошибки также выводятся в формате JSON:

    {
      "error": {
        "message": "zone not found",
        "code": 404,
        "request_id": "abc123..."
      },
      "success": false
    }
  • --verbose — уровень детализации вывода: short (краткий) или full (полный, включает метаданные запроса);

  • --ErrorAction — поведение при ошибке: Stop (прервать выполнение), Continue (продолжить), Ignore (игнорировать), SilentlyContinue (игнорировать без сообщения);

  • --dry-run — пробный запуск: проверяет корректность параметров и выводит план операции, но не выполняет изменения;

  • --insecure — пропускает проверку TLS-сертификата сервера; используется для тестирования с самоподписанными сертификатами;

  • --table-style — стиль вывода таблиц: light, bold, rounded, double, plain. Управляет визуальным оформлением текстового вывода.

Примеры использования с глобальными флагами

Запрос информации о зоне с явным указанием сервера и JSON-выводом:

dnscli ZoneInfo --name example.com --server dns-api-server.example.com --json

Создание A-записи с пробным прогоном и полной детализацией:

dnscli RecordAddA --name www.example.com --data 192.168.1.10 --dry-run --verbose full

Удаление узла с игнорированием ошибок и выбором стиля оформления таблицы:

dnscli NodeDelete --name stale.example.com --force --ErrorAction SilentlyContinue --table-style plain

Массовая операция с указанием пользователя и пропуском проверки TLS:

cat bulk-ops.json | dnscli RecordBulk --zonename example.com --username user@EXAMPLE.COM --insecure

Правила применения флагов

При указании глобальных флагов учитывайте:

  • глобальные флаги могут быть указаны в любом порядке перед командой или после нее;

  • специфичные флаги (например, --data, --zonename, --partition) обязательны для конкретных команд и описаны в документации каждой команды;

  • при использовании --json все ответы (включая ошибки) — структурированный JSON, что позволяет удобно разбирать их в скриптах:

    if dnscli ZoneInfo --name example.com --json | jq -e '.success == true' >/dev/null; then
        echo "Zone exists"
    fi

Обновлено: