Spec-Zone.ru › Ansible

Модуль cisco.ios.ios_bfd_interfaces – модуль ресурсов для настройки BFD в интерфейсах.

Примечание

Этот модуль входит в коллекцию cisco.ios (версия 11.4.2).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install cisco.ios.

Чтобы использовать её в плейбуке, укажите: cisco.ios.ios_bfd_interfaces.

Добавлено в cisco.ios 11.3.0

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль управляет конфигурацией BFD в интерфейсах сетевых устройств Cisco IOS.

Параметры

Параметр

Комментарии

config

list / elements=dictionary

Список параметров интерфейса для настройки BFD.

bfd

boolean

Включить или отключить BFD для интерфейса.

Значение по умолчанию для устройства может повлиять на идемпотентность.

Возможные значения:

  • false
  • true

echo

boolean

Использовать дополнительный механизм echo для обнаружения BFD.

Возможные значения:

  • false
  • true

interval

dictionary

Интервал отправки пакетов BFD

input

integer

Интервал между отправляемыми управляющими пакетами BFD: 50–9999 миллисекунд

min_rx

integer

Минимально допустимый интервал приёма: 50–9999 миллисекунд

multiplier

integer

Множитель обнаружения: 3–50

jitter

boolean

Включить джиттер интервала отправки BFD.

Возможные значения:

  • false
  • true

local_address

string

Локальный адрес BFD.

name

string / обязательный

Полное имя интерфейса, например GigabitEthernet0/2, loopback999.

Короткие имена интерфейсов, например Gi0/2, Lo999, могут повлиять на идемпотентность.

template

string

Шаблон BFD (может повлиять на другие параметры конфигурации BFD),

Ansible не гарантирует корректное выполнение операций с состоянием.

running_config

string

Этот параметр используется только с состоянием parsed.

Значением этого параметра должен быть вывод, полученный с устройства IOS XE при выполнении команды show running-config | section ^interface.

Состояние parsed считывает конфигурацию из параметра running_config и преобразует её в структурированные данные Ansible согласно argspec модуля ресурсов. Затем значение возвращается в ключе parsed в результате.

state

string

Состояние, в котором следует оставить конфигурацию

Состояния rendered, gathered и parsed не вносят изменений на устройстве.

Состояние rendered преобразует конфигурацию из параметра config в специфичные для платформы команды CLI, которые возвращаются в ключе rendered в результате. Для состояния rendered активное подключение к удалённому узлу не требуется.

Состояние gathered получает текущую конфигурацию устройства и преобразует её в структурированные данные в формате, соответствующем argspec модуля ресурсов. Значение возвращается в ключе gathered в результате.

Состояние parsed считывает конфигурацию из параметра running_config и преобразует её в формат JSON согласно параметрам модуля ресурсов. Значение возвращается в ключе parsed в результате. Значение параметра running_config должно иметь тот же формат, что и вывод команды show running-config | section interface, выполненной на устройстве. Для состояния parsed активное подключение к удалённому узлу не требуется.

Возможные значения:

  • "merged" ← (по умолчанию)
  • "replaced"
  • "overridden"
  • "deleted"
  • "rendered"
  • "gathered"
  • "parsed"

Примечания

Примечание

  • Тестирование выполнено в CML на Cisco IOSXE версии 17.3.
  • Этот модуль работает с подключением network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html
  • В примерах модуля используется плагин обратного вызова (stdout_callback = yaml) для вывода задач в формате YAML.

Примеры

# Using state: merged

# Before state:
# -------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  ip address dhcp
#  negotiation auto
# interface GigabitEthernet2
#  no ip address
#  shutdown
#  negotiation auto
# interface GigabitEthernet3
#  no ip address
#  shutdown
#  negotiation auto
# interface GigabitEthernet4
#  no ip address
#  shutdown
#  negotiation auto


