cisco.ios.ios_hostname 模块 – 配置主机名的资源模块。

注意

此模块是 cisco.ios 集合 (版本 9.0.3) 的一部分。

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

要安装它,请使用: ansible-galaxy collection install cisco.ios

要在playbook中使用它,请指定: cisco.ios.ios_hostname

cisco.ios 2.7.0 中的新增功能

概要

  • 此模块提供对 Cisco IOS 设备上主机名的声明式管理。

参数

参数

注释

config

字典

主机名选项的字典

hostname

字符串

设置IOS的主机名

running_config

字符串

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

此选项的值应为通过执行命令 **show running-config | section ^hostname** 从 IOS 设备接收的输出。

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

state

字符串

配置应保留的状态

状态 *rendered*、*gathered* 和 *parsed* 不会对设备进行任何更改。

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

对于此模块,状态 *merged*、*replaced* 和 *overridden* 的行为相同。

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

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

选项

  • "merged" ← (默认)

  • "replaced"

  • "overridden"

  • "deleted"

  • "rendered"

  • "gathered"

  • "parsed"

备注

注意

  • 在 CML 上针对 Cisco IOSXE 版本 17.3 进行了测试。

  • 此模块与连接 network_cli 一起使用。

示例

# Using state: merged

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

# router-ios#show running-config | section ^hostname
# hostname Router

# Merged play:
# ------------

- name: Apply the provided configuration
  cisco.ios.ios_hostname:
    config:
      hostname: Router1
    state: merged

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

# "commands": [
#         "hostname Router1",
# ],

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

# router-ios#show running-config | section ^hostname
# hostname Router1

# Using state: deleted

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

# router-ios#show running-config | section ^hostname
# hostname RouterTest

# Deleted play:
# -------------

- name: Remove all existing configuration
  cisco.ios.ios_hostname:
    state: deleted

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

# "commands": [
#     "no hostname RouterTest",
# ],

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

# router-ios#show running-config | section ^hostname
# hostname Router

# Using state: overridden

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

# router-ios#show running-config | section ^hostname
# hostname Router

# Overridden play:
# ----------------

- name: Override commands with provided configuration
  cisco.ios.ios_hostname:
    config:
      hostname: RouterTest
    state: overridden

# Commands Fired:
# ---------------
# "commands": [
#       "hostname RouterTest",
#     ],

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

# router-ios#show running-config | section ^hostname
# hostname RouterTest

# Using state: replaced

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

# router-ios#show running-config | section ^hostname
# hostname RouterTest

# Replaced play:
# --------------

- name: Replace commands with provided configuration
  cisco.ios.ios_hostname:
    config:
      hostname: RouterTest
    state: replaced

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

# "commands": [],

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

# router-ios#show running-config | section ^hostname
# hostname RouterTest

# Using state: gathered

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

# router-ios#show running-config | section ^hostname
# hostname RouterTest

# Gathered play:
# --------------

- name: Gather listed hostname config
  cisco.ios.ios_hostname:
    state: gathered

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

#   "gathered": {
#      "hostname": "RouterTest"
#     },

# Using state: rendered

# Rendered play:
# --------------

- name: Render the commands for provided configuration
  cisco.ios.ios_hostname:
    config:
      hostname: RouterTest
    state: rendered

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

# "rendered": [
#     "hostname RouterTest",
# ]

# Using state: parsed

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

# hostname RouterTest

# Parsed play:
# ------------

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

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

#  "parsed": {
#     "hostname": "RouterTest"
# }

返回值

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

描述

after

字典

模块执行后的结果配置。

返回:发生更改时

示例: "This output will always be in the same format as the module argspec.\n"

before

字典

模块执行前的配置。

返回:当 *state* 为 mergedreplacedoverriddendeletedpurged

示例: "This output will always be in the same format as the module argspec.\n"

commands

列表 / 元素=字符串

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

返回:当 *state* 为 mergedreplacedoverriddendeletedpurged

示例: ["hostname Router1"]

gathered

列表 / 元素=字符串

从远程设备收集到的关于网络资源的事实信息,以结构化数据形式呈现。

返回:当 *state* 为 gathered

示例: ["This output will always be in the same format as the module argspec.\n"]

parsed

列表 / 元素=字符串

根据模块 argspec 将 *running_config* 选项中提供的设备原生配置解析为结构化数据。

返回:当 *state* 为 parsed

示例: ["This output will always be in the same format as the module argspec.\n"]

rendered

列表 / 元素=字符串

以设备原生格式(脱机)呈现的任务中提供的配置。

返回:当 *state* 为 rendered

示例: ["hostname Switch1"]

作者

  • Sagar Paul (@KB-perByte)