junipernetworks.junos.junos_ospf_interfaces 模块 – OSPF 接口资源模块。

注意

此模块是 junipernetworks.junos 集合(版本 9.1.0)的一部分。

如果您使用的是 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install junipernetworks.junos。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:junipernetworks.junos.junos_ospf_interfaces

junipernetworks.junos 1.3.0 中的新功能

概要

  • 此模块管理运行 Juniper JUNOS 的设备上的接口的 OSPF(v2/v3) 配置。

要求

执行此模块的主机需要满足以下要求。

  • ncclient (>=v0.6.4)

  • xmltodict (>=0.12.0)

参数

参数

注释

config

list / elements=dictionary

接口的 OSPF 配置列表。

address_family

list / elements=dictionary

在地址族上下文中接口上的 OSPF 设置。

afi

string / 必需

接口上 OSPF 设置的地址族标识符 (AFI)。

选项

  • "ipv4"

  • "ipv6"

processes

dictionary

OSPF 进程的接口配置。

area

dictionary

指定区域 ID

area_id

string

指定区域 ID。

authentication

dictionary

指定身份验证类型

md5

list / elements=dictionary

指定基于 md5 的身份验证。

key_id

integer

指定 md5 密钥 ID

key_value

string

指定密钥值

start_time

string

指定密钥传输的开始时间

simple_password

string

指定身份验证的密码。

bandwidth_based_metrics

list / elements=dictionary

指定基于带宽的指标列表

bandwidth

string

应用指标的带宽。

选项

  • "1g"

  • "10g"

metric

integer

指定指标

dead_interval

integer

死亡间隔(秒)。

demand_circuit

boolean

接口用作按需电路。

选项

  • false

  • true

flood_reduction

boolean

启用泛洪减少。

选项

  • false

  • true

hello_interval

integer

Hello 间隔(秒)。

interface_type

string

指定接口类型

选项

  • "nbma"

  • "p2mp"

  • "p2p"

ipsec_sa

string

IPSec 安全关联名称

metric

integer

应用于接口的指标。

mtu

integer

最大 OSPF 数据包大小

no_advertise_adjacency_segment

boolean

不为该接口通告邻接段。

选项

  • false

  • true

no_eligible_backup

boolean

不符合从受保护接口备份流量的条件。

选项

  • false

  • true

no_eligible_remote_backup

boolean

不符合从受保护接口备份远程 LFA 流量的条件。

选项

  • false

  • true

no_interface_state_traps

boolean

不发送接口状态更改陷阱。

选项

  • false

  • true

no_neighbor_down_notification

boolean

不通知其他协议邻居断开事件。

选项

  • false

  • true

boolean

保护接口免受链路和节点故障的影响。

选项

  • false

  • true

passive

boolean

不运行 OSPF,但通告它。

选项

  • false

  • true

poll_interval

integer

轮询间隔(秒)。

priority

integer

接口的优先级。

retransmit_interval

integer

重传间隔(秒)。

secondary

boolean

将接口视为辅助接口

选项

  • false

  • true

te_metric

integer

应用于接口的流量工程指标。

transit_delay

integer

传输延迟(秒)。

name

string / 必需

接口的名称/标识符。

router_id

string

OSPF 路由器 ID。

running_config

string

此选项仅在状态为“parsed”时使用。

此选项的值应是通过执行命令 show protocols ospf 从 Junos 设备收到的输出。

状态“parsed”从 running_config 选项读取配置,并根据资源模块的 argspec 将其转换为 Ansible 结构化数据,然后该值将返回到结果中的 “parsed” 键中

state

string

配置应保留的状态。

选项

  • "merged" ← (默认)

  • "replaced"

  • "overridden"

  • "deleted"

  • "parsed"

  • "gathered"

  • "rendered"

说明

注意

  • 此模块要求在被管理的设备上启用 netconf 系统服务。

  • 此模块使用连接 netconf。请参阅Junos OS 平台选项

  • 已针对 JunOS v18.4R1 进行测试

示例

# Using merged
#
# Before state
# ------------
#
# admin# show protocols ospf

- name: Merge Junos OSPF interfaces config
  junipernetworks.junos.junos_ospf_interfaces:
    config:
      - name: 'ge-0/0/2.0'
        address_family:
          - afi: 'ipv4'
            processes:
              area:
                area_id: '0.0.0.2'
              priority: 3
              metric: 5
    state: merged

# After state
# -----------
#
# admin# show protocols ospf
# area 0.0.0.2 {
#     interface ge-0/0/2.0 {
#         metric 5;
#         priority 3;
#     }
# }

# Using replaced
#
# Before state
# ------------
#
# admin# show protocols ospf
# area 0.0.0.2 {
#     interface ge-0/0/2.0 {
#         metric 5;
#         priority 3;
#     }
# }
- name: Replace Junos OSPF interfaces config
  junipernetworks.junos.junos_ospf_interfaces:
    config:
      - name: 'ge-0/0/2.0'
        address_family:
          - afi: 'ipv4'
            processes:
              area:
                area_id: '0.0.0.1'
              priority: 6
              metric: 6
    state: replaced

# After state
# -----------
#
# admin# show protocols ospf
# area 0.0.0.1 {
#     interface ge-0/0/2.0 {
#         metric 6;
#         priority 6;
#     }
# }

