Spec-Zone.ru › Ansible

Модуль graphiant.naas.graphiant_device_config — отправка необработанных конфигураций на устройства Graphiant

Примечание

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

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

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

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

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

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

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

  • Этот модуль отправляет конфигурации непосредственно на устройства Graphiant с помощью API /v1/devices/{device_id}/config.
  • Поддерживаются устройства типов Edge, Gateway и Core.
  • Позволяет отправлять любые конфигурации, соответствующие спецификации API Graphiant.
  • Пользователи могут получать данные API в инструментах разработчика интерфейса Graphiant Portal и использовать их непосредственно в файлах конфигурации.
  • Поддерживается создание конфигураций с помощью необязательных пользовательских шаблонов Jinja2.
  • В файлах конфигурации поддерживается синтаксис шаблонов Jinja2 для динамического создания конфигураций.
  • Предусмотрен режим пробного запуска для проверки конфигураций перед развертыванием.

Требования

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

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

Параметры

Параметр

Комментарии

access_token

строка

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

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

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

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

config_file

строка / обязательный

Путь к YAML-файлу конфигурации устройства.

Обязателен для всех операций.

Может быть абсолютным или относительным. Относительные пути разрешаются с использованием настроенного config_path.

В файлах конфигурации поддерживается синтаксис шаблонов Jinja2 для динамического создания конфигураций.

Файл должен содержать список device_config с элементами следующего формата:

device_config:

- device-name:

payload: |

{ JSON-данные, соответствующие спецификации API }

detailed_logs

логическое значение

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

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

Журналы сохраняются и добавляются в result_msg для отображения с помощью модуля ansible.builtin.debug.

Варианты:

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

host

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

строка / обязательный

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

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

operation

строка

Операция конфигурирования устройства, которую необходимо выполнить.

configure: отправка конфигурации на устройства (PUT /v1/devices/{device_id}/config).

show_validated_payload: режим пробного запуска, отображающий проверенные данные после обработки моделью SDK.

Проверяет синтаксис конфигурации, определяет имена устройств и показывает данные, которые будут отправлены в API.

Поля, не распознанные моделями SDK, исключаются. Изменения на устройства не вносятся.

Варианты:

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

password

строка

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

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

state

строка

Желаемое состояние конфигурации устройства.

present: соответствует операции configure, если параметр operation не указан.

Состояние absent не поддерживается, поскольку конфигурирование устройства выполняется операцией PUT.

Варианты:

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

template_file

строка

Необязательный путь к пользовательскому файлу шаблона Jinja2.

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

В результате обработки шаблона должна формироваться итоговая структура device_config.

Может быть абсолютным или относительным. Относительные пути разрешаются с использованием настроенного config_path.

Используйте этот параметр для создания повторно используемых шаблонов распространённых конфигураций.

username

строка

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

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: частичная

Для операции show_validated_payload режим проверки возвращает changed=False, поскольку это операция проверки только для чтения, не вносящая изменений в систему. Для операции configure режим проверки возвращает changed=True, поскольку модуль не может точно определить, будут ли внесены изменения, не запрашивая текущее состояние через вызовы API. Из-за ограничений API модуль не сравнивает состояния в режиме проверки для операций configure. Это означает, что режим проверки может сообщать об изменениях, даже если конфигурация уже применена.

Режим проверки поддерживается частично.

Примечания

