Spec-Zone.ru › Ansible 2.11

junipernetworks.junos.junos_l3_interfaces – Модуль ресурсов интерфейсов L3

Примечание

Этот плагин входит в состав коллекции junipernetworks.junos (версия 1.3.0).

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

Чтобы использовать его в книге задач, укажите: junipernetworks.junos.junos_l3_interfaces.

Новое в версии 1.0.0: модуля junipernetworks.junos

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

Обзор

  • Этот модуль обеспечивает декларативное управление интерфейсом уровня 3 на устройствах Juniper JUNOS.

Примечание

У данного модуля есть соответствующий плагин действий.

Требования

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

  • ncclient (>=v0.6.4)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
config
список / элементы=словарь
Словарь параметров интерфейса уровня 3
ipv4
список / элементы=словарь
IPv4-адреса, которые должны быть установлены для логического интерфейса уровня 3, указанного в параметре name. Формат адреса - <ipv4 адрес>/<маска>. Маска - число в диапазоне от 0 до 32, например, 192.0.2.1/24, или dhcp для запроса DHCP-адреса.
address
строка
IPv4-адрес, который должен быть установлен для конкретного интерфейса.
ipv6
список / элементы=словарь
IPv6-адреса, которые должны быть установлены для логического интерфейса уровня 3, указанного в параметре name. Формат адреса - <ipv6 адрес>/<маска>, маска - число в диапазоне от 0 до 128, например, 2001:db8:2201:1::1/64 или auto-config для использования SLAAC.
address
строка
IPv6-адрес, который должен быть установлен для конкретного интерфейса.
name
строка / обязательно
Полное имя интерфейса, например, ge-0/0/1.
unit
целое число
Значение по умолчанию:
0
Номер логического интерфейса. Значение unit должно быть целым числом.
running_config
строка
Этот параметр используется только со значением parsed.
Значение этого параметра должно быть результатом выполнения команды show interfaces на устройстве Junos.
Значение parsed считывает конфигурацию из параметра running_config и преобразует ее в структурированные данные Ansible в соответствии с argspec модуля ресурса, а затем возвращает значение в ключе parsed в результате.
state
строка
    Варианты:
  • merged ←
  • replaced
  • overridden
  • deleted
  • gathered
  • rendered
  • parsed
Состояние конфигурации после завершения работы модуля.

Примечания

Примечание

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

Примеры

# Using deleted

# Before state:
# -------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 10.200.16.10/24;
#         }
#     }
# }
# ge-0/0/2 {
#     description "non L3 interface";
#     unit 0 {
#         family ethernet-switching {
#             interface-mode access;
#             vlan {
#                 members 2;
#             }
#         }
#     }
# }

- name: Delete JUNOS L3 logical interface
  junipernetworks.junos.junos_l3_interfaces:
    config:
    - name: ge-0/0/1
    - name: ge-0/0/2
  state: deleted

# After state:
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "deleted L3 interface";
# }
# ge-0/0/2 {
#     description "non L3 interface";
#     unit 0 {
#         family ethernet-switching {
#             interface-mode access;
#             vlan {
#                 members 2;
#             }
#         }
#     }
# }
# Using merged
# Before state
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 10.200.16.10/24;
#         }
#     }
# }
# ge-0/0/2 {
#     description "non configured interface";
#     unit 0;
# }
- name: Merge provided configuration with device configuration (default operation is merge)
  junipernetworks.junos.junos_l3_interfaces:
    config:
    - name: ge-0/0/1
      ipv4:
      - address: 192.168.1.10/24
      ipv6:
      - address: 8d8d:8d01::1/64
    - name: ge-0/0/2
      ipv4:
      - address: dhcp
    state: merged

# After state:
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 10.200.16.10/24;
#             address 192.168.1.10/24;
#         }
#         family inet6 {
#             address 8d8d:8d01::1/64;
#         }
#     }
# }
# ge-0/0/2 {
#     description "L3 interface with dhcp";
#     unit 0 {
#         family inet {
#             dhcp;
#         }
#     }
# }


# Using overridden

# Before state
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 10.200.16.10/24;
#         }
#     }
# }
# ge-0/0/2 {
#     description "L3 interface with dhcp";
#     unit 0 {
#         family inet {
#             dhcp;
#         }
#     }
# }
# ge-0/0/3 {
#     description "another L3 interface";
#     unit 0 {
#         family inet {
#             address 192.168.1.10/24;
#         }
#     }
# }

- name: Override provided configuration with device configuration
  junipernetworks.junos.junos_l3_interfaces:
    config:
    - name: ge-0/0/1
      ipv4:
      - address: 192.168.1.10/24
      ipv6:
      - address: 8d8d:8d01::1/64
    - name: ge-0/0/2
      ipv6:
      - address: 2001:db8:3000::/64
    state: overridden

# After state:
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 192.168.1.10/24;
#         }
#         family inet6 {
#             address 8d8d:8d01::1/64;
#         }
#     }
# }
# ge-0/0/2 {
#     description "L3 interface with ipv6";
#     unit 0 {
#         family inet6 {
#             address 2001:db8:3000::/64;
#         }
#     }
# }
# ge-0/0/3 {
#     description "overridden L3 interface";
#     unit 0;
# }


