Модуль 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 (например, полученный с помощью Если аргумент модуля не указан, коллекция считывает Если токен Bearer указан (в аргументе модуля или в переменной окружения), он имеет приоритет над Если действительный токен отсутствует, модуль проходит аутентификацию с помощью |
config_file строка / обязательный | Путь к YAML-файлу конфигурации устройства. Обязателен для всех операций. Может быть абсолютным или относительным. Относительные пути разрешаются с использованием настроенного config_path. В файлах конфигурации поддерживается синтаксис шаблонов Jinja2 для динамического создания конфигураций. Файл должен содержать список device_config с элементами следующего формата: device_config: - device-name: payload: | { JSON-данные, соответствующие спецификации API } |
detailed_logs логическое значение | Включить подробное ведение журналов для устранения неполадок и мониторинга. При включении предоставляются подробные журналы всех операций конфигурирования устройств. Журналы сохраняются и добавляются в result_msg для отображения с помощью модуля ansible.builtin.debug. Варианты:
|
host псевдонимы: base_url строка / обязательный | URL-адрес хоста Graphiant Portal для подключения к API. Пример: «https://api.graphiant.com» |
operation строка | Операция конфигурирования устройства, которую необходимо выполнить.
Проверяет синтаксис конфигурации, определяет имена устройств и показывает данные, которые будут отправлены в API. Поля, не распознанные моделями SDK, исключаются. Изменения на устройства не вносятся. Варианты:
|
password строка | Пароль Graphiant Portal для аутентификации. Необходим для входа по паролю, если действительный токен Bearer отсутствует в |
state строка | Желаемое состояние конфигурации устройства.
Состояние Варианты:
|
template_file строка | Необязательный путь к пользовательскому файлу шаблона Jinja2. Если указан, шаблон обрабатывается с данными файла конфигурации в качестве контекста. В результате обработки шаблона должна формироваться итоговая структура device_config. Может быть абсолютным или относительным. Относительные пути разрешаются с использованием настроенного config_path. Используйте этот параметр для создания повторно используемых шаблонов распространённых конфигураций. |
username строка | Имя пользователя Graphiant Portal для аутентификации. Необходимо для входа по паролю, если действительный токен Bearer отсутствует в |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: частичная Для операции | Режим проверки поддерживается частично. |
Примечания
Примечание
- Поддерживаемые типы устройств:
- - Для устройств 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 логическое значение | Были ли внесены изменения в систему в результате операции.
Возвращается: всегда Пример: |
config_file строка | Файл конфигурации, использованный для операции. Возвращается: всегда Пример: |
msg строка | Сообщение с результатом операции, включая подробные журналы, если включён параметр Возвращается: всегда Пример: |
operation строка | Выполненная операция. Либо Возвращается: всегда Пример: |
template_file строка | Файл шаблона, использованный для операции, если он указан. Возвращается: при наличии Пример: |
Ссылки на коллекцию
© 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