Spec-Zone.ru › Ansible

Модуль graphiant.naas.graphiant_data_exchange — управление сервисами, клиентами, сопоставлениями и приглашениями Graphiant Data Exchange

Примечание

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

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

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

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

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

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

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

  • Модуль предоставляет широкие возможности управления Data Exchange для платформы B2B-пиринга Graphiant.
  • Позволяет создавать и удалять сервисы и клиентов Data Exchange.
  • Предоставляет операции сопоставления сервисов с клиентами и автоматически управляет файлами ответов сопоставления.
  • Поддерживает принятие приглашений с развертыванием шлюзового сервиса и настройкой VPN.

Требования

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

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

Параметры

Параметр

Комментарии

access_token

string

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

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

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

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

config_file

string

Путь к файлу конфигурации YAML для выполнения операции.

Обязателен для операций create_services, delete_services, create_customers, delete_customers, match_service_to_customers и accept_invitation.

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

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

Для create_services файл должен содержать список data_exchange_services. Необязательный параметр policy.globalObjectOps

для каждого сервиса прикрепляет политики маршрутизации Graphiant к устройствам (имена устройств преобразуются в идентификаторы).

Для create_customers или delete_customers файл должен содержать список data_exchange_customers.

Для match_service_to_customers файл должен содержать список data_exchange_matches.

Для accept_invitation файл должен содержать список data_exchange_acceptances. Необязательный параметр globalObjectOps

для каждого принятого приглашения прикрепляет политики маршрутизации Graphiant к шлюзовым устройствам (имена устройств преобразуются в идентификаторы).

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

detailed_logs

boolean

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

Если параметр включен, в журнал записываются подробные сведения обо всех операциях Data Exchange.

Журналы сохраняются и включаются в возвращаемое значение msg; для отображения используйте модуль ansible.builtin.debug.

Варианты:

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

host

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

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

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

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

matches_file

string

Путь к JSON-файлу с ответами сопоставления для поиска идентификатора сопоставления.

Необязателен для операции accept_invitation. Если файл не указан, выполняется попытка поиска через API.

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

Этот файл автоматически создается операцией match_service_to_customers (рабочий процесс 3).

Файл содержит сведения о сопоставлениях, включая customer_id, service_id, match_id и status.

Приоритет способов разрешения идентификатора сопоставления:

  1. Если указан matches_file с match_id и service_id — используются оба значения напрямую
  2. Если указан matches_file только с service_id — match_id ищется через API
  3. Если указан matches_file, но запись не найдена, выполняется попытка поиска через API по имени сервиса
  4. Если matches_file не указан, выполняется попытка поиска через API (сработает, если сервис виден потребителю)

operation

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

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

create_services: создание сервисов Data Exchange на основе конфигурации YAML (рабочий процесс 1).

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

Сервисы определяют услуги пиринга с сегментами LAN, площадками и префиксами сервисов.

Необязательный параметр policy.globalObjectOps: ключами могут быть имена устройств (преобразуются в идентификаторы устройств) или идентификаторы устройств;

значения могут содержать routingPolicyOps для прикрепления фильтров Graphiant к каждому устройству (например, Policy-DC1-Primary: Attach).

Сначала настройте фильтры Graphiant с помощью graphiant.naas.graphiant_global_config и configure_graphiant_filters.

delete_services: удаление сервисов Data Exchange на основе конфигурации YAML. Сервисы следует удалять после зависящих от них клиентов.

create_customers: создание клиентов Data Exchange на основе конфигурации YAML (рабочий процесс 2).

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

Клиентами могут быть пиры, не использующие Graphiant, которых можно пригласить подключиться к сервисам.

delete_customers: удаление клиентов Data Exchange на основе конфигурации YAML. Клиентов следует удалять до сервисов, от которых они зависят.

match_service_to_customers: сопоставление сервисов с клиентами на основе конфигурации YAML (рабочий процесс 3).

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

Ответы сопоставления автоматически сохраняются в JSON-файл для использования в рабочем процессе 4.

Обновляет существующие записи сопоставлений или добавляет новые на основе customer_name и service_name.

accept_invitation: принятие приглашения в сервис Data Exchange (рабочий процесс 4).

Файл конфигурации должен содержать список data_exchange_acceptances со сведениями о принятии приглашений.

Для поиска идентификатора сопоставления требуется matches_file из рабочего процесса 3.

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

Настраивает полное развертывание шлюза IPSec с двумя туннелями, статической маршрутизацией и профилями VPN.

