Spec-Zone.ru › Ansible

Модуль junipernetworks.junos.junos_prefix_lists – Управление атрибутами списков префиксов интерфейсов на устройствах Junos.

Примечание

Этот модуль входит в коллекцию junipernetworks.junos (версия 8.0.0).

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

Для её установки используйте: ansible-galaxy collection install junipernetworks.junos. Для использования этого модуля требуются дополнительные компоненты. Подробности см. в разделе Требования.

Для использования в playbook укажите: junipernetworks.junos.junos_prefix_lists.

Добавлена в junipernetworks.junos 2.1.0

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры

Описание

  • Управление атрибутами списков префиксов интерфейсов на сетевых устройствах Junos.

Псевдонимы: prefix_lists

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется данный модуль.

  • ncclient (>=v0.6.4)
  • xmltodict (>=0.12.0)

Параметры

Параметр

Комментарии

config

список / элементы=словарь

Предоставленный словарь семейства адресов BGP.

address_prefixes

список / элементы=строка

Указать префиксы адресов.

dynamic_db

логическое

Включить существование объекта в динамической базе данных.

Выбор:

  • false
  • true

name

строка / обязательно

Указать имя списка префиксов.

running_config

строка

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

Значение этого параметра должно быть результатом выполнения команды show policy-options на устройстве Junos.

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

state

строка

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

Выбор:

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

Примечания

Примечание

  • Для работы этого модуля необходимо включить системную службу netconf на управляемом устройстве.
  • Этот модуль работает с подключением netconf.
  • См. раздел «Возможности платформы JunOS».
  • Тестировано на JunOS v18.4R1

Примеры

# Using merged
#
# Before state
# ------------
#
# vagrant@vsrx# show policy-options
#
# [edit]

- name: Merge Junos prefix  lists
  junipernetworks.junos.junos_prefix_lists:
    config:
      - name: Internal
        address_prefixes:
          - 172.16.1.32
          - 172.16.3.32
      - name: Test1
        dynamic_db: true
      - name: Test2
        address_prefixes:
          - 172.16.2.32
          - 172.16.7.32
          - 172.16.9.32
    state: merged

# Task Output
# -------------
#
# before: []
# commands:
# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>"
# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>"
# - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>"
# - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>"
# - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>"
# - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>"
# - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>"
# - "</nc:prefix-list></nc:policy-options>"
# after:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.2.32/32
#   - 172.16.7.32/32
#   - 172.16.9.32/32
#   name: Test2


# After state
# -----------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.2.32/32;
#     172.16.7.32/32;
#     172.16.9.32/32;
# }


# Using gathered
#
# Before state
# ------------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.2.32/32;
#     172.16.7.32/32;
#     172.16.9.32/32;
# }

- name: Gather Junos prefix-lists
  junipernetworks.junos.junos_prefix_lists:
    state: gathered


# Task Output
# -------------
#
# gathered:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.2.32/32
#   - 172.16.7.32/32
#   - 172.16.9.32/32
#   name: Test2


# Using replaced


# Before state
# ------------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.2.32/32;
#     172.16.7.32/32;
#     172.16.9.32/32;
# }


- name: Replace existing Junos prefix-lists configuration with provided config
  junipernetworks.junos.junos_prefix_lists:
    config:
      - name: Test2
        address_prefixes:
          - 172.16.4.32
          - 172.16.8.32
          - 172.16.9.32"
    state: replaced


# Task Output
# -------------
#
# before:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.2.32/32
#   - 172.16.7.32/32
#   - 172.16.9.32/32
#   name: Test2
# commands:
# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# - <nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list>
# - "<nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item><nc:name>172.16.4.32</nc:name>"
# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.8.32</nc:name>"
# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.9.32</nc:name>"
# - "</nc:prefix-list-item></nc:prefix-list></nc:policy-options>"
# after:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.4.32/32
#   - 172.16.8.32/32
#   - 172.16.9.32/32
#   name: Test2

# After state
# -----------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.4.32/32;
#     172.16.8.32/32;
#     172.16.9.32/32;
# }


# Using overridden

# Before state
# ------------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.4.32/32;
#     172.16.8.32/32;
#     172.16.9.32/32;
# }


- name: Override Junos prefix-lists configuration with provided configuration
  junipernetworks.junos.junos_prefix_lists:
    config:
      - name: Test2
        address_prefixes:
          - 172.16.4.32/28
          - 172.16.8.32/28
          - 172.16.9.32/28
    state: overridden


# Task Output
# -------------
#
# before:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.4.32/32
#   - 172.16.8.32/32
#   - 172.16.9.32/32
#   name: Test2
# commands:
# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# - <nc:prefix-list delete="delete"><nc:name>Internal</nc:name>
# - </nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test1</nc:name>
# - </nc:prefix-list><nc:prefix-list delete="delete"><nc:name>Test2</nc:name>
# - "</nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name><nc:prefix-list-item>"
# - "<nc:name>172.16.4.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>"
# - "<nc:name>172.16.8.32/28</nc:name></nc:prefix-list-item><nc:prefix-list-item>"
# - "<nc:name>172.16.9.32/28</nc:name></nc:prefix-list-item></nc:prefix-list></nc:policy-options>"
# after:
# - address_prefixes:
#   - 172.16.4.32/28
#   - 172.16.8.32/28
#   - 172.16.9.32/28
#   name: Test2

