cnos_portchannel - Управление конфигурацией портканалов (агрегации портов) на устройствах с Lenovo CNOS
Новое в версии 2.3.
Обзор
- Этот модуль позволяет работать с конфигурациями, связанными с агрегацией портов. Использованные операторы перегружены для обеспечения контроля над конфигурациями агрегации портов коммутатора. Помимо обычных атрибутов, связанных с подключением к устройству, существуют пять аргументов LAG, которые являются перегруженными переменными, выполняющими дальнейшие конфигурации. Это interfaceArg1, interfaceArg2, interfaceArg3, interfaceArg4 и interfaceArg5. Более подробную информацию о том, как использовать эти аргументы, см. в [Перегруженные переменные]. Этот модуль использует SSH для управления конфигурацией сетевых устройств. Результаты операции будут размещены в каталоге с именем ‘results’, который должен быть создан пользователем в локальном каталоге, где выполняется playbook. Дополнительную информацию об этом модуле от Lenovo и настройку его использования для ваших задач, пожалуйста, см. на странице http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_portchannel.html
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| deviceType обязательно (добавлен в 2.3) |
None | Указывает тип устройства, на котором выполняется метод. Варианты NE1072T, NE1032, NE1032T, NE10032, NE2572 добавлены с версии 2.4 |
| enablePassword (добавлен в 2.3) | Значение по умолчанию: None | Настраивает пароль, используемый для входа в режим глобальной конфигурации на коммутаторе. Если коммутатор не запрашивает этот пароль, параметр игнорируется. В целом, значение должно быть взято из файла инвентаризации, но его также можно указать как переменную. Этот параметр необязателен. Если он не указан, значение по умолчанию не используется. |
| host обязательно (добавлен в 2.3) | Значение по умолчанию: None | Эта переменная используется для поиска файла хостов в /etc/ansible/hosts и определения IP-адреса устройства, на котором будет применена шаблон. Обычно в playbook используется ключевое слово Ansible {{ inventory_hostname }} в качестве абстракции группы сетевых элементов, которые требуется настроить. |
| interfaceArg1 обязательно |
None | Первый перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceArg2 |
None | Второй перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceArg3 |
None | Третий перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceArg4 |
None | Четвертый перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceArg5 |
None | Пятый перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceArg6 |
None | Шестой перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceArg7 |
None | Седьмой перегруженный аргумент Port Channel. Использование этого аргумента можно найти в руководстве пользователя, указанном выше. |
| interfaceRange обязательно | Значение по умолчанию: None | Указывает диапазон интерфейсов, в котором предполагается агрегация портов |
| outputfile обязательно (добавлен в 2.3) | Значение по умолчанию: None | Указывает путь к файлу, где сохраняется вывод каждого выполнения команды. Здесь сохраняются каждая команда, указанная в объединенном файле шаблона, и каждый ответ от устройства. Обычно это папка results, но вы можете выбрать другое местоположение, исходя из ваших прав записи. |
| password обязательно (добавлен в 2.3) | Значение по умолчанию: None | Настраивает пароль, используемый для аутентификации подключения к удаленному устройству. Значение параметра password используется для аутентификации сессии SSH. В целом, значение должно быть взято из файла инвентаризации, но его также можно указать как переменную. Этот параметр необязателен. Если он не указан, значение по умолчанию не используется. |
| username обязательно (добавлен в 2.3) | Значение по умолчанию: None | Настраивает имя пользователя, используемое для аутентификации подключения к удаленному устройству. Значение параметра username используется для аутентификации сессии SSH. В целом, значение должно быть взято из файла инвентаризации, но его также можно указать как переменную. Этот параметр необязателен. Если он не указан, значение по умолчанию не используется. |
Примечания
Примечание
- Дополнительную информацию об использовании Ansible для управления устройствами Lenovo Network см. на странице https://www.ansible.com/ansible-lenovo.
Примеры
Tasks : The following are examples of using the module cnos_portchannel. These are written in the main.yml file of the tasks directory.
---
- name: Test Port Channel - aggregation-group
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "aggregation-group"
interfaceArg2: 33
interfaceArg3: "on"
- name: Test Port Channel - aggregation-group - Interface Range
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: "1/1-2"
interfaceArg1: "aggregation-group"
interfaceArg2: 33
interfaceArg3: "on"
- name: Test Port Channel - bridge-port
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "bridge-port"
interfaceArg2: "access"
interfaceArg3: 33
- name: Test Port Channel - bridgeport mode
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "bridge-port"
interfaceArg2: "mode"
interfaceArg3: "access"
- name: Test Port Channel - Description
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "description"
interfaceArg2: "Hentammoo "
- name: Test Port Channel - Duplex
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "duplex"
interfaceArg2: "auto"
- name: Test Port Channel - flowcontrol
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "flowcontrol"
interfaceArg2: "send"
interfaceArg3: "off"
- name: Test Port Channel - lacp
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "lacp"
interfaceArg2: "port-priority"
interfaceArg3: 33
- name: Test Port Channel - lldp
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "lldp"
interfaceArg2: "tlv-select"
interfaceArg3: "max-frame-size"
- name: Test Port Channel - load-interval
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "load-interval"
interfaceArg2: "counter"
interfaceArg3: 2
interfaceArg4: 33
#- name: Test Port Channel - mac
# cnos_portchannel:
# host: "{{ inventory_hostname }}"
# username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
# password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
# deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
# outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
# interfaceRange: 33,
# interfaceArg1: "mac"
# interfaceArg2: "copp-system-acl-vlag-hc"
- name: Test Port Channel - microburst-detection
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "microburst-detection"
interfaceArg2: 25
- name: Test Port Channel - mtu
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "mtu"
interfaceArg2: 66
- name: Test Port Channel - service-policy
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "service-policy"
interfaceArg2: "input"
interfaceArg3: "Anil"
- name: Test Port Channel - speed
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "speed"
interfaceArg2: "auto"
- name: Test Port Channel - storm
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "storm-control"
interfaceArg2: "broadcast"
interfaceArg3: 12.5
#- name: Test Port Channel - vlan
# cnos_portchannel:
# host: "{{ inventory_hostname }}"
# username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
# password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
# deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
# outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
# interfaceRange: 33
# interfaceArg1: "vlan"
# interfaceArg2: "disable"
- name: Test Port Channel - vrrp
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "vrrp"
interfaceArg2: 33
- name: Test Port Channel - spanning tree1
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "spanning-tree"
interfaceArg2: "bpduguard"
interfaceArg3: "enable"
- name: Test Port Channel - spanning tree 2
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "spanning-tree"
interfaceArg2: "mst"
interfaceArg3: "33-35"
interfaceArg4: "cost"
interfaceArg5: 33
- name: Test Port Channel - ip1
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "ip"
interfaceArg2: "access-group"
interfaceArg3: "anil"
interfaceArg4: "in"
- name: Test Port Channel - ip2
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "ip"
interfaceArg2: "port"
interfaceArg3: "anil"
- name: Test Port Channel - bfd
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "bfd"
interfaceArg2: "interval"
interfaceArg3: 55
interfaceArg4: 55
interfaceArg5: 33
- name: Test Port Channel - bfd
cnos_portchannel:
host: "{{ inventory_hostname }}"
username: "{{ hostvars[inventory_hostname]['ansible_ssh_user'] }}"
password: "{{ hostvars[inventory_hostname]['ansible_ssh_pass'] }}"
deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
outputfile: "./results/test_portchannel_{{ inventory_hostname }}_output.txt"
interfaceRange: 33
interfaceArg1: "bfd"
interfaceArg2: "ipv4"
interfaceArg3: "authentication"
interfaceArg4: "meticulous-keyed-md5"
interfaceArg5: "key-chain"
interfaceArg6: "mychain"
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| msg строка | всегда | Сообщение об успехе или ошибке Пример: Конфигурация канала портов выполнена |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Автор
- Anil Kumar Muraleedharan (@amuraleedhar)
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/cnos_portchannel_module.html