# Using replaced

# Before state
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 10.200.16.10/24;
#         }
#     }
# }
# ge-0/0/2 {
#     description "non configured interface";
#     unit 0;
# }
# ge-0/0/3 {
#     description "another L3 interface";
#     unit 0 {
#         family inet {
#             address 192.168.1.10/24;
#         }
#     }
# }

- name: Replace provided configuration with device configuration
  junipernetworks.junos.junos_l3_interfaces:
    config:
    - name: ge-0/0/1
      ipv4:
      - address: 192.168.1.10/24
      ipv6:
      - address: 8d8d:8d01::1/64
    - name: ge-0/0/2
      ipv4:
      - address: dhcp
    state: replaced

# After state:
# ------------
#
# admin# show interfaces
# ge-0/0/1 {
#     description "L3 interface";
#     unit 0 {
#         family inet {
#             address 192.168.1.10/24;
#         }
#         family inet6 {
#             address 8d8d:8d01::1/64;
#         }
#     }
# }
# ge-0/0/2 {
#     description "L3 interface with dhcp";
#     unit 0 {
#         family inet {
#             dhcp;
#         }
#     }
# }
# ge-0/0/3 {
#     description "another L3 interface";
#     unit 0 {
#         family inet {
#             address 192.168.1.10/24;
#         }
#     }
# }
# Using gathered
# Before state:
# ------------
#
# user@junos01# show interfaces
# ge-0/0/1 {
#     description "Configured by Ansible";
#     disable;
#     speed 100m;
#     mtu 1024;
#     hold-time up 2000 down 2200;
#     link-mode full-duplex;
#     unit 0 {
#         family ethernet-switching {
#             interface-mode access;
#             vlan {
#                 members vlan100;
#             }
#         }
#     }
# }
# ge-0/0/2 {
#     description "Configured by Ansible";
#     native-vlan-id 400;
#     speed 10m;
#     mtu 2048;
#     hold-time up 3000 down 3200;
#     unit 0 {
#         family ethernet-switching {
#             interface-mode trunk;
#             vlan {
#                 members [ vlan200 vlan300 ];
#             }
#         }
#     }
# }
# ge-1/0/0 {
#     unit 0 {
#         family inet {
#             address 192.168.100.1/24;
#             address 10.200.16.20/24;
#         }
#         family inet6;
#     }
# }
# ge-2/0/0 {
#     unit 0 {
#         family inet {
#             address 192.168.100.2/24;
#             address 10.200.16.21/24;
#         }
#         family inet6;
#     }
# }
# ge-3/0/0 {
#     unit 0 {
#         family inet {
#             address 192.168.100.3/24;
#             address 10.200.16.22/24;
#         }
#         family inet6;
#     }
# }
# em1 {
#     description TEST;
# }
# fxp0 {
#     description ANSIBLE;
#     speed 1g;
#     link-mode automatic;
#     unit 0 {
#         family inet {
#             address 10.8.38.38/24;
#         }
#     }
# }
- name: Gather junos layer3 interfaces as in given arguments
  junipernetworks.junos.junos_l3_interfaces:
    state: gathered