# After state
# -----------
#
# vagrant@vsrx# show policy-options
# prefix-list Test2 {
#     172.16.4.32/28;
#     172.16.8.32/28;
#     172.16.9.32/28;
# }


# Using deleted


# Before state
# ------------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.2.32/32;
#     172.16.7.32/32;
#     172.16.9.32/32;
# }


- name: Delete provided prefix-lists
  junipernetworks.junos.junos_prefix_lists:
    config:
      - name: "Test1"
      - name: "Test2"
    state: deleted


# Task Output
# -------------
#
# before:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.2.32/32
#   - 172.16.7.32/32
#   - 172.16.9.32/32
#   name: Test2
# commands:
# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# - <nc:prefix-list delete="delete"><nc:name>Test1</nc:name></nc:prefix-list>
# - <nc:prefix-list delete="delete"><nc:name>Test2</nc:name></nc:prefix-list></nc:policy-options>
# after:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal


# After state
# -----------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
#


# Using deleted without specifying config


# Before state
# ------------
#
# vagrant@vsrx# show policy-options
# prefix-list Internal {
#     172.16.1.32/32;
#     172.16.3.32/32;
# }
# prefix-list Test1 {
#     dynamic-db;
# }
# prefix-list Test2 {
#     172.16.2.32/32;
#     172.16.7.32/32;
#     172.16.9.32/32;
# }


- name: Delete complete Junos prefix-lists configuration
  junipernetworks.junos.junos_prefix_lists:
    state: deleted


# Task Output
# -------------
#
# before:
# - address_prefixes:
#   - 172.16.1.32/32
#   - 172.16.3.32/32
#   name: Internal
# - dynamic_db: true
#   name: Test1
# - address_prefixes:
#   - 172.16.2.32/32
#   - 172.16.7.32/32
#   - 172.16.9.32/32
#   name: Test2
# commands:
# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# - <nc:prefix-list delete="delete"/></nc:policy-options>
# after: []


# After state
# -----------
#
# vagrant@vsrx# show policy-options
#
# [edit]


# Using parsed


# parsed.cfg
# ------------
# <?xml version="1.0" encoding="UTF-8"?>
# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f">
#     <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC">
#         <version>18.4R1-S2.4</version>
#         <policy-options>
#         <prefix-list>
#             <name>64510</name>
#         </prefix-list>
#         <prefix-list>
#             <name>64500</name>
#             <dynamic-db/>
#             <prefix-list-item>
#                 <name>172.16.1.16/28</name>
#             </prefix-list-item>
#             <prefix-list-item>
#                 <name>172.16.1.32/28</name>
#             </prefix-list-item>
#         </prefix-list>
#     </policy-options>
#     </configuration>
# </rpc-reply>


- name: Parse running prefix-lists configuration
  junipernetworks.junos.junos_prefix_lists:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed


# Task Output
# -------------
# parsed:
# - name: '64510'
# - address_prefixes:
#   - 172.16.1.16/28
#   - 172.16.1.32/28
#   dynamic_db: true
#   name: '64500'


# Using rendered


- name: Render the xml for provided  configuration
  junipernetworks.junos.junos_prefix_lists:
    config:
      - name: Internal
        address_prefixes:
          - 172.16.1.32
          - 172.16.3.32
      - name: Test1
        dynamic_db: true
      - name: Test2
        address_prefixes:
          - 172.16.2.32
          - 172.16.7.32
          - 172.16.9.32
    state: rendered


# Task Output
# -------------
# rendered:
# - <nc:policy-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# - "<nc:prefix-list><nc:name>Internal</nc:name><nc:prefix-list-item><nc:name>172.16.1.32</nc:name>"
# - "</nc:prefix-list-item><nc:prefix-list-item><nc:name>172.16.3.32</nc:name>"
# - "</nc:prefix-list-item></nc:prefix-list><nc:prefix-list><nc:name>Test1</nc:name>"
# - "<nc:dynamic-db/></nc:prefix-list><nc:prefix-list><nc:name>Test2</nc:name>"
# - "<nc:prefix-list-item><nc:name>172.16.2.32</nc:name></nc:prefix-list-item>"
# - "<nc:prefix-list-item><nc:name>172.16.7.32</nc:name></nc:prefix-list-item>"
# - "<nc:prefix-list-item><nc:name>172.16.9.32</nc:name></nc:prefix-list-item>"
# - "</nc:prefix-list></nc:policy-options>"

Авторы

  • Rohit Thakur (@rohitthakur2590)

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

  • Система отслеживания задач
  • Репозиторий (источники)

© 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/junipernetworks/junos/junos_prefix_lists_module.html

Spec-Zone.ru

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