Для операций запроса (get_services_summary, get_customers_summary, get_service_health)

вместо этого используйте модуль graphiant.naas.graphiant_data_exchange_info.

Варианты:

  • "create_services"
  • "delete_services"
  • "create_customers"
  • "delete_customers"
  • "match_service_to_customers"
  • "accept_invitation"

password

string

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

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

state

string

Требуемое состояние ресурсов Data Exchange.

present: преобразуется в create_services, если не задан operation.

absent: преобразуется в delete_services, если не задан operation.

Варианты:

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

username

string

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

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

Поддерживается. В режиме проверки записи через API не выполняются; отправляемые данные записываются в журнал с префиксом [check_mode].

Примечания

Примечание

  • Рабочие процессы Data Exchange:
  • - Рабочий процесс 1 (создание сервисов): создание сервисов Data Exchange, которыми можно делиться с клиентами.
  • - Рабочий процесс 2 (создание клиентов): создание клиентов Data Exchange (пиры, не использующие Graphiant).
  • - Рабочий процесс 3 (сопоставление сервисов): сопоставление сервисов с клиентами и установление отношений пиринга.
  • - Рабочий процесс 4 (принятие приглашения): принятие приглашений в сервис для клиентов, не использующих Graphiant.
  • Файлы конфигурации поддерживают синтаксис шаблонов Jinja2 для динамической генерации конфигурации.
  • Ответы сопоставления автоматически сохраняются в JSON-файлы в каталоге output рядом с файлом конфигурации.
  • Модуль автоматически преобразует имена площадок, сегментов LAN, сервисов, клиентов и регионов в идентификаторы.
  • Все операции идемпотентны и безопасны для многократного выполнения: дубликаты не создаются.
  • Для операции accept_invitation требуется не менее двух шлюзов в каждом регионе для обеспечения избыточности.
  • Поддерживается режим проверки (--check). В этом режиме модуль выполняет всю логику (загрузка конфигурации, проверка,
  • преобразование имен в идентификаторы), но клиент API пропускает операции записи и записывает данные в журнал с [check_mode].
  • Используйте --check для проверки accept_invitation без вызовов API.

См. также

См. также

graphiant.naas.graphiant_interfaces

Настройка интерфейсов и каналов, необходимых для Data Exchange

graphiant.naas.graphiant_global_config

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

graphiant.naas.graphiant_sites

Настройка площадок, необходимых для сервисов Data Exchange

graphiant.naas.graphiant_data_exchange_info

Получение сведений о сервисах и клиентах Data Exchange, а также о состоянии сервисов

Примеры

- name: Workflow 1 - Create Data Exchange services
  graphiant.naas.graphiant_data_exchange:
    operation: create_services
    config_file: "de_workflows_configs/sample_data_exchange_services.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: create_services_result

- name: Display services creation result
  ansible.builtin.debug:
    msg: "{{ create_services_result.msg }}"

- name: Workflow 1 - Create services with Jinja2 template (scale testing)
  graphiant.naas.graphiant_data_exchange:
    operation: create_services
    config_file: "de_workflows_configs/sample_data_exchange_services_scale.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true

- name: Workflow 2 - Create Data Exchange customers
  graphiant.naas.graphiant_data_exchange:
    operation: create_customers
    config_file: "de_workflows_configs/sample_data_exchange_customers.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: create_customers_result

- name: Display customers creation result
  ansible.builtin.debug:
    msg: "{{ create_customers_result.msg }}"

- name: Workflow 2 - Create customers with Jinja2 template (scale testing)
  graphiant.naas.graphiant_data_exchange:
    operation: create_customers
    config_file: "de_workflows_configs/sample_data_exchange_customers_scale2.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true

- name: Workflow 3 - Match Data Exchange services to customers
  graphiant.naas.graphiant_data_exchange:
    operation: match_service_to_customers
    config_file: "de_workflows_configs/sample_data_exchange_matches.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: match_result

- name: Display match result
  ansible.builtin.debug:
    msg: "{{ match_result.msg }}"

- name: Workflow 4 - Accept Data Exchange service invitation (check mode)
  graphiant.naas.graphiant_data_exchange:
    operation: accept_invitation
    config_file: "de_workflows_configs/sample_data_exchange_acceptance.yaml"
    matches_file: "de_workflows_configs/output/sample_data_exchange_matches_responses_latest.json"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: accept_result
  # Run playbook with: ansible-playbook playbook.yml --check

