junipernetworks.junos.junos_hostname 模块 – 管理 Junos 设备上的主机名服务器配置。

注意

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

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

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

要在剧本中使用它,请指定:junipernetworks.junos.junos_hostname

junipernetworks.junos 2.9.0 中的新增功能

概要

  • 此模块管理运行 Junos 的设备上的主机名配置。

要求

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

  • ncclient (>=v0.6.4)

  • xmltodict (>=0.12.0)

参数

参数

注释

config

字典

系统主机名配置的字典。

hostname

字符串

指定主机名。

running_config

字符串

此选项仅与状态parsed一起使用。

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

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

state

字符串

配置应保留的状态。

状态 renderedgatheredparsed 不会对设备执行任何更改。

状态 rendered 会将 config 选项中的配置转换为特定于平台的 CLI 命令,这些命令将在结果内的 rendered 键中返回。对于状态 rendered,不需要与远程主机的活动连接。

状态 mergedreplacedoverridden 对于此模块具有相同的行为。

状态 gathered 将从设备中获取运行配置,并将其转换为与资源模块 argspec 格式相同的结构化数据,该值将在结果内的 gathered 键中返回。

状态 parsedrunning_config 选项读取配置,并根据资源模块参数将其转换为 JSON 格式,该值将在结果内的 parsed 键中返回。running_config 选项的值应与在设备上执行的命令 *show system hostname* 的输出格式相同。对于状态 parsed,不需要与远程主机的活动连接。

选项

  • "merged" ← (默认)

  • "replaced"

  • "deleted"

  • "overridden"

  • "parsed"

  • "gathered"

  • "rendered"

说明

注意

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

  • 此模块使用连接 netconf

  • 请参阅 Junos OS 平台选项

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

示例

# Using merged
#
# Before state
# ------------
#
# vagrant@vsrx# show system hostname
#
# [edit]
- name: Merge provided HOSTNAME configuration into running configuration.
  junipernetworks.junos.junos_hostname:
    config:
      hostname: 'vsrx-18.4R1'
    state: merged
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {
#         "hostname": "vsrx-18.4R1"
#     },
#     "before": {},
#     "changed": true,
#     "commands": [
#           "<nc:system xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#           "<nc:host-name>vsrx-18.4R1</nc:host-name></nc:system>"
#     ]
# After state
# -----------
#
# [email protected]# show system host-name
# host-name vsrx-18.4R1;
#
# Using replaced
#
# Before state
# ------------
#
# [email protected]# show system host-name
# host-name vsrx-18.4R1;
#
# [edit]
- name: Replaced target config with provided config.
  junipernetworks.junos.junos_hostname:
    config:
      hostname: 'vsrx-12'
    state: replaced
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {
#         "hostname": "vsrx-12"
#     },
#     "before": {
#         "hostname": "vsrx-18.4R1"
#     },
#     "changed": true,
#     "commands": [
#           "<nc:system xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#           "<nc:host-name>vsrx-12</nc:host-name></nc:system>"
#     ]
# After state
# -----------
#
# [email protected]# show system host-name
# host-name vsrx-12;
#
# Using overridden
#
# Before state
# ------------
#
# [email protected]# show system host-name
# host-name vsrx-18.4R1;
#
# [edit]
- name: Replaced target config with provided config.
  junipernetworks.junos.junos_hostname:
    config:
      hostname: 'vsrx-12'
    state: overridden
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {
#         "hostname": "vsrx-12"
#     },
#     "before": {
#         "hostname": "vsrx-18.4R1"
#     },
#     "changed": true,
#     "commands": [
#           "<nc:system xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#           "<nc:host-name>vsrx-12</nc:host-name></nc:system>"
#     ]
# After state
# -----------
#
# [email protected]# show system host-name
# host-name vsrx-12;
#
# Using deleted
#
# Before state
# ------------
#
# [email protected]# show system host-name
# host-name vsrx-12;
#
- name: Delete running HOSTNAME global configuration
  junipernetworks.junos.junos_hostname:
    config:
    state: deleted
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {},
#     "before": {
#         "hostname": "vsrx-12"
#     },
#     "changed": true,
#     "commands": [
#               "<nc:system xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#                <nc:host-name delete="delete"/></nc:system>"
#     ]
# After state
# -----------
#
# vagrant@vsrx# show system ntp
#
# [edit]
# Using gathered
#
# Before state
# ------------
#
# [email protected]# show system host-name
# host-name vsrx-12;
#
- name: Gather running HOSTNAME global configuration
  junipernetworks.junos.junos_hostname:
    state: gathered
#
# -------------------------
# Module Execution Result
# -------------------------
#     "gathered": {
#         "hostname": "vsrx-12",
#     },
#     "changed": false,
# Using rendered
#
# Before state
# ------------
#
- name: Render xml for provided facts.
  junipernetworks.junos.junos_hostname:
    config:
      boot_server: '78.46.194.186'
    state: rendered
#
# -------------------------
# Module Execution Result
# -------------------------
#     "rendered": [
#           "<nc:system xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">"
#           "<nc:host-name>78.46.194.186</nc:host-name></nc:system>"
#     ]
#
# 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>
#         <system xmlns="http://yang.juniper.net/junos-es/conf/system">
#            <host-name>vsrx-18.4R1</host-name>
#         </system>
#     </configuration>
# </rpc-reply>
#
- name: Parse HOSTNAME running config
  junipernetworks.junos.junos_hostname:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "parsed":  {
#         "hostname": "vsrx-18.4R1"
#     }
#

返回值

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

描述

after

字典

生成的配置模型调用。

已返回:当发生更改时

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

before

字典

模型调用之前的配置。

已返回:始终

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

commands

列表 / 元素=字符串

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

已返回:始终

示例: ["\"<nc:host-name>78.46.194.186</nc:host-name></nc:system>\""]

作者

  • Rohit Thakur (@rohitthakur2590)