- name: Apply the provided BFD configuration to interfaces
  cisco.ios.ios_bfd_interfaces:
    config:
      - name: GigabitEthernet1
        bfd: true
        jitter: false
        interval:
          input: 100
          min_rx: 100
          multiplier: 3
        local_address: 10.0.1.2
        template: ANSIBLE
      - name: GigabitEthernet2
        bfd: true
        jitter: true
        interval:
          input: 100
          min_rx: 100
          multiplier: 3
      - name: GigabitEthernet4
        template: ANSIBLE_Tempalte
    state: merged

# Commands Fired:
# ---------------

# after:
# -   interval:
#         input: 100
#         min_rx: 100
#         multiplier: 3
#     jitter: false
#     local_address: 10.0.1.2
#     name: GigabitEthernet1
# -   interval:
#         input: 100
#         min_rx: 100
#         multiplier: 3
#     name: GigabitEthernet2
# -   name: GigabitEthernet3
# -   name: GigabitEthernet4
#     template: ANSIBLE_Tempalte
# before:
# -   name: GigabitEthernet1
# -   name: GigabitEthernet2
# -   name: GigabitEthernet3
# -   name: GigabitEthernet4
# changed: true
# commands:
# - interface GigabitEthernet1
# - bfd enable
# - bfd local-address 10.0.1.2
# - bfd interval 100 min_rx 100 multiplier 3
# - bfd template ANSIBLE
# - no bfd jitter
# - interface GigabitEthernet2
# - bfd enable
# - bfd jitter
# - bfd interval 100 min_rx 100 multiplier 3
# - interface GigabitEthernet4
# - bfd template ANSIBLE_Tempalte

# After state:
# ------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  ip address dhcp
#  negotiation auto
#  bfd local-address 10.0.1.2
#  bfd interval 100 min_rx 100 multiplier 3
#  no bfd jitter
# interface GigabitEthernet2
#  no ip address
#  shutdown
#  negotiation auto
#  bfd interval 100 min_rx 100 multiplier 3
# interface GigabitEthernet3
#  no ip address
#  shutdown
#  negotiation auto
# interface GigabitEthernet4
#  no ip address
#  shutdown
#  negotiation auto
#  bfd template ANSIBLE_Tempalte

# Using state: replaced

# Before state:
# -------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  ip address dhcp
#  negotiation auto
#  bfd local-address 10.0.1.2
#  bfd interval 100 min_rx 100 multiplier 3
#  no bfd jitter
# interface GigabitEthernet2
#  no ip address
#  shutdown
#  negotiation auto
#  bfd interval 100 min_rx 100 multiplier 3
# interface GigabitEthernet3
#  no ip address
#  shutdown
#  negotiation auto
# interface GigabitEthernet4
#  no ip address
#  shutdown
#  negotiation auto
#  bfd template ANSIBLE_Tempalte


- name: Replace BFD configuration for specified interfaces
  cisco.ios.ios_bfd_interfaces:
    config:
      - name: GigabitEthernet1
        bfd: true
        echo: true
        jitter: true
        interval:
          input: 100
          min_rx: 100
          multiplier: 3
        local_address: 10.0.1.2
        template: ANSIBLE
      - name: GigabitEthernet2
        bfd: true
        echo: true
        jitter: true
        interval:
          input: 100
          min_rx: 100
          multiplier: 3
      - name: GigabitEthernet6
        template: ANSIBLE_3Tempalte
    state: replaced

# Commands Fired:
# ---------------

# "commands": [
#       "interface GigabitEthernet1",
#       "bfd enable",
#       "bfd echo",
#       "bfd jitter",
#       "bfd local-address 10.0.1.2",
#       "bfd interval 100 min_rx 100 multiplier 3",
#       "bfd template ANSIBLE",
#       "interface GigabitEthernet2",
#       "bfd enable",
#       "bfd echo",
#       "bfd jitter",
#       "bfd interval 100 min_rx 100 multiplier 3",
#       "no bfd template OLD_TEMPLATE",
#       "interface GigabitEthernet6",
#       "bfd template ANSIBLE_3Tempalte"
#     ]