# Using overridden
#
# Before state
# ------------
#
# admin# show protocols ospf
# area 0.0.0.3 {
#     interface ge-0/0/3.0 {
#         metric 5;
#         priority 3;
#     }
# }
# area 0.0.0.2 {
#     interface ge-0/0/2.0 {
#         metric 5;
#         priority 3;
#     }
# }

- name: Override Junos OSPF interfaces config
  junipernetworks.junos.junos_ospf_interfaces:
  config:
    - name: 'ge-0/0/1.0'
      address_family:
        - afi: 'ipv4'
          processes:
            area:
              area_id: '0.0.0.1'
            priority: 3
            metric: 5
  state: overridden

# After state
# -----------
#
# admin# show protocols ospf
# area 0.0.0.1 {
#     interface ge-0/0/1.0 {
#         metric 5;
#         priority 3;
#     }
# }

#
# Using deleted
#
# Before state
# ------------
#
# admin# show protocols ospf
# area 0.0.0.1 {
#     interface ge-0/0/1.0 {
#         metric 5;
#         priority 3;
#     }
# }

- name: Delete Junos OSPF interfaces config
  junipernetworks.junos.junos_ospf_interfaces:
    config:
      - name: 'ge-0/0/1.0'
    state: deleted

# After state
# -----------
#
# admin# show protocols ospf
# Using gathered
#
# Before state
# ------------
#
# admin# show protocols ospf
# area 0.0.0.3 {
#     interface ge-0/0/3.0 {
#         metric 5;
#         priority 3;
#     }
# }
# area 0.0.0.2 {
#     interface ge-0/0/2.0 {
#         metric 5;
#         priority 3;
#     }
# }

- name: Gather Junos OSPF interfaces config
  junipernetworks.junos.junos_ospf_interfaces:
    config:
    state: gathered
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#    "gathered": [
#         {
#             "address_family": [
#                 {
#                     "afi": "ipv4",
#                     "processes": {
#                         "area": {
#                             "area_id": "0.0.0.3"
#                         },
#                         "metric": 5,
#                         "priority": 3
#                     }
#                 }
#             ],
#             "name": "ge-0/0/3.0",
#         },
#         {
#             "address_family": [
#                 {
#                     "afi": "ipv4",
#                     "processes": {
#                         "area": {
#                             "area_id": "0.0.0.2"
#                         },
#                         "metric": 5,
#                         "priority": 3
#                     }
#                 }
#             ],
#             "name": "ge-0/0/2.0",
#         }
#     ]
#
# Using rendered
#
#
- name: Render the commands for provided  configuration
  junipernetworks.junos.junos_ospf_interfaces:
    config:
      - name: 'ge-0/0/2.0'
        address_family:
          - afi: 'ipv4'
            processes:
              area:
                area_id: '0.0.0.2'
              priority: 3
              metric: 5
    state: rendered

#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "rendered": "
# <nc:protocols
#     xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#     <nc:ospf>
#         <nc:area>
#             <nc:name>0.0.0.2</nc:name>
#             <nc:interface>
#                 <nc:name>ge-0/0/2.0</nc:name>
#                 <nc:priority>3</nc:priority>
#                 <nc:metric>5</nc:metric>
#             </nc:interface>
#         </nc:area>
#     </nc:ospf>
# </nc:protocols>"
#
# 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">
#         <protocols>
#             <ospf>
#                 <area>
#                     <name>0.0.0.2</name>
#                     <stub>
#                         <default-metric>200</default-metric>
#                     </stub>
#                     <interface>
#                         <name>ge-0/0/2.0</name>
#                         <metric>5</metric>
#                         <priority>3</priority>
#                     </interface>
#                 </area>
#             </ospf>
#         </protocols>
#         <routing-options>
#             <router-id>10.200.16.75</router-id>
#         </routing-options>
#     </configuration>
# </rpc-reply>


- name: Parsed the device configuration to get output commands
  junipernetworks.junos.junos_ospf_interfaces:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "parsed": [
#         {
#             "address_family": [
#                 {
#                     "afi": "ipv4",
#                     "processes": {
#                         "area": {
#                             "area_id": "0.0.0.2"
#                         },
#                         "metric": 5,
#                         "priority": 3
#                     }
#                 }
#             ],
#             "name": "ge-0/0/2.0",
#         }
#     ]
#

返回值

常见返回值记录在此处,以下是此模块独有的字段

描述

after

dictionary

生成的配置模型调用。

返回: 当发生更改时

示例: "返回的配置将始终与上述参数的格式相同。\n"

before

dictionary

模型调用之前的配置。

返回: 始终

示例: "返回的配置将始终与上述参数的格式相同。\n"

commands

list / elements=string

推送到远程设备的命令集。

返回: 始终

示例: ["<nc:protocols xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> <nc:ospf> <nc:area> <nc:name>0.0.0.3</nc:name> <nc:interface> <nc:name>ge-0/0/3.0</nc:name> <nc:priority>3</nc:priority> <nc:metric>5</nc:metric> </nc:interface> </nc:area> <nc:area> <nc:name>0.0.0.2</nc:name> <nc:interface> <nc:name>ge-0/0/2.0</nc:name> <nc:priority>3</nc:priority> <nc:metric>5</nc:metric> </nc:interface> </nc:area> </nc:ospf> </nc:protocols>\", \" <nc:routing-options xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"> <nc:router-id>10.200.16.75</nc:router-id> <nc:router-id>10.200.16.75</nc:router-id> </nc:routing-options>", "xml 2", "xml 3"]

作者

  • Rohit Thakur (@rohitthakur2590)