- name: Display acceptance result
  ansible.builtin.debug:
    msg: "{{ accept_result.msg }}"

- name: Workflow 4 - Accept Data Exchange service invitation (apply)
  graphiant.naas.graphiant_data_exchange:
    operation: accept_invitation
    config_file: "de_workflows_configs/sample_data_exchange_acceptance.yaml"
    matches_file: "de_workflows_configs/output/sample_data_exchange_matches_responses_latest.json"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"
    detailed_logs: true
  register: accept_result

- name: Display acceptance result
  ansible.builtin.debug:
    msg: "{{ accept_result.msg }}"

- name: Delete Data Exchange customers (must be deleted before services)
  graphiant.naas.graphiant_data_exchange:
    operation: delete_customers
    config_file: "de_workflows_configs/sample_data_exchange_customers.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"

- name: Delete Data Exchange services
  graphiant.naas.graphiant_data_exchange:
    operation: delete_services
    config_file: "de_workflows_configs/sample_data_exchange_services.yaml"
    host: "{{ graphiant_host }}"
    username: "{{ graphiant_username }}"
    password: "{{ graphiant_password }}"


- name: Complete Data Exchange workflow (all four workflows)
  block:
    - name: Workflow 1 - Create services
      graphiant.naas.graphiant_data_exchange:
        operation: create_services
        config_file: "de_workflows_configs/sample_data_exchange_services.yaml"
        host: "{{ graphiant_host }}"
        username: "{{ graphiant_username }}"
        password: "{{ graphiant_password }}"
        detailed_logs: true
      register: create_services_result

    - name: Workflow 2 - Create customers
      graphiant.naas.graphiant_data_exchange:
        operation: create_customers
        config_file: "de_workflows_configs/sample_data_exchange_customers.yaml"
        host: "{{ graphiant_host }}"
        username: "{{ graphiant_username }}"
        password: "{{ graphiant_password }}"
        detailed_logs: true
      register: create_customers_result

    - name: Workflow 3 - Match services to customers
      graphiant.naas.graphiant_data_exchange:
        operation: match_service_to_customers
        config_file: "de_workflows_configs/sample_data_exchange_matches.yaml"
        host: "{{ graphiant_host }}"
        username: "{{ graphiant_username }}"
        password: "{{ graphiant_password }}"
        detailed_logs: true
      register: match_result

    - name: Workflow 4 - Accept invitations
      graphiant.naas.graphiant_data_exchange:
        operation: accept_invitation
        config_file: "de_workflows_configs/sample_data_exchange_acceptance.yaml"
        matches_file: "de_workflows_configs/output/sample_data_exchange_matches_responses_latest.json"
        host: "{{ graphiant_host }}"
        username: "{{ graphiant_username }}"
        password: "{{ graphiant_password }}"
        detailed_logs: true
      register: accept_result

    - name: Display workflow results
      ansible.builtin.debug:
        msg: "{{ item.msg }}"
      loop:
        - "{{ create_services_result }}"
        - "{{ create_customers_result }}"
        - "{{ match_result }}"
        - "{{ accept_result }}"

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

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

Ключ

Описание

changed

boolean

Указывает, внесла ли операция изменения в систему.

true для операций создания, удаления, сопоставления и принятия.

false для операций, не вносящих изменений (например, в режиме пробного запуска).

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

Пример: true

config_file

string

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

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

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

Пример: "de_workflows_configs/sample_data_exchange_services.yaml"

msg

string

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

Для операций получения сводки содержит табличные данные для удобства чтения.

Для операций проверки состояния содержит табличные сведения о состоянии всех сопоставленных клиентов.

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

Пример: "Successfully created 3 Data Exchange services\n\nDetailed logs:\n2025-10-19 23:08:05,315 - Graphiant_playbook - INFO - Creating service 'de-service-1'...\n2025-10-19 23:08:05,450 - Graphiant_playbook - INFO - Successfully created service 'de-service-1'\n"

operation

string

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

Одно из значений: create_services, delete_services, create_customers, delete_customers, match_service_to_customers или accept_invitation.

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

Пример: "create_services"

result_data

dictionary

Данные результата операции, включая структурированные данные для операций получения сводки и проверки состояния.

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

Для операций проверки состояния содержит показатели состояния всех сопоставленных клиентов.

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

Пример: {"services": [{"id": 123, "matched_customers": 2, "name": "de-service-1", "status": "ACTIVE"}], "summary": {"created": 3, "total": 3}}

Авторы

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

Spec-Zone.ru

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