# After state:
# ------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd enable
#  bfd echo
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 100 min_rx 100 multiplier 3
#  bfd template ANSIBLE
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd enable
#  bfd echo
#  bfd jitter
#  bfd interval 100 min_rx 100 multiplier 3
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3
# interface GigabitEthernet6
#  bfd template ANSIBLE_3Tempalte

# Using state: overridden

# Before state:
# -------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd local-address 10.0.0.1
#  bfd interval 57 min_rx 66 multiplier 45
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd template OLD_TEMPLATE
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3

- name: Override all BFD configuration with provided configuration
  cisco.ios.ios_bfd_interfaces:
    config:
      - name: GigabitEthernet1
        bfd: true
        echo: true
        jitter: true
        interval:
          input: 100
          min_rx: 100
          multiplier: 3
        local_address: 10.0.1.2
        template: ANSIBLE
      - name: GigabitEthernet2
        bfd: true
        echo: true
        jitter: true
        interval:
          input: 100
          min_rx: 100
          multiplier: 3
      - name: GigabitEthernet6
        template: ANSIBLE_3Tempalte
    state: overridden

# Commands Fired:
# ---------------

# "commands": [
#       "interface GigabitEthernet3",
#       "no bfd jitter",
#       "no bfd local-address 10.0.1.2",
#       "no bfd interval 50 min_rx 50 multiplier 3",
#       "interface GigabitEthernet1",
#       "bfd enable",
#       "bfd echo",
#       "bfd jitter",
#       "bfd local-address 10.0.1.2",
#       "bfd interval 100 min_rx 100 multiplier 3",
#       "bfd template ANSIBLE",
#       "interface GigabitEthernet2",
#       "bfd enable",
#       "bfd echo",
#       "bfd jitter",
#       "bfd interval 100 min_rx 100 multiplier 3",
#       "no bfd template OLD_TEMPLATE",
#       "interface GigabitEthernet6",
#       "bfd template ANSIBLE_3Tempalte"
#     ]

# After state:
# ------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd enable
#  bfd echo
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 100 min_rx 100 multiplier 3
#  bfd template ANSIBLE
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd enable
#  bfd echo
#  bfd jitter
#  bfd interval 100 min_rx 100 multiplier 3
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
# interface GigabitEthernet6
#  bfd template ANSIBLE_3Tempalte

# Using state: deleted

# Before state:
# -------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd local-address 10.0.0.1
#  bfd interval 57 min_rx 66 multiplier 45
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd template OLD_TEMPLATE
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3

- name: Delete BFD configuration for specified interfaces
  cisco.ios.ios_bfd_interfaces:
    config:
      - name: GigabitEthernet1
      - name: GigabitEthernet2
    state: deleted

# Commands Fired:
# ---------------

# "commands": [
#       "interface GigabitEthernet1",
#       "no bfd local-address 10.0.0.1",
#       "no bfd interval 57 min_rx 66 multiplier 45",
#       "interface GigabitEthernet2",
#       "no bfd template OLD_TEMPLATE"
#     ]

# After state:
# ------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3

# Using state: gathered

# Before state:
# -------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd local-address 10.0.0.1
#  bfd interval 57 min_rx 66 multiplier 45
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd template OLD_TEMPLATE
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3

- name: Gather listed BFD interfaces config
  cisco.ios.ios_bfd_interfaces:
    state: gathered

# Module Execution Result:
# ------------------------

# "gathered": [
#     {
#         "name": "GigabitEthernet1",
#         "local_address": "10.0.0.1",
#         "interval": {
#             "input": 57,
#             "min_rx": 66,
#             "multiplier": 45
#         }
#     },
#     {
#         "name": "GigabitEthernet2",
#         "template": "OLD_TEMPLATE"
#     },
#     {
#         "name": "GigabitEthernet3",
#         "jitter": true,
#         "local_address": "10.0.1.2",
#         "interval": {
#             "input": 50,
#             "min_rx": 50,
#             "multiplier": 3
#         }
#     }
# ]

# After state:
# -------------

# router-ios#show running-config | section ^interface
# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd local-address 10.0.0.1
#  bfd interval 57 min_rx 66 multiplier 45
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd template OLD_TEMPLATE
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3

