Модуль cisco.ios.ios_l2_interfaces — модуль ресурсов для настройки интерфейсов L2.
Примечание
Этот модуль входит в коллекцию cisco.ios (версия 11.4.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install cisco.ios.
Чтобы использовать её в плейбуке, укажите: cisco.ios.ios_l2_interfaces.
Добавлено в cisco.ios 1.0.0
Краткое описание
- Этот модуль обеспечивает декларативное управление интерфейсами уровня 2 на устройствах Cisco IOS.
Примечание
Этому модулю соответствует плагин действия.
Псевдонимы: l2_interfaces
Параметры
Параметр | Комментарии |
|---|---|
config list / elements=dictionary | Словарь параметров интерфейса уровня 2 |
|
access dictionary |
Команда switchport mode access для настройки интерфейса как порта доступа уровня 2. |
|
vlan integer |
Настройка указанной VLAN на порту доступа. Используется как идентификатор VLAN доступа. |
|
vlan_name string |
Задать VLAN, если интерфейс работает в режиме доступа. |
|
app_interface boolean |
Включить порт для размещения приложений (switchport app-interface) Варианты:
|
|
block_options dictionary |
Отключить пересылку неизвестных одноадресных и многоадресных адресов. |
|
multicast boolean |
Блокировать неизвестные многоадресные адреса Варианты:
|
|
unicast boolean |
Блокировать неизвестные одноадресные адреса Варианты:
|
|
encapsulation dictionary |
Настроить инкапсуляцию для интерфейса. |
|
type string |
Тип инкапсуляции (например, dot1q). |
|
vlan_id integer |
Идентификатор VLAN для инкапсуляции. |
|
host boolean |
Настроить порт как хост (switchport host) Варианты:
|
|
mode string |
Режим, в котором необходимо настроить интерфейс. Интерфейс, для которого инкапсуляция транка задана как «Auto», нельзя настроить в режиме «trunk». Варианты:
|
|
name string / обязательный |
Полное имя интерфейса без номера логического устройства, например GigabitEthernet0/1. |
|
nonegotiate boolean |
Устройство не будет участвовать в протоколе согласования на этом интерфейсе (switchport nonegotiate) Варианты:
|
|
private_vlan dictionary |
Задать конфигурацию частной VLAN. |
|
add boolean |
Добавить VLAN в список частных VLAN. Варианты:
|
|
association boolean |
Задать ассоциацию частной VLAN. Варианты:
|
|
host boolean |
Задать ассоциацию хоста частной VLAN. Варианты:
|
|
host_association boolean |
Задать ассоциацию хоста частной VLAN. Варианты:
|
|
mapping boolean |
Задать отображение частной VLAN для promiscuous-порта. Варианты:
|
|
primary_range integer |
Идентификатор VLAN из основного расширенного/обычного диапазона для отображения частной VLAN на promiscuous-порту. |
|
remove boolean |
Удалить VLAN из списка частных VLAN. Варианты:
|
|
secondary_range integer |
Идентификатор VLAN из вторичного расширенного/обычного диапазона для отображения частной VLAN на promiscuous-порту. |
|
secondary_vlan_id string |
Идентификаторы вторичных VLAN для отображения частной VLAN на promiscuous-порту. |
|
protected boolean |
Настроить интерфейс как защищенный порт (switchport protected) Варианты:
|
|
spanning_tree dictionary |
Параметры протокола связующего дерева |
|
bpdufilter dictionary |
Не отправлять и не принимать BPDU на этом интерфейсе |
|
disabled boolean |
Отключить фильтрацию BPDU для этого интерфейса Варианты:
|
|
enabled boolean |
Включить фильтрацию BPDU для этого интерфейса Варианты:
|
|
bpduguard dictionary |
Не принимать BPDU на этом интерфейсе |
|
disabled boolean |
Отключить защиту BPDU для этого интерфейса Варианты:
|
|
enabled boolean |
Включить защиту BPDU для этого интерфейса Варианты:
|
|
cost integer |
Изменить стоимость пути порта интерфейса в протоколе связующего дерева |
|
guard dictionary |
Изменить режим защиты протокола связующего дерева для интерфейса |
|
loop boolean |
Установить для интерфейса режим защиты от петель Варианты:
|
|
none boolean |
Установить режим защиты «нет» Варианты:
|
|
root boolean |
Установить для интерфейса режим защиты корневого моста Варианты:
|
|
link_type dictionary |
Указать тип канала для протокола связующего дерева |
|
point_to_point boolean |
Считать интерфейс соединением «точка-точка» Варианты:
|
|
boolean |
Считать интерфейс общим Варианты:
|
|
mst dictionary |
Множественное связующее дерево |
|
cost string |
<1-200000000> Изменить стоимость пути интерфейса в протоколе связующего дерева для экземпляра |
|
instance_range string |
Список экземпляров MST, например 0,2-4,6,8-12 |
|
port_priority integer |
Изменить приоритет порта в протоколе связующего дерева для экземпляра |
|
port_priority integer |
Изменить приоритет порта интерфейса в протоколе связующего дерева |
|
portfast dictionary |
Разрешить интерфейсу сразу переходить в состояние пересылки при поднятии канала |
|
disabled boolean |
Отключить PortFast для этого интерфейса Варианты:
|
|
trunk boolean |
Включить PortFast на интерфейсе, даже если он работает в режиме транка Варианты:
|
|
rootguard boolean |
Включить защиту корневого моста на интерфейсе Варианты:
|
|
vlan dictionary |
Протокол связующего дерева для VLAN коммутатора |
|
cost string |
<1-200000000> Изменить стоимость пути интерфейса в протоколе связующего дерева для экземпляра |
|
port_priority integer |
Изменить приоритет порта в протоколе связующего дерева для экземпляра |
|
vlan_range string |
Список экземпляров MST, например 1,3-5,7,9-11 |
|
trunk dictionary |
Команда switchport mode trunk для настройки интерфейса как транка уровня 2. Примечание: инкапсуляция всегда задается как dot1q. |
|
allowed_vlans list / elements=string |
Список разрешенных VLAN на указанном порту транка. На транке будут настроены только эти VLAN. |
|
encapsulation string |
Инкапсуляция транка, если интерфейс работает в режиме транка. Варианты:
|
|
native_vlan integer |
Нативная VLAN для настройки на порту транка. Используется как идентификатор нативной VLAN транка. |
|
pruning_vlans list / elements=string |
VLAN для отсечения на порту транка. Используется как идентификатор VLAN отсечения транка. |
|
vepa boolean |
Настройка отражающей ретрансляции (switchport vepa enabled) Варианты:
|
|
voice dictionary |
Команда switchport mode voice для настройки интерфейса с голосовой VLAN. |
|
vlan integer |
Настроить указанную голосовую VLAN на порту доступа. Используется в качестве идентификатора голосовой VLAN. |
|
vlan_name string |
Задать VLAN, если интерфейс работает в режиме доступа. |
|
vlan_tag string |
Задать тег VLAN. dot1p (тег с приоритетом на PVID) none (не сообщать телефону о голосовой VLAN) untagged (без тега на PVID) Варианты:
|
|
xconnect dictionary |
Настроить ссылку xconnect для интерфейса. |
|
address string |
IP-адрес удалённого узла. |
|
encapsulation string |
Тип инкапсуляции для xconnect. Варианты:
|
|
manual boolean |
Настроить xconnect вручную. Варианты:
|
|
pw_class string |
Имя класса псевдопровода. |
|
sequencing string |
Параметры упорядочивания для xconnect. Варианты:
|
|
vcid integer |
Идентификатор виртуального канала. |
running_config string | Этот параметр используется только при состоянии parsed. Значением этого параметра должен быть вывод, полученный от устройства IOS при выполнении команды show running-config | section ^interface. Состояние parsed считывает конфигурацию из параметра |
state string | Состояние, в котором должна остаться конфигурация Состояния rendered, gathered и parsed не вносят изменений на устройстве. Состояние rendered преобразует конфигурацию из параметра Состояние gathered получает текущую конфигурацию с устройства и преобразует её в структурированные данные в соответствии со спецификацией аргументов модуля ресурсов; значение возвращается в ключе gathered результата. Состояние parsed считывает конфигурацию из параметра Варианты:
|
Примечания
Примечание
- Проверено на Cisco IOSv версии 15.2 в CML.
- Этот модуль работает с подключением
network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html - В примерах модуля используется плагин обратного вызова (stdout_callback = yaml) для вывода результатов задачи в формате YAML.
Примеры
# Using merged
# Before state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# media-type rj45
# negotiation auto
- name: Merge provided configuration with device configuration
cisco.ios.ios_l2_interfaces:
config:
- name: GigabitEthernet0/1
mode: access
access:
vlan: 10
voice:
vlan: 40
- name: GigabitEthernet0/2
mode: trunk
trunk:
allowed_vlans: 10-20,40
native_vlan: 20
pruning_vlans: 10,20
encapsulation: dot1q
state: merged
# Task Output
# -----------
#
# before:
# - name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# commands:
# - interface GigabitEthernet0/1
# - switchport access vlan 10
# - switchport voice vlan 40
# - switchport mode access
# - interface GigabitEthernet0/2
# - switchport mode trunk
# - switchport trunk encapsulation dot1q
# - switchport trunk native vlan 20
# - switchport trunk allowed vlan 10-20,40
# - switchport trunk pruning vlan 10,20
# after:
# - access:
# vlan: 10
# mode: access
# name: GigabitEthernet0/1
# voice:
# vlan: 40
# - mode: trunk
# name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 10-20
# - '40'
# encapsulation: dot1q
# native_vlan: 20
# pruning_vlans:
# - '10'
# - '20'
# After state:
# ------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 10
# switchport voice vlan 40
# switchport mode access
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport trunk allowed vlan 10-20,40
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 20
# switchport trunk pruning vlan 10,20
# switchport mode trunk
# media-type rj45
# negotiation auto
# Using replaced
# Before state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# media-type rj45
# negotiation auto
- name: Replaces device configuration with provided configuration
cisco.ios.ios_l2_interfaces:
config:
- name: GigabitEthernet0/2
trunk:
allowed_vlans: 20-25,40
native_vlan: 20
pruning_vlans: 10
encapsulation: isl
state: replaced
# Task Output
# -----------
#
# before:
# - name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# commands:
# - interface GigabitEthernet0/2
# - no switchport access vlan
# - switchport trunk encapsulation isl
# - switchport trunk native vlan 20
# - switchport trunk allowed vlan 20-25,40
# - switchport trunk pruning vlan 10
# after:
# - access:
# vlan: 20
# name: GigabitEthernet0/1
# - name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 20-25
# - '40'
# encapsulation: isl
# native_vlan: 20
# pruning_vlans:
# - '10'
# After state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport trunk allowed vlan 20-25,40
# switchport trunk encapsulation isl
# switchport trunk native vlan 20
# switchport trunk pruning vlan 10
# media-type rj45
# negotiation auto
# Using overridden
# Before state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 20
# media-type rj45
# negotiation auto
- name: Override device configuration of all l2 interfaces with provided configuration
cisco.ios.ios_l2_interfaces:
config:
- name: GigabitEthernet0/2
access:
vlan: 20
voice:
vlan: 40
state: overridden
# Task Output
# -----------
#
# before:
# - name: GigabitEthernet0/1
# trunk:
# encapsulation: dot1q
# native_vlan: 20
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# trunk:
# encapsulation: dot1q
# native_vlan: 20
# commands:
# - interface GigabitEthernet0/1
# - no switchport trunk encapsulation
# - no switchport trunk native vlan
# - interface GigabitEthernet0/2
# - switchport voice vlan 40
# - no switchport trunk encapsulation
# - no switchport trunk native vlan
# after:
# - name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# voice:
# vlan: 40
# After state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport voice vlan 40
# media-type rj45
# negotiation auto
# Using deleted
# Before state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport trunk allowed vlan 20-40,60,80
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport trunk pruning vlan 10
# media-type rj45
# negotiation auto
- name: Delete IOS L2 interfaces as in given arguments
cisco.ios.ios_l2_interfaces:
config:
- name: GigabitEthernet0/1
state: deleted
# Task Output
# -----------
#
# before:
# - access:
# vlan: 20
# name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 20-40
# - '60'
# - '80'
# encapsulation: dot1q
# native_vlan: 10
# pruning_vlans:
# - '10'
# commands:
# - interface GigabitEthernet0/1
# - no switchport access vlan
# after:
# - name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 20-40
# - '60'
# - '80'
# encapsulation: dot1q
# native_vlan: 10
# pruning_vlans:
# - '10'
# After state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport trunk allowed vlan 20-40,60,80
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport trunk pruning vlan 10
# media-type rj45
# negotiation auto
# Using deleted without config - delete all configuration
# Before state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport trunk allowed vlan 20-40,60,80
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport trunk pruning vlan 10
# media-type rj45
# negotiation auto
- name: Delete IOS L2 interfaces as in given arguments
cisco.ios.ios_l2_interfaces:
state: deleted
# Task Output
# -----------
#
# before:
# - access:
# vlan: 20
# name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 20-40
# - '60'
# - '80'
# encapsulation: dot1q
# native_vlan: 10
# pruning_vlans:
# - '10'
# commands:
# - interface GigabitEthernet0/1
# - no switchport access vlan
# - interface GigabitEthernet0/2
# - no switchport access vlan
# - no switchport trunk encapsulation
# - no switchport trunk native vlan
# - no switchport trunk allowed vlan
# - no switchport trunk pruning vlan
# after:
# - name: GigabitEthernet0/1
# - name: GigabitEthernet0/2
# After state:
# -------------
#
# viosl2#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# media-type rj45
# negotiation auto
# Using gathered
# Before state:
# -------------
#
# vios#sh running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport trunk allowed vlan 20-40,60,80
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport trunk pruning vlan 10
# media-type rj45
# negotiation auto
- name: Gather facts for l2 interfaces
cisco.ios.ios_l2_interfaces:
config:
state: gathered
# Task Output
# -----------
#
# gathered:
# - access:
# vlan: 20
# name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 20-40
# - '60'
# - '80'
# encapsulation: dot1q
# native_vlan: 10
# pruning_vlans:
# - '10'
# Using rendered
- name: Render the commands for provided configuration
cisco.ios.ios_l2_interfaces:
config:
- name: GigabitEthernet0/1
access:
vlan: 30
- name: GigabitEthernet0/2
trunk:
allowed_vlans: 10-20,40
native_vlan: 20
pruning_vlans: 10,20
encapsulation: dot1q
state: rendered
# Task Output
# -----------
#
# rendered:
# - interface GigabitEthernet0/1
# - switchport access vlan 30
# - interface GigabitEthernet0/2
# - switchport trunk encapsulation dot1q
# - switchport trunk native vlan 20
# - switchport trunk allowed vlan 10-20,40
# - switchport trunk pruning vlan 10,20
# Using Parsed
# File: parsed.cfg
# ----------------
#
# interface GigabitEthernet0/1
# description Configured by Ansible
# switchport access vlan 20
# negotiation auto
# interface GigabitEthernet0/2
# description This is test
# switchport access vlan 20
# switchport trunk allowed vlan 20-40,60,80
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport trunk pruning vlan 10
# media-type rj45
# negotiation auto
- name: Parse the commands for provided configuration
cisco.ios.ios_l2_interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task Output
# -----------
#
# parsed:
# - access:
# vlan: 20
# name: GigabitEthernet0/1
# - access:
# vlan: 20
# name: GigabitEthernet0/2
# trunk:
# allowed_vlans:
# - 20-40
# - '60'
# - '80'
# encapsulation: dot1q
# native_vlan: 10
# pruning_vlans:
# - '10'
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
after dictionary | Конфигурация после выполнения модуля. Возвращается: при наличии изменений Пример: |
before dictionary | Конфигурация до выполнения модуля. Возвращается: когда state имеет значение Пример: |
commands list / elements=string | Набор команд, отправленных на удалённое устройство. Возвращается: когда state имеет значение Пример: |
gathered list / elements=string | Факты о сетевом ресурсе, собранные с удалённого устройства в виде структурированных данных. Возвращается: когда state имеет значение Пример: |
parsed list / elements=string | Собственная конфигурация устройства, указанная в параметре running_config и разобранная в структурированные данные согласно спецификации аргументов модуля. Возвращается: когда state имеет значение Пример: |
rendered list / elements=string | Конфигурация, указанная в задаче и преобразованная в собственный формат устройства (в автономном режиме). Возвращается: когда state имеет значение Пример: |
Ссылки на коллекцию
© 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/cisco/ios/ios_l2_interfaces_module.html