Nota

Este complemento es parte del colección cisco.ios (versión 1.3.0).

Para instalarlo use: ansible-galaxy collection install cisco.ios.

Para usarlo en un libro de jugadas, especifique: cisco.ios.ios_l2_interfaces.

Nuevo en la versión 1.0.0: de cisco.ios

  • Sinopsis
  • Parámetros
  • Notas
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Este módulo proporciona administración declarativa de la interfaz de capa 2 en dispositivos Cisco IOS.

Nota

Este módulo tiene un correspondiente complemento de acción.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
configlista / elementos = diccionario Un diccionario de opciones de interfaz de capa 2
accesodiccionario Comando de acceso al modo Switchport para configurar la interfaz como un acceso de capa 2.
vlanentero Configure la VLAN dada en el puerto de acceso. Se utiliza como ID de VLAN de acceso.
modocuerda
    Opciones:

  • acceso
  • maletero
Modo en el que se debe configurar la interfaz. Una interfaz cuya encapsulación troncal es “Auto” no se puede configurar en modo “troncal”.
nombrecuerda / requerido Nombre completo de la interfaz excluyendo cualquier número de unidad lógica, es decir, GigabitEthernet0 / 1.
maleterodiccionario Comando de troncal del modo Switchport para configurar la interfaz como una troncal de Capa 2. Nota La encapsulación siempre se establece en dot1q.
permitido_vlanslista / elementos = cadena Lista de VLAN permitidas en un puerto troncal determinado. Estas son las únicas VLAN que se configurarán en el tronco.
encapsulamientocuerda
    Opciones:

  • dot1q
  • isl
  • negociar
Encapsulación de enlaces cuando la interfaz está en modo de enlace.
native_vlanentero VLAN nativa que se configurará en el puerto troncal. Se utiliza como ID de VLAN nativa del tronco.
poda_vlanslista / elementos = cadena Poda de VLAN para ser configurada en el puerto troncal. Se utiliza como ID de VLAN de eliminación de troncales.
vozdiccionario Comando de voz del modo Switchport para configurar la interfaz con un vlan de voz.
vlanentero Configure la VLAN de voz dada en el puerto de acceso. Se utiliza como ID de VLAN de voz.
running_configcuerda Esta opción se usa solo con el estado analizado.El valor de esta opción debe ser la salida recibida del dispositivo IOS al ejecutar el comando muestre running-config | sección ^ interfaz.El estado analizado lee la configuración de running_config opción y lo transforma en datos estructurados de Ansible según el argspec del módulo de recursos y el valor luego se devuelve en el analizado clave dentro del resultado.
estadocuerda
    Opciones:

  • fusionado
  • reemplazado
  • anulado
  • eliminado
  • prestados
  • reunido
  • analizado
El estado en el que se debe dejar la configuración Los estados prestados, reunido y analizado no realiza ningún cambio en el dispositivo. prestados transformará la configuración en config opción a los comandos CLI específicos de la plataforma que se devolverán en el prestados clave dentro del resultado. Para el estado prestados No se requiere conexión activa al host remoto. reunido obtendrá la configuración en ejecución del dispositivo y la transformará en datos estructurados en el formato según el módulo de recursos argspec y el valor se devuelve en el reunido clave dentro del resultado. analizado lee la configuración de running_config opción y lo transforma en formato JSON según los parámetros del módulo de recursos y el valor se devuelve en el analizado clave dentro del resultado. El valor de running_config La opción debe tener el mismo formato que la salida del comando. muestre running-config | incluir ruta ip | ruta ipv6 ejecutado en el dispositivo. Para el estado analizado no se requiere conexión activa al host remoto.

Notas

Nota

  • Probado contra Cisco IOSv versión 15.2 en VIRL.

Ejemplos de

# 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:10voice:vlan:40-name: GigabitEthernet0/2
      mode: trunk
      trunk:allowed_vlans: 10-20,40native_vlan:20pruning_vlans:10,20encapsulation: dot1q
    state: merged

# 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 of listed l2 interfaces with provided configuration
  cisco.ios.ios_l2_interfaces:config:-name: GigabitEthernet0/2
      trunk:allowed_vlans: 20-25,40native_vlan:20pruning_vlans:10encapsulation: isl
    state: replaced

# 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:20voice:vlan:40state: overridden

# 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

# 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 any config passed#"(NOTE: This will delete all of configured resource module attributes from each configured interface)"# 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

# 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#  switchport access vlan 10# interface GigabitEthernet0/2#  switchport trunk allowed vlan 10-20,40#  switchport trunk encapsulation dot1q#  switchport trunk native vlan 10#  switchport trunk pruning vlan 10,20#  switchport mode trunk-name: Gather listed l2 interfaces with provided configurations
  cisco.ios.ios_l2_interfaces:config:state: gathered

# Module Execution Result:# ------------------------## "gathered": [#         #             "name": "GigabitEthernet0/0"#         ,#         #             "access": #                 "vlan": 10#             ,#             "name": "GigabitEthernet0/1"#         ,#         #             "mode": "trunk",#             "name": "GigabitEthernet0/2",#             "trunk": #                 "allowed_vlans": [#                     "10-20",#                     "40"#                 ],#                 "encapsulation": "dot1q",#                 "native_vlan": 10,#                 "pruning_vlans": [#                     "10",#                     "20"#                 ]#             #         #     ]# After state:# ------------## vios#sh running-config | section ^interface# interface GigabitEthernet0/1#  switchport access vlan 10# interface GigabitEthernet0/2#  switchport trunk allowed vlan 10-20,40#  switchport trunk encapsulation dot1q#  switchport trunk native vlan 10#  switchport trunk pruning vlan 10,20#  switchport mode trunk# 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,40native_vlan:20pruning_vlans:10,20encapsulation: dot1q
    state: rendered

# Module Execution Result:# ------------------------## "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# switchport mode access# switchport access vlan 30# interface GigabitEthernet0/2# switchport trunk allowed vlan 15-20,40# switchport trunk encapsulation dot1q# switchport trunk native vlan 20# switchport trunk pruning vlan 10,20-name: Parse the commands for provided configuration
  cisco.ios.ios_l2_interfaces:running_config:" lookup('file', 'parsed.cfg') "state: parsed

# Module Execution Result:# ------------------------## "parsed": [#         #             "access": #                 "vlan": 30#             ,#             "mode": "access",#             "name": "GigabitEthernet0/1"#         ,#         #             "name": "GigabitEthernet0/2",#             "trunk": #                 "allowed_vlans": [#                     "15-20",#                     "40"#                 ],#                 "encapsulation": "dot1q",#                 "native_vlan": 20,#                 "pruning_vlans": [#                     "10",#                     "20"#                 ]#             #         #     ]

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
despuéslista / elementos = cadena cuando cambia La configuración como datos estructurados después de la finalización del módulo.
Muestra:La configuración devuelta siempre estará en el mismo formato de los parámetros anteriores.
antes delista / elementos = cadena siempre La configuración como datos estructurados antes de la invocación del módulo.
Muestra:La configuración devuelta siempre estará en el mismo formato de los parámetros anteriores.
comandoslista / elementos = cadena siempre El conjunto de comandos enviados al dispositivo remoto
Muestra:[‘interface GigabitEthernet0/1’, ‘switchport access vlan 20’]

Autores

  • Sumit Jaiswal (@justjais)