Spec-Zone.ru › Ansible

Модуль community.network.nuage_vspk – Управление средами Nuage VSP

Примечание

Этот модуль является частью коллекции community.network (версия 5.0.3).

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

Чтобы установить её, используйте: ansible-galaxy collection install community.network. Для использования этого модуля требуются дополнительные требования, см. Требования для получения подробностей.

Чтобы использовать его в книге задач, укажите: community.network.nuage_vspk.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Управление или поиск сущностей Nuage VSP, включая создание, обновление, удаление, назначение, отмену назначения и поиск со всеми поддерживаемыми свойствами.

Псевдонимы: network.nuage.nuage_vspk

Требования

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

  • Python 2.7
  • Поддержка Nuage VSP 4.0Rx и 5.x.y
  • Правильная установка VSPK-Python для вашей версии Nuage
  • Проверено с NuageX https://nuagex.io

Параметры

Параметр

Комментарии

auth

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

Словарь с информацией об аутентификации, необходимой для подключения к среде Nuage VSP.

Требуется параметр api_username (например, csproot).

Требуется либо параметр api_password (например, csproot), либо параметры api_certificate и api_key, указывающие на файлы сертификата и ключа для аутентификации на основе сертификата.

Требуется параметр api_enterprise (например, csp).

Требуется параметр api_url (например, https://10.0.0.10:8443).

Требуется параметр api_version (например, v4_0).

children

строка

Может использоваться для указания набора дочерних сущностей.

Обязательным свойством каждой дочерней сущности является type.

Поддерживаемыми необязательными свойствами каждой дочерней сущности являются id, properties и match_filter.

Функция каждого из этих свойств такая же, как и в общем определении задачи.

Это можно использовать рекурсивно

Используется только в случае state=present.

command

строка

Указывает команду для выполнения.

При command=find, если parent_id и parent_type определены, поиск будет производиться только внутри родителя. В противном случае, если разрешено, поиск будет производиться в корневом объекте.

При command=find, если id указан, возвращается только одна соответствующая сущность.

При command=find, в противном случае, если match_filter определен, будет использоваться этот фильтр для поиска.

При command=find, в противном случае, если properties определены, будет выполняться поиск по всем свойствам с использованием логического И.

При command=change_password, пароль пользователя может быть изменен. Предупреждение - Если пароль такой же, как существующий, будет выведено сообщение об ошибке.

При command=wait_for_job, модуль будет ожидать завершения задачи со статусом SUCCESS или ERROR. В случае обнаружения статуса ERROR модуль завершит работу с ошибкой.

При command=wait_for_job, задача всегда будет возвращена, даже если состояние является ERROR.

Нужно определить либо state, либо command, оба не могут быть определены одновременно.

Варианты:

  • "find"
  • "change_password"
  • "wait_for_job"
  • "get_csp_enterprise"

id

строка

Идентификатор сущности, с которой вы хотите работать.

В сочетании с command=find возвращается только одна сущность.

В сочетании с state выполняется обновление или удаление этой сущности.

Предпочтительнее match_filter и properties, когда требуется найти сущность.

match_filter

строка

Фильтр, используемый при поиске (как в command, так и в state для сущностей, в формате, ожидаемом Nuage VSP API.

Если match_filter определен, он имеет приоритет над properties, но не над id

parent_id

строка

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

Когда state указан, сущность собирается от этого родителя, если он существует, за исключением случая указания id.

Когда command=find указан, сущность ищется у этого родителя, за исключением случая указания id.

Если указан, parent_type также должен быть указан.

parent_type

строка

Тип родителя, для которого указан ID (например, Предприятие).

Должен соответствовать имени класса CamelCase в VSPK-Python.

Это имя класса можно найти на https://nuagenetworks.github.io/vspkdoc/index.html.

Если указан, parent_id также должен быть указан.

properties

строка

Свойства представляют собой пары ключ-значение различных свойств сущности.

Если не указан id и не указан match_filter, эти значения используются для поиска или определения существования сущности.

state

строка

Указывает желаемое состояние сущности.

Если state=present, в случае, если сущность уже существует, будет обновлена, если необходимо.

Если state=present, если отношение с родителем является отношением членства, сущность будет назначена в качестве члена родителя.

Если state=absent, если отношение с родителем является отношением членства, сущность будет отменена в качестве члена родителя.

Нужно определить либо state, либо command, оба не могут быть определены одновременно.

Варианты:

  • "present"
  • "absent"

type

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

Тип сущности, с которой вы хотите работать (например, Предприятие).

Должен соответствовать имени класса CamelCase в VSPK-Python.

Это имя класса можно найти на https://nuagenetworks.github.io/vspkdoc/index.html.

Примечания

Примечание

  • Режим проверки поддерживается, но с некоторыми оговорками. Он не внесет никаких изменений и, по возможности, попытается определить, может ли он выполнить запрос.
  • Если идентификатор родителя получен из предыдущей задачи, он может быть пустым, и если поиск возможен в корне, он будет произведен, что может повлиять на производительность.

Примеры

# This can be executed as a single role, with the following vars
# vars:
#   auth:
#     api_username: csproot
#     api_password: csproot
#     api_enterprise: csp
#     api_url: https://10.0.0.10:8443
#     api_version: v5_0
#   enterprise_name: Ansible-Enterprise
#   enterprise_new_name: Ansible-Updated-Enterprise
#
# or, for certificate based authentication
# vars:
#   auth:
#     api_username: csproot
#     api_certificate: /path/to/user-certificate.pem
#     api_key: /path/to/user-Key.pem
#     api_enterprise: csp
#     api_url: https://10.0.0.10:8443
#     api_version: v5_0
#   enterprise_name: Ansible-Enterprise
#   enterprise_new_name: Ansible-Updated-Enterprise

# Creating a new enterprise
- name: Create Enterprise
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: Enterprise
    state: present
    properties:
      name: "{{ enterprise_name }}-basic"
  register: nuage_enterprise

# Checking if an Enterprise with the new name already exists
- name: Check if an Enterprise exists with the new name
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: Enterprise
    command: find
    properties:
      name: "{{ enterprise_new_name }}-basic"
  ignore_errors: true
  register: nuage_check_enterprise

# Updating an enterprise's name
- name: Update Enterprise name
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: Enterprise
    id: "{{ nuage_enterprise.id }}"
    state: present
    properties:
      name: "{{ enterprise_new_name }}-basic"
  when: nuage_check_enterprise is failed

# Creating a User in an Enterprise
- name: Create admin user
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: User
    parent_id: "{{ nuage_enterprise.id }}"
    parent_type: Enterprise
    state: present
    match_filter: "userName == 'ansible-admin'"
    properties:
      email: "ansible@localhost.local"
      first_name: "Ansible"
      last_name: "Admin"
      password: "ansible-password"
      user_name: "ansible-admin"
  register: nuage_user

# Updating password for User
- name: Update admin password
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: User
    id: "{{ nuage_user.id }}"
    command: change_password
    properties:
      password: "ansible-new-password"
  ignore_errors: true

# Finding a group in an enterprise
- name: Find Administrators group in Enterprise
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: Group
    parent_id: "{{ nuage_enterprise.id }}"
    parent_type: Enterprise
    command: find
    properties:
      name: "Administrators"
  register: nuage_group

# Assign the user to the group
- name: Assign admin user to administrators
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: User
    id: "{{ nuage_user.id }}"
    parent_id: "{{ nuage_group.id }}"
    parent_type: Group
    state: present

# Creating multiple DomainTemplates
- name: Create multiple DomainTemplates
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: DomainTemplate
    parent_id: "{{ nuage_enterprise.id }}"
    parent_type: Enterprise
    state: present
    properties:
      name: "{{ item }}"
      description: "Created by Ansible"
  with_items:
    - "Template-1"
    - "Template-2"

# Finding all DomainTemplates
- name: Fetching all DomainTemplates
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: DomainTemplate
    parent_id: "{{ nuage_enterprise.id }}"
    parent_type: Enterprise
    command: find
  register: nuage_domain_templates

# Deleting all DomainTemplates
- name: Deleting all found DomainTemplates
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: DomainTemplate
    state: absent
    id: "{{ item.ID }}"
  with_items: "{{ nuage_domain_templates.entities }}"
  when: nuage_domain_templates.entities is defined

# Unassign user from group
- name: Unassign admin user to administrators
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: User
    id: "{{ nuage_user.id }}"
    parent_id: "{{ nuage_group.id }}"
    parent_type: Group
    state: absent

# Deleting an enterprise
- name: Delete Enterprise
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: Enterprise
    id: "{{ nuage_enterprise.id }}"
    state: absent

# Setup an enterprise with Children
- name: Setup Enterprise and domain structure
  connection: local
  community.network.nuage_vspk:
    auth: "{{ nuage_auth }}"
    type: Enterprise
    state: present
    properties:
      name: "Child-based-Enterprise"
    children:
    - type: L2DomainTemplate
      properties:
        name: "Unmanaged-Template"
      children:
      - type: EgressACLTemplate
        match_filter: "name == 'Allow All'"
        properties:
          name: "Allow All"
          active: true
          default_allow_ip: true
          default_allow_non_ip: true
          default_install_acl_implicit_rules: true
          description: "Created by Ansible"
          priority_type: "TOP"
      - type: IngressACLTemplate
        match_filter: "name == 'Allow All'"
        properties:
          name: "Allow All"
          active: true
          default_allow_ip: true
          default_allow_non_ip: true
          description: "Created by Ansible"
          priority_type: "TOP"

Значения возврата

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

Ключ

Описание

entities

список / элементы=строка

Список обработанных сущностей. Каждый элемент — это to_dict() сущности.

Возвращается: при state=present и find, только с одним элементом в случае state=present или find=one.

Пример: [{"ID": "acabc435-3946-4117-a719-b8895a335830\"", "assocEntityType": "DOMAIN", "command": "BEGIN_POLICY_CHANGES", "creationDate": 1487515656000, "entityScope": "ENTERPRISE", "externalID": null, "lastUpdatedBy": "8a6f0e20-a4db-4878-ad84-9cc61756cd5e", "lastUpdatedDate": 1487515656000, "owner": "8a6f0e20-a4db-4878-ad84-9cc61756cd5e", "parameters": null, "parentID": "a22fddb9-3da4-4945-bd2e-9d27fe3d62e0", "parentType": "domain", "progress": 0.0, "result": null, "status": "RUNNING"}]

id

строка

Идентификатор сущности, которая была найдена, создана, обновлена или назначена.

Возвращается: при state=present и command=find в случае нахождения одной сущности.

Пример: "bae07d8d-d29c-4e2b-b6ba-621b4807a333"

Авторы

  • Philippe Dellaert (@pdellaert)

Ссылки на сборку

  • Система отслеживания ошибок
  • Репозиторий (источники)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/network/nuage_vspk_module.html

Spec-Zone.ru

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