cisco.ios.ios_l3_interfaces – Модуль ресурса интерфейсов L3
Примечание
Этот плагин является частью коллекции cisco.ios (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install cisco.ios.
Для использования в книге задач укажите: cisco.ios.ios_l3_interfaces.
Новое в версии 1.0.0: модуля cisco.ios
Обзор
- Этот модуль обеспечивает декларативное управление интерфейсами третьего уровня на устройствах Cisco IOS.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| config список / элементы=словарь | Словарь параметров интерфейса третьего уровня | |||
| ipv4 список / элементы=словарь | IPv4-адрес, который должен быть задан для интерфейса третьего уровня, указанного в параметре name. Формат адреса — <ipv4-адрес>/<маска>, маска — число в диапазоне от 0 до 32, например, 192.168.0.1/24. | |||
| address строка | Настройка IPv4-адреса для интерфейса. | |||
| dhcp_client целое число | Настройка и указание идентификатора клиента для использования через DHCP-адрес. Обратите внимание, что этот параметр будет работать только в случае, если DHCP настроен как IP. Номер интерфейса GigabitEthernet | |||
| dhcp_hostname строка | Настройка и указание значения параметра имени хоста через DHCP-адрес. Обратите внимание, что этот параметр будет работать только в случае, если DHCP настроен как IP. | |||
| secondary логическое значение |
| Настройка IP-адреса как дополнительного адреса. | ||
| ipv6 список / элементы=словарь | IPv6-адрес, который должен быть задан для интерфейса третьего уровня, указанного в параметре name. Формат адреса — <ipv6-адрес>/<маска>, маска — число в диапазоне от 0 до 128, например, fd5d:12c9:2201:1::1/64 | |||
| address строка | Настройка IPv6-адреса для интерфейса. | |||
| name строка / обязательно | Полное имя интерфейса без номера логического блока, например, GigabitEthernet0/1. | |||
| running_config строка | Этот параметр используется только со значением parsed. Значение этого параметра должно быть результатом выполнения команды show running-config | section ^interface на устройстве IOS. Значение параметра parsed считывает конфигурацию из параметра running_config, преобразует её в структурированные данные Ansible, соответствующие спецификации модуля ресурса, а затем возвращает значение в ключе parsed в результате. | |||
| state строка |
| Состояние, в котором должна остаться конфигурация. Состояния rendered, gathered и parsed не производят никаких изменений на устройстве. Состояние rendered преобразует конфигурацию в config CLI-команды, которые будут возвращены в ключе rendered в результате. Для состояния rendered активное подключение к удалённому хосту не требуется.Состояние gathered извлекает рабочую конфигурацию из устройства и преобразует её в структурированные данные в формате, соответствующем спецификации модуля ресурса, а значение возвращается в ключе gathered в результате. Состояние parsed считывает конфигурацию из running_config параметра и преобразует её в JSON-формат, соответствующий параметрам модуля ресурса, а значение возвращается в ключе parsed в результате. Значение параметра running_config должно иметь тот же формат, что и вывод команды show running-config | section ^interface, выполненной на устройстве. Для состояния parsed активное подключение к удалённому хосту не требуется. | ||
Примечания
Примечание
- Проверено на Cisco IOSv версии 15.2 на VIRL.
Примеры
# Using merged
#
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# ip address 10.1.1.1 255.255.255.0
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description This is test
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# no ip address
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
- name: Merge provided configuration with device configuration
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet0/1
ipv4:
- address: 192.168.0.1/24
secondary: true
- name: GigabitEthernet0/2
ipv4:
- address: 192.168.0.2/24
- name: GigabitEthernet0/3
ipv6:
- address: fd5d:12c9:2201:1::1/64
- name: GigabitEthernet0/3.100
ipv4:
- address: 192.168.0.3/24
state: merged
# After state:
# ------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# ip address 10.1.1.1 255.255.255.0
# ip address 192.168.0.1 255.255.255.0 secondary
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description This is test
# ip address 192.168.0.2 255.255.255.0
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ip address 192.168.0.3 255.255.255.0
# Using replaced
#
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# ip address 10.1.1.1 255.255.255.0
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description This is test
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ip address 192.168.2.0 255.255.255.0
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ip address 192.168.0.2 255.255.255.0
- name: Replaces device configuration of listed interfaces with provided configuration
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet0/2
ipv4:
- address: 192.168.2.0/24
- name: GigabitEthernet0/3
ipv4:
- address: dhcp
dhcp_client: 2
dhcp_hostname: test.com
- name: GigabitEthernet0/3.100
ipv4:
- address: 192.168.0.3/24
secondary: true
state: replaced
# After state:
# ------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# ip address 10.1.1.1 255.255.255.0
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description This is test
# ip address 192.168.2.1 255.255.255.0
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ip address dhcp client-id GigabitEthernet0/2 hostname test.com
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ip address 192.168.0.2 255.255.255.0
# ip address 192.168.0.3 255.255.255.0 secondary
# Using overridden
#
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# ip address 10.1.1.1 255.255.255.0
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description This is test
# ip address 192.168.2.1 255.255.255.0
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ip address 192.168.0.2 255.255.255.0
- name: Override device configuration of all interfaces with provided configuration
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet0/2
ipv4:
- address: 192.168.0.1/24
- name: GigabitEthernet0/3.100
ipv6:
- address: autoconfig
state: overridden
# After state:
# ------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# description Configured by Ansible
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description This is test
# ip address 192.168.0.1 255.255.255.0
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ipv6 address autoconfig
# Using Deleted
#
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# ip address 192.0.2.10 255.255.255.0
# shutdown
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# ip address 192.168.1.0 255.255.255.0
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ip address 192.168.0.1 255.255.255.0
# shutdown
# duplex full
# speed 10
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ip address 192.168.0.2 255.255.255.0
- name: "Delete attributes of given interfaces (NOTE: This won't delete the interface sitself)"
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet0/2
- name: GigabitEthernet0/3.100
state: deleted
# After state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# shutdown
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# no ip address
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ip address 192.168.0.1 255.255.255.0
# shutdown
# duplex full
# speed 10
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# Using Deleted without any config passed
#"(NOTE: This will delete all of configured L3 resource module attributes from each configured interface)"
#
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# ip address 192.0.2.10 255.255.255.0
# shutdown
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# ip address 192.168.1.0 255.255.255.0
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# ip address 192.168.0.1 255.255.255.0
# shutdown
# duplex full
# speed 10
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# ip address 192.168.0.2 255.255.255.0
- name: "Delete L3 attributes of ALL interfaces together (NOTE: This won't delete the interface itself)"
cisco.ios.ios_l3_interfaces:
state: deleted
# After state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# shutdown
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# no ip address
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# shutdown
# duplex full
# speed 10
# interface GigabitEthernet0/3.100
# encapsulation dot1Q 20
# Using Gathered
# Before state:
# -------------
#
# vios#sh running-config | section ^interface
# interface GigabitEthernet0/1
# ip address 203.0.113.27 255.255.255.0
# interface GigabitEthernet0/2
# ip address 192.0.2.1 255.255.255.0 secondary
# ip address 192.0.2.2 255.255.255.0
# ipv6 address 2001:DB8:0:3::/64
- name: Gather listed l3 interfaces with provided configurations
cisco.ios.ios_l3_interfaces:
config:
state: gathered
# Module Execution Result:
# ------------------------
#
# "gathered": [
# {
# "ipv4": [
# {
# "address": "203.0.113.27 255.255.255.0"
# }
# ],
# "name": "GigabitEthernet0/1"
# },
# {
# "ipv4": [
# {
# "address": "192.0.2.1 255.255.255.0",
# "secondary": true
# },
# {
# "address": "192.0.2.2 255.255.255.0"
# }
# ],
# "ipv6": [
# {
# "address": "2001:db8:0:3::/64"
# }
# ],
# "name": "GigabitEthernet0/2"
# }
# ]
# After state:
# ------------
#
# vios#sh running-config | section ^interface
# interface GigabitEthernet0/1
# ip address 203.0.113.27 255.255.255.0
# interface GigabitEthernet0/2
# ip address 192.0.2.1 255.255.255.0 secondary
# ip address 192.0.2.2 255.255.255.0
# ipv6 address 2001:DB8:0:3::/64
# Using Rendered
- name: Render the commands for provided configuration
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet0/1
ipv4:
- address: dhcp
dhcp_client: 0
dhcp_hostname: test.com
- name: GigabitEthernet0/2
ipv4:
- address: 198.51.100.1/24
secondary: true
- address: 198.51.100.2/24
ipv6:
- address: 2001:db8:0:3::/64
state: rendered
# Module Execution Result:
# ------------------------
#
# "rendered": [
# "interface GigabitEthernet0/1",
# "ip address dhcp client-id GigabitEthernet 0/0 hostname test.com",
# "interface GigabitEthernet0/2",
# "ip address 198.51.100.1 255.255.255.0 secondary",
# "ip address 198.51.100.2 255.255.255.0",
# "ipv6 address 2001:db8:0:3::/64"
# ]
# Using Parsed
# File: parsed.cfg
# ----------------
#
# interface GigabitEthernet0/1
# ip address dhcp client-id
# GigabitEthernet 0/0 hostname test.com
# interface GigabitEthernet0/2
# ip address 198.51.100.1 255.255.255.0
# secondary ip address 198.51.100.2 255.255.255.0
# ipv6 address 2001:db8:0:3::/64
- name: Parse the commands for provided configuration
cisco.ios.ios_l3_interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Module Execution Result:
# ------------------------
#
# "parsed": [
# {
# "ipv4": [
# {
# "address": "dhcp",
# "dhcp_client": 0,
# "dhcp_hostname": "test.com"
# }
# ],
# "name": "GigabitEthernet0/1"
# },
# {
# "ipv4": [
# {
# "address": "198.51.100.1 255.255.255.0",
# "secondary": true
# },
# {
# "address": "198.51.100.2 255.255.255.0"
# }
# ],
# "ipv6": [
# {
# "address": "2001:db8:0:3::/64"
# }
# ],
# "name": "GigabitEthernet0/2"
# }
# ]
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращённое значение | Описание |
|---|---|---|
| after список / элементы=строка | при изменении | Конфигурация в структурированных данных после завершения работы модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и вышеперечисленные параметры. |
| before список / элементы=строка | всегда | Конфигурация в структурированных данных до вызова модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и вышеперечисленные параметры. |
| commands список / элементы=строка | всегда | Набор команд, отправленных удалённому устройству Пример: ['interface GigabitEthernet0/1', 'ip address 192.168.0.2 255.255.255.0'] |
Авторы
- Sumit Jaiswal (@justjais)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/cisco/ios/ios_l3_interfaces_module.html