cisco.ios.ios_l3_interfaces модуль — Модуль ресурсов для настройки интерфейсов L3.
Примечание
Этот модуль является частью коллекции cisco.ios (версия 8.0.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install cisco.ios.
Для использования в плейбуке укажите: cisco.ios.ios_l3_interfaces.
Новое в cisco.ios 1.0.0
Описание
- Этот модуль предоставляет декларативное управление интерфейсами уровня 3 на устройствах Cisco IOS.
Псевдонимы: l3_interfaces
Параметры
Параметр | Комментарии |
|---|---|
config список / элементы=словарь | Словарь параметров интерфейса уровня 3 |
autostate логическое | Включить автоматическое определение состояния для VLAN. Варианты:
|
ipv4 список / элементы=словарь | IPv4-адрес, который нужно установить для интерфейса уровня 3, указанного в параметре name. Формат адреса: <ipv4-адрес>/<маска>, маска — число от 0 до 32, например, 192.168.0.1/24. |
address строка | Настройка IPv4-адреса для интерфейса. |
dhcp словарь | IP-адрес, полученный через DHCP. |
client_id строка | Указать используемый идентификатор клиента. |
enable логическое | Включить DHCP. Варианты:
|
hostname строка | Указать значение параметра hostname. |
dhcp_client строка | Настройка и указание идентификатора клиента для использования через DHCP ip. Примечание: этот параметр будет работать только при настройке DHCP как IP. Номер интерфейса GigabitEthernet Этот параметр устарел и заменён на dhcp, который принимает словарь в качестве входных данных. Этот атрибут будет удалён после 2023-08-01. |
dhcp_hostname строка | Настройка и указание значения параметра hostname для использования через DHCP ip. Примечание: этот параметр будет работать только при настройке DHCP как IP. Этот параметр устарел и заменён на dhcp, который принимает словарь в качестве входных данных. Этот атрибут будет удалён после 2023-08-01. |
pool строка | IP-адрес, автоматически настроенный из локального DHCP-пула. |
secondary логическое | Настройка IP-адреса как дополнительного адреса. Варианты:
|
source_interface словарь | Включить обработку IP без явного адреса |
name строка | Имя интерфейса |
point_to_point логическое | Включить соединение «точка-точка» Варианты:
|
poll логическое | Включить опрос подключенного хоста IP Варианты:
|
ipv6 список / элементы=словарь | IPv6-адрес, который нужно установить для интерфейса уровня 3, указанного в параметре name. Формат адреса: <ipv6-адрес>/<маска>, маска — число от 0 до 128, например, fd5d:12c9:2201:1::1/64 |
address строка | Настройка IPv6-адреса для интерфейса. |
anycast логическое | Настроить как anycast Варианты:
|
autoconfig словарь | Получение адреса с помощью автоматической настройки. |
default логическое | Вставить маршрут по умолчанию. Варианты:
|
enable логическое | Включить автоматическую настройку. Варианты:
|
|
cga boolean |
Использование идентификатора интерфейса CGA Варианты:
|
|
dhcp словарь |
Получение адреса ipv6 с помощью DHCP. |
|
enable boolean |
Включить dhcp. Варианты:
|
|
rapid_commit boolean |
Включить Rapid-Commit. Варианты:
|
|
enable boolean |
Включить IPv6 на интерфейсе Варианты:
|
|
eui boolean |
Использование идентификатора интерфейса eui-64 Варианты:
|
|
link_local boolean |
Использовать адрес link-local Варианты:
|
|
segment_routing словарь |
Подрежим маршрутизации сегментов |
|
default boolean |
Установить команду по умолчанию. Варианты:
|
|
enable boolean |
Включить сегментированную маршрутизацию. Варианты:
|
|
ipv6_sr boolean |
Установить ipv6_sr. Варианты:
|
|
mac_address строка |
Ручная установка MAC-адреса интерфейса. |
|
name строка / обязательно |
Полное имя интерфейса, исключая номер логического устройства, например, GigabitEthernet0/1. |
running_config строка | Этот параметр используется только со значением parsed. Значение этого параметра должно быть результатом выполнения команды show running-config | section ^interface на устройстве IOS. Состояние parsed считывает конфигурацию из параметра |
state строка | Состояние, в котором должна остаться конфигурация Состояния rendered, gathered и parsed не выполняют никаких изменений на устройстве. Состояние rendered преобразует конфигурацию в Состояние gathered извлекает текущую конфигурацию с устройства и преобразует её в структурированные данные в формате, соответствующем argspec модуля ресурса. Значение возвращается в ключе gathered в результате. Состояние parsed считывает конфигурацию из параметра Варианты:
|
Примечания
Примечание
- Проверено на Cisco IOSXE Версия 17.3 на CML.
- Использование состояния deleted без конфигурации удалит все атрибуты l3 со всех интерфейсов.
- Этот модуль работает с подключением
network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html - Примеры модуля используют плагин обратного вызова (stdout_callback = yaml) для генерации вывода задач в формате yaml.
Примеры
# Using merged
# Before state:
# -------------
#
# Router#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address dhcp
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
- 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: GigabitEthernet2
ipv4:
- address: 192.168.0.2/24
- name: GigabitEthernet3
ipv6:
- address: fd5d:12c9:2201:1::1/64
- name: GigabitEthernet3.100
ipv4:
- address: 192.168.0.3/24
- name: Vlan901
autostate: false
ipv4:
- source_interface:
name: Loopback1
ipv6:
- enable: true
state: merged
# Task Output
# -----------
#
# before:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet2
# - name: GigabitEthernet3
# - name: GigabitEthernet4
# - name: Loopback999
# commands:
# - interface GigabitEthernet2
# - ip address 192.168.0.2 255.255.255.0
# - interface GigabitEthernet3
# - ipv6 address fd5d:12c9:2201:1::1/64
# - interface GigabitEthernet3.100
# - ip address 192.168.0.3 255.255.255.0
# - interface Vlan901
# - ip unnumbered Loopback1
# - ipv6 enable
# - no autostate
# after:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.2/24
# name: GigabitEthernet2
# - ipv6:
# - address: FD5D:12C9:2201:1::1/64
# name: GigabitEthernet3
# - name: GigabitEthernet3.100
# ipv4:
# - address: 192.168.0.3/24
# - name: GigabitEthernet4
# - name: Loopback999
# ipv4:
# - source_interface:
# name: Loopback1
# ipv6:
# - enable: true
# autostate: false
# - name: Vlan901
# After state:
# ------------
#
# Router#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.2 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet3.100
# ip address 192.168.0.3 255.255.255.0
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
# interface Vlan901
# ip unnumbered Loopback1
# ipv6 enable
# no autostate
# Using replaced
# Before state:
# -------------
#
# Router#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.2 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
- name: Replaces device configuration of listed interfaces with provided configuration
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet2
ipv4:
- address: 192.168.2.0/24
- name: GigabitEthernet3
ipv4:
- dhcp:
client_id: GigabitEthernet2
hostname: test.com
state: replaced
# Task Output
# -----------
#
# before:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.2/24
# name: GigabitEthernet2
# - ipv6:
# - address: FD5D:12C9:2201:1::1/64
# name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# commands:
# - interface GigabitEthernet2
# - ip address 192.168.0.3 255.255.255.0
# - no ip address 192.168.0.2 255.255.255.0
# - interface GigabitEthernet3
# - ip address dhcp client-id GigabitEthernet2 hostname test.com
# - no ipv6 address fd5d:12c9:2201:1::1/64
# after:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.3/24
# name: GigabitEthernet2
# - ipv4:
# - dhcp:
# client_id: GigabitEthernet2
# enable: true
# hostname: test.com
# name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# After state:
# ------------
#
# router-ios#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.3 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# ip address dhcp client-id GigabitEthernet2 hostname test.com
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
# Using overridden
# Before state:
# -------------
#
# router-ios#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.3 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# ip address dhcp client-id GigabitEthernet2 hostname test.com
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
- name: Override device configuration of all interfaces with provided configuration
cisco.ios.ios_l3_interfaces:
config:
- ipv4:
- dhcp:
enable: true
name: GigabitEthernet1
- name: GigabitEthernet2
ipv4:
- address: 192.168.0.1/24
- name: GigabitEthernet3
state: overridden
# Task Output
# -----------
# before:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.3/24
# name: GigabitEthernet2
# - ipv4:
# - dhcp:
# client_id: GigabitEthernet2
# enable: true
# hostname: test.com
# name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# commands:
# - interface GigabitEthernet2
# - ip address 192.168.0.1 255.255.255.0
# - no ip address 192.168.0.3 255.255.255.0
# - interface GigabitEthernet3
# - no ip address dhcp client-id GigabitEthernet2 hostname test.com
# after:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.1/24
# name: GigabitEthernet2
# - name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# After state:
# ------------
#
# router-ios#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.1 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
# Using deleted
# Before state:
# -------------
#
# router-ios#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.1 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
- name: "Delete attributes of given interfaces (NOTE: This won't delete the interfaces)"
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet2
- name: GigabitEthernet3.100
state: deleted
# Task Output
# -----------
#
# before:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.1/24
# name: GigabitEthernet2
# - name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# commands:
# - interface GigabitEthernet2
# - no ip address 192.168.0.1 255.255.255.0
# after:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - name: GigabitEthernet2
# - name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# After state:
# -------------
#
# router-ios#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
# Using deleted without config passed, only interface's configuration will be negated
# Before state:
# -------------
# router-ios#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.2 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# ipv6 address FD5D:12C9:2201:1::1/64
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
- name: "Delete L3 config of all interfaces"
cisco.ios.ios_l3_interfaces:
state: deleted
# Task Output
# -----------
#
# before:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.2/24
# name: GigabitEthernet2
# - ipv6:
# - address: FD5D:12C9:2201:1::1/64
# name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# commands:
# - interface GigabitEthernet1
# - no ip address dhcp
# - interface GigabitEthernet2
# - no ip address 192.168.0.2 255.255.255.0
# - interface GigabitEthernet3
# - no ipv6 address fd5d:12c9:2201:1::1/64
# after:
# - name: GigabitEthernet1
# - name: GigabitEthernet2
# - name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# After state:
# -------------
#
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# negotiation auto
# interface GigabitEthernet2
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# no ip address
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
# Using gathered
# Before state:
# -------------
#
# Router#show running-config | section ^interface
# interface Loopback999
# no ip address
# shutdown
# interface GigabitEthernet1
# description Management interface do not change
# ip address dhcp
# negotiation auto
# interface GigabitEthernet2
# ip address 192.168.0.3 255.255.255.0
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3
# description Configured and Overridden by Ansible Network
# ip address dhcp client-id GigabitEthernet2 hostname test.com
# shutdown
# speed 1000
# no negotiation auto
# interface GigabitEthernet3.100
# interface GigabitEthernet4
# no ip address
# shutdown
# negotiation auto
- name: Gather facts for l3 interfaces
cisco.ios.ios_l3_interfaces:
state: gathered
# Task Output
# -----------
#
# gathered:
# - ipv4:
# - dhcp:
# enable: true
# name: GigabitEthernet1
# - ipv4:
# - address: 192.168.0.3/24
# name: GigabitEthernet2
# - ipv4:
# - dhcp:
# client_id: GigabitEthernet2
# enable: true
# hostname: test.com
# name: GigabitEthernet3
# - name: GigabitEthernet3.100
# - name: GigabitEthernet4
# - name: Loopback999
# Using rendered
- name: Render the commands for provided configuration
cisco.ios.ios_l3_interfaces:
config:
- name: GigabitEthernet1
ipv4:
- dhcp:
client_id: GigabitEthernet0/0
hostname: test.com
- name: GigabitEthernet2
ipv4:
- address: 198.51.100.1/24
secondary: true
- address: 198.51.100.2/24
ipv6:
- address: 2001:db8:0:3::/64
state: rendered
# Task Output
# -----------
#
# rendered:
# - interface GigabitEthernet1
# - ip address dhcp client-id GigabitEthernet0/0 hostname test.com
# - interface GigabitEthernet2
# - 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
# ip address 198.51.100.2 255.255.255.0 secondary
# ipv6 address 2001:db8:0:3::/64
- name: Parse the provided configuration
cisco.ios.ios_l3_interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task Output
# -----------
#
# parsed:
# - ipv4:
# - dhcp:
# client_id: GigabitEthernet0/0
# hostname: test.com
# name: GigabitEthernet0/1
# - ipv4:
# - address: 198.51.100.1/24
# secondary: true
# - address: 198.51.100.2/24
# ipv6:
# - address: 2001:db8:0:3::/64
# name: GigabitEthernet0/2
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
after словарь | Результирующая конфигурация после выполнения модуля. Возвращается: при изменении Пример: |
before словарь | Конфигурация до выполнения модуля. Возвращается: когда состояние — merged, replaced, overridden, deleted или purged Пример: |
commands список / элементы=строка | Набор команд, отправленных на удалённое устройство. Возвращается: когда состояние — merged, replaced, overridden, deleted или purged Пример: |
gathered список / элементы=строка | Данные о сетевом ресурсе, собранные с удалённого устройства в виде структурированных данных. Возвращается: когда состояние — gathered Пример: |
parsed список / элементы=строка | Нативная конфигурация устройства из параметра running_config, разобранная в структурированные данные в соответствии со спецификацией аргументов модуля. Возвращается: когда состояние — parsed Пример: |
rendered список / элементы=строка | Предоставленная в задаче конфигурация, отрендеренная в формате устройства (офлайн). Возвращается: когда состояние — rendered Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/cisco/ios/ios_l3_interfaces_module.html