# Using state: rendered

- name: Render the commands for provided configuration
  cisco.ios.ios_bfd_interfaces:
    config:
      - name: GigabitEthernet1
        local_address: 10.0.0.1
        interval:
          input: 57
          min_rx: 66
          multiplier: 45
      - name: GigabitEthernet2
        template: OLD_TEMPLATE
      - name: GigabitEthernet3
        jitter: true
        local_address: 10.0.1.2
        interval:
          input: 50
          min_rx: 50
          multiplier: 3
    state: rendered

# Module Execution Result:
# ------------------------

# "rendered": [
#     "interface GigabitEthernet1",
#     "bfd local-address 10.0.0.1",
#     "bfd interval 57 min_rx 66 multiplier 45",
#     "interface GigabitEthernet2",
#     "bfd template OLD_TEMPLATE",
#     "interface GigabitEthernet3",
#     "bfd jitter",
#     "bfd local-address 10.0.1.2",
#     "bfd interval 50 min_rx 50 multiplier 3"
# ]

# Using state: parsed

# File: parsed.cfg
# ----------------

# interface GigabitEthernet1
#  description Ansible UT interface 1
#  no shutdown
#  bfd local-address 10.0.0.1
#  bfd interval 57 min_rx 66 multiplier 45
# interface GigabitEthernet2
#  description Ansible UT interface 2
#  ip address dhcp
#  bfd template OLD_TEMPLATE
# interface GigabitEthernet3
#  description Ansible UT interface 3
#  no ip address
#  shutdown
#  no bfd jitter
#  bfd local-address 10.0.1.2
#  bfd interval 50 min_rx 50 multiplier 3

- name: Parse the provided configuration with the existing running configuration
  cisco.ios.ios_bfd_interfaces:
    running_config: "{{ lookup('file', 'parsed.cfg') }}"
    state: parsed

# Module Execution Result:
# ------------------------

# "parsed": [
#     {
#         "name": "GigabitEthernet1",
#         "local_address": "10.0.0.1",
#         "interval": {
#             "input": 57,
#             "min_rx": 66,
#             "multiplier": 45
#         }
#     },
#     {
#         "name": "GigabitEthernet2",
#         "template": "OLD_TEMPLATE"
#     },
#     {
#         "name": "GigabitEthernet3",
#         "jitter": false,
#         "local_address": "10.0.1.2",
#         "interval": {
#             "input": 50,
#             "min_rx": 50,
#             "multiplier": 3
#         }
#     }
# ]

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

after

list / elements=string

Итоговая конфигурация после выполнения модуля.

Возвращается: при наличии изменений

Пример: ["This output will always be in the same format as the module argspec.\n"]

before

list / elements=string

Конфигурация до выполнения модуля.

Возвращается: когда state равен merged, replaced, overridden или deleted

Пример: ["This output will always be in the same format as the module argspec.\n"]

commands

list / elements=string

Набор команд, отправленных на удалённое устройство.

Возвращается: когда state равен merged, replaced, overridden или deleted

Пример: ["interface GigabitEthernet0/2", "no bfd jitter", "bfd interval 100 min_rx 100 multiplier 3"]

gathered

list / elements=string

Факты о сетевом ресурсе, полученные с удалённого устройства в виде структурированных данных.

Возвращается: когда state равен gathered

Пример: ["This output will always be in the same format as the module argspec.\n"]

parsed

list / elements=string

Нативная конфигурация устройства, указанная в параметре running_config и разобранная в структурированные данные согласно argspec модуля.

Возвращается: когда state равен parsed

Пример: ["This output will always be in the same format as the module argspec.\n"]

rendered

list / elements=string

Конфигурация, указанная в задаче и преобразованная в нативный формат устройства (автономно).

Возвращается: когда state равен rendered

Пример: ["interface GigabitEthernet0/2", "bfd echo", "bfd jitter"]

Авторы

  • Sagar Paul (@KB-perByte)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/cisco/ios/ios_bfd_interfaces_module.html

Spec-Zone.ru

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