community.network.cv_server_provision – Обеспечение порта сервера путем применения или удаления конфигурации шаблона к конфигуратору Arista CloudVision Portal, примененному к коммутатору.
Примечание
Этот плагин является частью коллекции community.network (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.network.
Для использования в плейбуке укажите: community.network.cv_server_provision.
Обзор
- Этот модуль позволяет команде серверной части обеспечивать сетевые порты серверов для новых серверов, не имея доступа к Arista CVP или не обращаясь к команде сети для выполнения этой задачи. Предоставьте информацию для подключения к CVP, стойке коммутатора, порту, к которому подключен новый сервер, необязательный VLAN и действие, и модуль применит конфигурацию к порту коммутатора через CVP. Действия — add (применить конфигурацию шаблона к порту), remove (сбросить конфигурацию интерфейса по умолчанию) и show (возвращает текущую конфигурацию порта).
Требования
Ниже перечислены требования, необходимые на узле, на котором выполняется этот модуль.
- Jinja2
- cvprac >= 0.7.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| action строка |
| Действие, которое должен выполнить модуль. Действия — add, которое применяет указанную конфигурацию шаблона к порту, remove, которое сбрасывает указанную конфигурацию интерфейса по умолчанию, и show, которое вернет текущую конфигурацию порта без изменений. |
| auto_run булево |
| Флаг, определяющий, будет ли модуль выполнять задачу CVP, запущенную в результате изменений в конфигураторе коммутатора. Когда действие add или remove выполняется, что приводит к изменению конфигуратора коммутатора, CVP запускает задачу, которую необходимо выполнить для применения конфигурации к коммутатору. Если этот параметр равен True, модуль определит номер задачи, созданной изменением конфигурации, выполнит её и подождёт завершения задачи. Если этот параметр равен False, задача останется в состоянии Ожидание в CVP для проверки и выполнения сетевым администратором. |
| host строка / обязательно | Имя хоста или IP-адрес узла CVP, к которому осуществляется подключение. | |
| password строка / обязательно | Пароль пользователя, который будет использоваться для подключения к CVP для вызовов API. | |
| port строка | Номер порта для использования при выполнении вызовов API узла CVP. По умолчанию используется порт по умолчанию для указанного протокола. Порт 80 для http и порт 443 для https. | |
| port_vlan строка | VLAN, который должен быть применен к порту для этого сервера. Этот параметр зависит от правильного шаблона, поддерживающего одно VLAN-обеспечение. Если указанный портом VLAN-шаблон не поддерживает это, модуль завершит работу без изменений. Если указанный шаблон требует порт VLAN, но порт VLAN не указан, модуль завершит работу без изменений. | |
| protocol строка |
| Протокол, который следует использовать при выполнении вызовов API к CVP. CVP по умолчанию использует https, и более новые версии CVP больше не поддерживают http. |
| server_name строка / обязательно | Имя хоста или идентификатор сервера, для которого обеспечивается порт коммутатора. | |
| switch_name строка / обязательно | Имя хоста коммутатора, для которого настраивается сервер. | |
| switch_port строка / обязательно | Физический номер порта на коммутаторе, к которому подключен новый сервер. | |
| template строка / обязательно | Путь к файлу шаблона в формате Jinja, который содержит блок конфигурации, который будет применен к указанному порту коммутатора. Этот шаблон будет иметь переменные поля, замененные модулем перед применением к конфигурации коммутатора. | |
| username строка / обязательно | Пользователь, который будет использоваться для подключения к CVP для выполнения вызовов API. |
Примеры
- name: Get current configuration for interface Ethernet2
community.network.cv_server_provision:
host: cvp_node
username: cvp_user
password: cvp_pass
protocol: https
server_name: new_server
switch_name: eos_switch_1
switch_port: 2
template: template_file.j2
action: show
- name: Remove existing configuration from interface Ethernet2. Run task.
community.network.cv_server_provision:
host: cvp_node
username: cvp_user
password: cvp_pass
protocol: https
server_name: new_server
switch_name: eos_switch_1
switch_port: 2
template: template_file.j2
action: remove
auto_run: True
- name: Add template configuration to interface Ethernet2. No VLAN. Run task.
community.network.cv_server_provision:
host: cvp_node
username: cvp_user
password: cvp_pass
protocol: https
server_name: new_server
switch_name: eos_switch_1
switch_port: 2
template: single_attached_trunk.j2
action: add
auto_run: True
- name: Add template with VLAN configuration to interface Ethernet2. Run task.
community.network.cv_server_provision:
host: cvp_node
username: cvp_user
password: cvp_pass
protocol: https
server_name: new_server
switch_name: eos_switch_1
switch_port: 2
port_vlan: 22
template: single_attached_vlan.j2
action: add
auto_run: True
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| changed булево | успех | Указывает, были ли внесены изменения в конфигурацию Пример: True |
| currentConfigBlock строка | при action = show | Текущий блок конфигурации для указанного пользователем интерфейса Пример: interface Ethernet4 ! |
| fullConfig строка | при action = add или remove | Полная конфигурация конфигуратора после обновления Пример: ! interface Ethernet3 ! interface Ethernet4 ! |
| newConfigBlock строка | при action = add или remove | Новый блок конфигурации для указанного пользователем интерфейса Пример: interface Ethernet3 description example no switchport ! |
| oldConfigBlock строка | при action = add или remove | Текущий блок конфигурации для указанного пользователем интерфейса до внесения каких-либо изменений Пример: interface Ethernet3 ! |
| portConfigurable булево | успех | Указывает, есть ли у указанного пользователем порта запись в конфигураторе, к которому Ansible имеет доступ Пример: True |
| switchConfigurable булево | успех | Указывает, есть ли у указанного пользователем коммутатора примененный к нему конфигуратор, который CVP разрешено редактировать Пример: True |
| switchInfo словарь | успех | Информация от CVP, описывающая настраиваемый коммутатор Пример: {'architecture': 'i386', 'bootupTimeStamp': 1491264298.21, 'complianceCode': '0000', 'complianceIndication': 'NONE', 'deviceInfo': 'Registered', 'deviceStatus': 'Registered', 'fqdn': 'veos1', 'hardwareRevision': '', 'internalBuildId': '12-12', 'internalVersion': '4.17.1F-11111.4171F', 'ipAddress': '192.168.1.20', 'isDANZEnabled': 'no', 'isMLAGEnabled': 'no', 'key': '00:50:56:5d:e5:e0', 'lastSyncUp': 1496432895799, 'memFree': 472976, 'memTotal': 1893460, 'modelName': 'vEOS', 'parentContainerId': 'container_13_5776759195930', 'serialNumber': '', 'systemMacAddress': '00:50:56:5d:e5:e0', 'taskIdList': [], 'tempAction': None, 'type': 'netelement', 'unAuthorized': False, 'version': '4.17.1F', 'ztpMode': 'false'} |
| taskCompleted булево | при action = add или remove, и auto_run = true, и изменения конфигурации | Указывает, успешно ли завершилась созданная и выполненная задача Пример: True |
| taskCreated булево | при action = add или remove, и auto_run = true или false, и изменения конфигурации | Указывает, была ли создана задача из-за изменений конфигурации Пример: True |
| taskExecuted булево | при action = add или remove, и auto_run = true, и изменения конфигурации | Указывает, выполнила ли автоматизация запущенную задачу Пример: True |
| taskId строка | при action = add или remove, и auto_run = true или false, и изменения конфигурации | Идентификатор задачи, созданной CVP из-за изменений в конфигураторе Пример: 500 |
| updateConfigletResponse строка | при action = add или remove и изменения конфигурации | Ответ, возвращаемый CVP при запуске обновления конфигуратора Пример: Конфигурация veos1-server успешно обновлена, и запущена задача. |
Авторы
- EOS+ CS (ansible-dev@arista.com) (@mharista)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/network/cv_server_provision_module.html