# Task Output (redacted)
# -----------------------
#
# "gathered": [
#             {
#                 "ipv4": [
#                     {
#                         "address": "192.168.100.1/24"
#                     },
#                     {
#                         "address": "10.200.16.20/24"
#                     }
#                 ],
#                 "name": "ge-1/0/0",
#                 "unit": "0"
#             },
#             {
#                 "ipv4": [
#                     {
#                         "address": "192.168.100.2/24"
#                     },
#                     {
#                         "address": "10.200.16.21/24"
#                     }
#                 ],
#                 "name": "ge-2/0/0",
#                 "unit": "0"
#             },
#             {
#                 "ipv4": [
#                     {
#                         "address": "192.168.100.3/24"
#                     },
#                     {
#                         "address": "10.200.16.22/24"
#                     }
#                 ],
#                 "name": "ge-3/0/0",
#                 "unit": "0"
#             },
#             {
#                 "ipv4": [
#                     {
#                         "address": "10.8.38.38/24"
#                     }
#                 ],
#                 "name": "fxp0",
#                 "unit": "0"
#             }
#         ]
# After state:
# ------------
#
# user@junos01# show interfaces
# ge-0/0/1 {
#     description "Configured by Ansible";
#     disable;
#     speed 100m;
#     mtu 1024;
#     hold-time up 2000 down 2200;
#     link-mode full-duplex;
#     unit 0 {
#         family ethernet-switching {
#             interface-mode access;
#             vlan {
#                 members vlan100;
#             }
#         }
#     }
# }
# ge-0/0/2 {
#     description "Configured by Ansible";
#     native-vlan-id 400;
#     speed 10m;
#     mtu 2048;
#     hold-time up 3000 down 3200;
#     unit 0 {
#         family ethernet-switching {
#             interface-mode trunk;
#             vlan {
#                 members [ vlan200 vlan300 ];
#             }
#         }
#     }
# }
# ge-1/0/0 {
#     unit 0 {
#         family inet {
#             address 192.168.100.1/24;
#             address 10.200.16.20/24;
#         }
#         family inet6;
#     }
# }
# ge-2/0/0 {
#     unit 0 {
#         family inet {
#             address 192.168.100.2/24;
#             address 10.200.16.21/24;
#         }
#         family inet6;
#     }
# }
# ge-3/0/0 {
#     unit 0 {
#         family inet {
#             address 192.168.100.3/24;
#             address 10.200.16.22/24;
#         }
#         family inet6;
#     }
# }
# em1 {
#     description TEST;
# }
# fxp0 {
#     description ANSIBLE;
#     speed 1g;
#     link-mode automatic;
#     unit 0 {
#         family inet {
#             address 10.8.38.38/24;
#         }
#     }
# }
# 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">
#         <interfaces>
#             <interface>
#                 <name>ge-1/0/0</name>
#                 <unit>
#                     <name>0</name>
#                     <family>
#                         <inet>
#                             <address>
#                                 <name>192.168.100.1/24</name>
#                             </address>
#                             <address>
#                                 <name>10.200.16.20/24</name>
#                             </address>
#                         </inet>
#                         <inet6></inet6>
#                     </family>
#                 </unit>
#             </interface>
#             <interface>
#                 <name>ge-2/0/0</name>
#                 <unit>
#                     <name>0</name>
#                     <family>
#                         <inet>
#                             <address>
#                                 <name>192.168.100.2/24</name>
#                             </address>
#                             <address>
#                                 <name>10.200.16.21/24</name>
#                             </address>
#                         </inet>
#                         <inet6></inet6>
#                     </family>
#                 </unit>
#             </interface>
#         </interfaces>
#     </configuration>
# </rpc-reply>
# - name: Convert interfaces config to argspec without connecting to the appliance
#   junipernetworks.junos.junos_l3_interfaces:
#     running_config: "{{ lookup('file', './parsed.cfg') }}"
#     state: parsed
# Task Output (redacted)
# -----------------------
# "parsed": [
#         {
#             "ipv4": [
#                 {
#                     "address": "192.168.100.1/24"
#                 },
#                 {
#                     "address": "10.200.16.20/24"
#                 }
#             ],
#             "name": "ge-1/0/0",
#             "unit": "0"
#         },
#         {
#             "ipv4": [
#                 {
#                     "address": "192.168.100.2/24"
#                 },
#                 {
#                     "address": "10.200.16.21/24"
#                 }
#             ],
#             "name": "ge-2/0/0",
#             "unit": "0"
#         }
#     ]
#
# Using rendered
- name: Render platform specific xml from task input using rendered state
  junipernetworks.junos.junos_l3_interfaces:
    config:
      - name: ge-1/0/0
        ipv4:
          - address: 192.168.100.1/24
          - address: 10.200.16.20/24
        unit: 0

      - name: ge-2/0/0
        ipv4:
          - address: 192.168.100.2/24
          - address: 10.200.16.21/24
        unit: 0
    state: rendered
# Task Output (redacted)
# -----------------------
# "rendered": "<nc:interfaces
#     xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#     <nc:interface>
#         <nc:name>ge-1/0/0</nc:name>
#         <nc:unit>
#             <nc:name>0</nc:name>
#             <nc:family>
#                 <nc:inet>
#                     <nc:address>
#                         <nc:name>192.168.100.1/24</nc:name>
#                     </nc:address>
#                     <nc:address>
#                         <nc:name>10.200.16.20/24</nc:name>
#                     </nc:address>
#                 </nc:inet>
#             </nc:family>
#         </nc:unit>
#     </nc:interface>
#     <nc:interface>
#         <nc:name>ge-2/0/0</nc:name>
#         <nc:unit>
#             <nc:name>0</nc:name>
#             <nc:family>
#                 <nc:inet>
#                     <nc:address>
#                         <nc:name>192.168.100.2/24</nc:name>
#                     </nc:address>
#                     <nc:address>
#                         <nc:name>10.200.16.21/24</nc:name>
#                     </nc:address>
#                 </nc:inet>
#             </nc:family>
#         </nc:unit>
#     </nc:interface>
# </nc:interfaces>"

Значения возврата

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

Ключ Возвращаемое значение Описание
after
список / элементы=строка
при изменении
Конфигурация в виде структурированных данных после завершения работы модуля.

Пример:
Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше.
before
список / элементы=строка
всегда
Конфигурация в виде структурированных данных до вызова модуля.

Пример:
Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше.
commands
список / элементы=строка
всегда
Набор команд, отправленных на удаленное устройство.

Пример:
['<nc:interfaces xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:interface> <nc:name>ge-1/0/0</nc:name> <nc:unit> <nc:name>0</nc:name> <nc:family> <nc:inet> <nc:address> <nc:name>192.168.100.1/24</nc:name> </nc:address> <nc:address> <nc:name>10.200.16.20/24</nc:name> </nc:address> </nc:inet> </nc:family> </nc:unit> </nc:interfaces>', 'xml 2', 'xml 3']


Авторы

  • Daniel Mellado (@dmellado)

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

Spec-Zone.ru

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