Примечание

  • Поддерживаемые типы устройств:
  • - Для устройств Edge используйте ключ ‘edge’ в данных запроса
  • - Для устройств Gateway используйте ключ ‘edge’ в данных запроса (как и для Edge)
  • - Для устройств Core используйте ключ ‘core’ в данных запроса
  • Подход к конфигурированию:
  • - Файл конфигурации содержит элементы device_config с именами устройств и соответствующими данными запроса.
  • - Данные запроса — это структуры JSON, соответствующие схеме API PUT /v1/devices/{device_id}/config.
  • - Пользователи могут копировать данные запроса непосредственно из инструментов разработчика интерфейса Graphiant Portal.
  • - В файлах конфигурации поддерживаются шаблоны Jinja2 для динамической подстановки значений.
  • Поддержка шаблонов:
  • - Можно указать необязательные пользовательские шаблоны для формирования данных запроса на основе упрощённых данных конфигурации.
  • - Шаблоны обрабатываются с данными файла конфигурации в качестве контекста.
  • - Встроенные шаблоны НЕ используются — это прямой менеджер API.
  • Параллельное выполнение:
  • - Для повышения эффективности конфигурации параллельно отправляются на несколько устройств.
  • - Перед отправкой конфигурации проверяется состояние каждого устройства на портале.

См. также

См. также

graphiant.naas.graphiant_interfaces

Настройка интерфейсов и каналов с использованием шаблонного подхода. Для более гибкой настройки с необработанными данными запроса используйте graphiant_device_config.

graphiant.naas.graphiant_bgp

Настройка BGP-пиринга с использованием шаблонного подхода

graphiant.naas.graphiant_global_config

Настройка глобальных объектов (сегментов LAN, профилей VPN и т. д.)

Примеры

- name: Push device configuration to edge devices
  graphiant.naas.graphiant_device_config:
    operation: configure
    config_file: "sample_device_config_payload.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: config_result

- name: Display configuration result
  ansible.builtin.debug:
    msg: "{{ config_result.msg }}"

- name: Show validated payload (dry-run) before pushing
  graphiant.naas.graphiant_device_config:
    operation: show_validated_payload
    config_file: "sample_device_config_payload.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: preview_result

- name: Display validated payload
  ansible.builtin.debug:
    msg: "{{ preview_result.msg }}"

- name: Push configuration using user-defined template
  graphiant.naas.graphiant_device_config:
    operation: configure
    config_file: "sample_device_config_with_template.yaml"
    template_file: "device_config_template.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: template_result

- name: Configure devices with state parameter
  graphiant.naas.graphiant_device_config:
    state: present
    config_file: "sample_device_config_payload.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"

# Example config file (sample_device_config_payload.yaml):
# ---
# device_config:
#   - edge-1-sdktest:
#       payload: |
#         {
#           "edge": {
#             "dns": {
#               "dns": {
#                 "static": {
#                   "primaryIpv4V2": { "address": "8.8.8.8" },
#                   "secondaryIpv4V2": { "address": "8.8.4.4" }
#                 }
#               }
#             },
#             "regionName": "us-west-2 (San Jose)"
#           },
#           "description": "Configure custom DNS and region",
#           "configurationMetadata": { "name": "dns_config_v1" }
#         }
#   - edge-2-sdktest:
#       payload: |
#         {
#           "edge": {
#             "dns": {
#               "dns": {
#                 "static": {
#                   "primaryIpv4V2": { "address": "8.8.8.8" },
#                   "secondaryIpv4V2": { "address": "8.8.4.4" }
#                 }
#               }
#             }
#           },
#           "description": "Configure custom DNS"
#         }

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

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

Ключ

Описание

changed

логическое значение

Были ли внесены изменения в систему в результате операции.

true для операций конфигурирования.

false для операций show_validated_payload.

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

Пример: true

config_file

строка

Файл конфигурации, использованный для операции.

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

Пример: "sample_device_config_payload.yaml"

msg

строка

Сообщение с результатом операции, включая подробные журналы, если включён параметр detailed_logs.

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

Пример: "Successfully configured 3 device(s)"

operation

строка

Выполненная операция.

Либо configure, либо show_validated_payload.

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

Пример: "configure"

template_file

строка

Файл шаблона, использованный для операции, если он указан.

Возвращается: при наличии

Пример: "device_config_template.yaml"

Авторы

  • Команда 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_config_module.html

Spec-Zone.ru

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