Spec-Zone.ru › Ansible 2.11

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
строка
    Варианты:
  • merged ←
  • replaced
  • overridden
  • deleted
  • rendered
  • gathered
  • parsed
Состояние, в котором должна остаться конфигурация.
Состояния 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API