Spec-Zone.ru › Ansible

Модуль graphiant.naas.graphiant_device_system — настройка имени устройства, региона и сайта (Edge или Core)

Примечание

Этот модуль входит в коллекцию graphiant.naas (версия 26.4.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install graphiant.naas. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в сценарии, укажите: graphiant.naas.graphiant_device_system.

Добавлено в graphiant.naas 26.4.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Задает name, regionName и site для объекта edge или core для PUT /v1/devices/{device_id}/config в соответствии с https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/docs/V1DevicesDeviceIdConfigPutRequest.md.
  • В YAML и параметрах модуля используются те же ключи, что и в полезной нагрузке ветви API (кроме необязательного device_type, который выбирает ветвь edge или core и не отправляется в теле запроса).
  • После GET /v1/devices/{id} модуль сопоставляет значение role на портале с ветвью конфигурации (core → core, cpe → edge), если device_type не указан. Если задан device_type, он должен соответствовать этому сопоставлению.
  • Укажите system_config_file для списка device_system, содержащего несколько устройств, и/или device с name / regionName / site, чтобы обработать одно устройство или переопределить параметры одного устройства из файла.
  • Только заданные вами ключи объединяются с текущим состоянием устройства; незаданные ключи остаются без изменений.
  • Если задан site.name, проверяется наличие сайта на портале.
  • Модуль идемпотентен, если объединенная полезная нагрузка уже соответствует устройству. Текущее состояние считывается из GET /v1/devices/{id} с использованием hostname в качестве name, regionOverride.name, если он задан, иначе region.name в качестве regionName, и site.name в качестве site, в соответствии с объектом устройства на портале.
  • Полностью опустите site, чтобы оставить сайт на портале без изменений. Ключ YAML site с пустым значением или без name считается незаданным (это не запрос на удаление сайта).
  • Если у устройства нет сайта на портале, а нужная конфигурация также не содержит site, отправка конфигурации не выполняется, поскольку API может отклонить обновление. Задача завершается с ошибкой, а в skipped_no_site перечисляются затронутые имена узлов. В этом запуске (прерванном) никакие другие устройства в том же сценарии не обновляются, пока вы не назначите сайт на портале или не зададите site в YAML.

Требования

На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.

  • python >= 3.7
  • graphiant-sdk >= 26.4.0

Параметры

Параметр

Комментарии

access_token

string

Токен Bearer для аутентификации в API (например, полученный с помощью graphiant login, который открывает браузер для входа (SSO или без SSO) и получает токен).

Если аргумент модуля не задан, коллекция считывает GRAPHIANT_ACCESS_TOKEN (задается после graphiant login при выполнении source ~/.graphiant/env.sh).

Если токен Bearer указан (в аргументе модуля или в переменной окружения), он имеет приоритет над username и password.

Если действительный токен недоступен, модуль проходит аутентификацию с помощью username и password, если указаны оба параметра.

detailed_logs

boolean

Включить подробное журналирование в сообщении о результате задачи.

Допустимые значения:

  • false ← (по умолчанию)
  • true

device

string

Имя устройства на портале для get_device_id. При использовании system_config_file — необязательные переопределения параметров этого устройства.

Обязательно, если не задан system_config_file (режим одного устройства).

device_type

string

Выбирает ветвь edge или core для PUT .../config. Не передается в теле запроса API.

Необязательный параметр. Если он не задан, ветвь определяется по значению role устройства на портале в GET /v1/devices/{id} (core для core, cpe для edge/CPE). Если он задан, то должен соответствовать определенной таким образом ветви.

Допустимые значения:

  • "edge"
  • "core"

host

псевдонимы: base_url

string / обязательный

URL хоста портала Graphiant для подключения к API.

Пример: «https://api.graphiant.com»

name

string

Имя узла устройства (API edge.name / core.name).

operation

string

Поддерживается только configure.

Допустимые значения:

  • "configure" ← (по умолчанию)

password

string

Пароль портала Graphiant для аутентификации.

Обязателен для входа по паролю, если действительный токен Bearer недоступен из access_token или GRAPHIANT_ACCESS_TOKEN.

regionName

string

Название региона устройства (API regionName).

site

dictionary

Объект сайта (API site), например {name: "MySite"}. Если параметр задан, сайт должен существовать на портале.

state

string

Поддерживается только present.

Допустимые значения:

  • "present" ← (по умолчанию)

system_config_file

псевдонимы: device_system_file

string

Путь к YAML-файлу (необязателен, если задан device с хотя бы одним из параметров name, regionName, site).

Относительные пути разрешаются относительно пути конфигурации коллекции (см. GRAPHIANT_CONFIGS_PATH).

Ключ верхнего уровня device_system содержит список словарей; каждый словарь содержит один ключ — имя устройства на портале.

username

string

Имя пользователя портала Graphiant для аутентификации.

Обязательно для входа по паролю, если действительный токен Bearer недоступен из access_token или GRAPHIANT_ACCESS_TOKEN.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

В режиме проверки конфигурация не отправляется; модуль считывает текущее состояние устройства, чтобы определить, потребуются ли изменения. Значение changed равно true, если необходимо обновить хотя бы одно устройство, кроме случаев, когда для устройства обнаружена ошибка отсутствия сайта (задача завершается с ошибкой, changed — false). Полезные нагрузки, которые будут отправлены, регистрируются базовым клиентом с префиксом [check_mode].

Поддерживает режим проверки аналогично другим модулям конфигурации устройств.

diff_mode

Поддержка: полная

Если сценарий выполняется с --diff и ветвь устройства должна измениться, модуль возвращает словарь diff (строки before / after). Структурированные записи также доступны в details.diff_plan.

Поддерживает --diff Ansible для ожидающих обновлений ветвей edge/core.

Примечания

Примечание

  • Отмена конфигурации не поддерживается; применяйте нужные значения с помощью operation=configure.
  • Файлы конфигурации поддерживают синтаксис шаблонов Jinja2 для динамической подстановки значений.
  • В режиме ansible-playbook --check запись не выполняется, но changed отражает, обновило бы применение хотя бы одно устройство, если только для устройства не нарушено правило отсутствия сайта; в этом случае задача завершается с ошибкой, а changed равно false. Используйте --diff вместе с режимом проверки, чтобы предварительно просмотреть изменения ветвей, если запуск завершился бы успешно.

См. также

См. также

graphiant.naas.graphiant_device_config

Отправка произвольных необработанных полезных нагрузок конфигурации устройства.

graphiant.naas.graphiant_sites

Создание сайтов, на которые ссылается site.name, и управление ими.

Примеры

- name: Configure from YAML (device_system list)
  graphiant.naas.graphiant_device_system:
    operation: configure
    system_config_file: "sample_device_system.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: sys_result

- name: Single device from module parameters (branch from portal role if device_type omitted)
  graphiant.naas.graphiant_device_system:
    operation: configure
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    device: "edge-3-sdktest"
    name: "edge-3-sdktest"
    regionName: "us-east-2 (Atlanta)"
    site:
      name: "New York-sdktest"
    detailed_logs: true

- name: Override site for one device from the file
  graphiant.naas.graphiant_device_system:
    operation: configure
    system_config_file: "sample_device_system.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    device: "edge-3-sdktest"
    site:
      name: "San Jose-sdktest"

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

aborted_pushes_due_to_no_site

boolean

true, если запуск для нескольких устройств завершился с ошибкой из-за skipped_no_site и другие ожидающие обновления не были применены.

Возвращается: при ошибке, если пакетная операция была прервана

changed

boolean

Была ли конфигурация отправлена хотя бы на одно устройство.

Возвращается: всегда

configured_devices

list / элементы=string

Имена устройств, для которых было применено обновление.

Возвращается: если поддерживается

details

dictionary

Структурированная полезная нагрузка от менеджера (списки устройств, записи diff_plan при изменении ветви и т. д.).

Возвращается: всегда

diff

dictionary

Полезная нагрузка --diff Ansible (текст before и after), если будут применены изменения.

Возвращается: если сценарий использует --diff и должна измениться ветвь хотя бы одного устройства

msg

string

Удобочитаемый результат (содержит подробные журналы, если они включены).

Возвращается: всегда

operation

string

Выполненная операция (всегда configure).

Возвращается: всегда

skipped_devices

list / элементы=string

Имена устройств, пропущенных, поскольку их состояние уже соответствовало требуемому.

Возвращается: если поддерживается

skipped_no_site

list / элементы=string

Имена устройств, для которых отправка не выполнялась, поскольку на портале устройству не назначен сайт, а в требуемой полезной нагрузке edge/core отсутствует site (API требует указать сайт перед таким обновлением). Если список не пуст, задача завершается с ошибкой.

Возвращается: при ошибке

system_config_file

string

Путь к использованному YAML-файлу, если он был указан.

Возвращается: если указан

would_configure_devices

list / элементы=string

Если задача завершилась с ошибкой из-за skipped_no_site, здесь перечислены другие устройства, которые были бы обновлены в том же запуске, но не были, поскольку пакетная операция была прервана.

Возвращается: при ошибке, если пакетная операция была прервана

Авторы

  • Команда Graphiant (@graphiant)

Ссылки на коллекцию

  • Отслеживание проблем
  • Главная страница
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Просмотреть исходный код
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/graphiant/naas/graphiant_device_system_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API