cisco.ios.ios_interfaces – Модуль ресурсов интерфейсов
Примечание
Этот плагин входит в состав коллекции cisco.ios (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install cisco.ios
Для использования в книге задач укажите: cisco.ios.ios_interfaces
Новое в версии 1.0.0: модуля cisco.ios
Обзор
- Этот модуль управляет атрибутами интерфейсов устройств Cisco IOS.
Примечание
У этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| config список / элементы=словарь | Словарь опций интерфейса | ||
| description строка | Описание интерфейса. | ||
| duplex строка |
| Состояние соединения интерфейса. Применимо только для Ethernet-интерфейсов, либо в режиме half duplex, full duplex, либо в автоматическом режиме, который автоматически согласовывает режим duplex. | |
| enabled булево |
| Административное состояние интерфейса. Установите значение в true, чтобы административно включить интерфейс, или false, чтобы отключить его. | |
| mtu целое число | MTU для определенного интерфейса. Применимо только для Ethernet-интерфейсов. Обратитесь к документации производителя для допустимых значений. | ||
| name строка / обязательно | Полное имя интерфейса, например, GigabitEthernet0/2, loopback999. | ||
| speed строка | Скорость соединения интерфейса. Применимо только для Ethernet-интерфейсов. | ||
| running_config строка | Этот параметр используется только со значением состояния parsed. Значение этого параметра должно соответствовать выводу устройства IOS, полученному путем выполнения команды show running-config | section ^interface. Состояние 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 | include ip route|ipv6 route, выполненной на устройстве. Для состояния parsed активное подключение к удаленному хосту не требуется. | |
Примечания
Примечание
- Проверено на Cisco IOSv версии 15.2 на VIRL
Примеры
# Using merged
# Before 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
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# no ip address
# duplex auto
# speed auto
- name: Merge provided configuration with device configuration
cisco.ios.ios_interfaces:
config:
- name: GigabitEthernet0/2
description: Configured and Merged by Ansible Network
enabled: true
- name: GigabitEthernet0/3
description: Configured and Merged by Ansible Network
mtu: 2800
enabled: false
speed: 100
duplex: full
state: merged
# 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 Configured and Merged by Ansible Network
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured and Merged by Ansible Network
# mtu 2800
# no ip address
# shutdown
# duplex full
# speed 100
# Using replaced
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# mtu 2000
# no ip address
# shutdown
# duplex full
# speed 100
- name: Replaces device configuration of listed interfaces with provided configuration
cisco.ios.ios_interfaces:
config:
- name: GigabitEthernet0/3
description: Configured and Replaced by Ansible Network
enabled: false
duplex: auto
mtu: 2500
speed: 1000
state: replaced
# After state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured and Replaced by Ansible Network
# mtu 2500
# no ip address
# shutdown
# duplex full
# speed 1000
# Using overridden
# Before 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
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible
# mtu 2800
# no ip address
# shutdown
# duplex full
# speed 100
- name: Override device configuration of all interfaces with provided configuration
cisco.ios.ios_interfaces:
config:
- name: GigabitEthernet0/2
description: Configured and Overridden by Ansible Network
speed: 1000
- name: GigabitEthernet0/3
description: Configured and Overridden by Ansible Network
enabled: false
duplex: full
mtu: 2000
state: overridden
# After state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured and Overridden by Ansible Network
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured and Overridden by Ansible Network
# mtu 2000
# no ip address
# shutdown
# duplex full
# speed 100
# Using Deleted
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# mtu 2500
# no ip address
# shutdown
# duplex full
# speed 1000
- name: "Delete module attributes of given interfaces (Note: This won't delete the interface itself)"
cisco.ios.ios_interfaces:
config:
- name: GigabitEthernet0/2
state: deleted
# After state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# mtu 2500
# no ip address
# shutdown
# duplex full
# speed 1000
# Using Deleted without any config passed
#"(NOTE: This will delete all of configured resource module attributes from each configured interface)"
# Before state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# description Configured by Ansible Network
# no ip address
# duplex auto
# speed 1000
# interface GigabitEthernet0/3
# description Configured by Ansible Network
# mtu 2500
# no ip address
# shutdown
# duplex full
# speed 1000
- name: "Delete module attributes of all interfaces (Note: This won't delete the interface itself)"
cisco.ios.ios_interfaces:
state: deleted
# After state:
# -------------
#
# vios#show running-config | section ^interface
# interface GigabitEthernet0/1
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/2
# no ip address
# duplex auto
# speed auto
# interface GigabitEthernet0/3
# no ip address
# duplex auto
# speed auto
# Using Gathered
# Before state:
# -------------
#
# vios#sh running-config | section ^interface
# interface GigabitEthernet0/1
# description this is interface1
# mtu 65
# duplex auto
# speed 10
# interface GigabitEthernet0/2
# description this is interface2
# mtu 110
# shutdown
# duplex auto
# speed 100
- name: Gather listed interfaces with provided configurations
cisco.ios.ios_interfaces:
config:
state: gathered
# Module Execution Result:
# ------------------------
#
# "gathered": [
# {
# "description": "this is interface1",
# "duplex": "auto",
# "enabled": true,
# "mtu": 65,
# "name": "GigabitEthernet0/1",
# "speed": "10"
# },
# {
# "description": "this is interface2",
# "duplex": "auto",
# "enabled": false,
# "mtu": 110,
# "name": "GigabitEthernet0/2",
# "speed": "100"
# }
# ]
# After state:
# ------------
#
# vios#sh running-config | section ^interface
# interface GigabitEthernet0/1
# description this is interface1
# mtu 65
# duplex auto
# speed 10
# interface GigabitEthernet0/2
# description this is interface2
# mtu 110
# shutdown
# duplex auto
# speed 100
# Using Rendered
- name: Render the commands for provided configuration
cisco.ios.ios_interfaces:
config:
- name: GigabitEthernet0/1
description: Configured by Ansible-Network
mtu: 110
enabled: true
duplex: half
- name: GigabitEthernet0/2
description: Configured by Ansible-Network
mtu: 2800
enabled: false
speed: 100
duplex: full
state: rendered
# Module Execution Result:
# ------------------------
#
# "rendered": [
# "interface GigabitEthernet0/1",
# "description Configured by Ansible-Network",
# "mtu 110",
# "duplex half",
# "no shutdown",
# "interface GigabitEthernet0/2",
# "description Configured by Ansible-Network",
# "mtu 2800",
# "speed 100",
# "duplex full",
# "shutdown"
# Using Parsed
# File: parsed.cfg
# ----------------
#
# interface GigabitEthernet0/1
# description interfaces 0/1
# mtu 110
# duplex half
# no shutdown
# interface GigabitEthernet0/2
# description interfaces 0/2
# mtu 2800
# speed 100
# duplex full
# shutdown
- name: Parse the commands for provided configuration
cisco.ios.ios_interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Module Execution Result:
# ------------------------
#
# "parsed": [
# {
# "description": "interfaces 0/1",
# "duplex": "half",
# "enabled": true,
# "mtu": 110,
# "name": "GigabitEthernet0/1"
# },
# {
# "description": "interfaces 0/2",
# "duplex": "full",
# "enabled": true,
# "mtu": 2800,
# "name": "GigabitEthernet0/2",
# "speed": "100"
# }
# ]
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| after список / элементы=строка | при изменении | Конфигурация в виде структурированных данных после завершения модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и вышеприведенные параметры. |
| before список / элементы=строка | всегда | Конфигурация в виде структурированных данных до вызова модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и вышеприведенные параметры. |
| commands список / элементы=строка | всегда | Набор команд, отправленных на удаленное устройство Пример: ['interface GigabitEthernet 0/1', 'description This is test', 'speed 100'] |
Авторы
- 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_interfaces_module.html