ansible.netcommon.netconf 连接 – 使用 netconf 协议提供持久连接

注意

此连接插件是 ansible.netcommon 集合(版本 7.1.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install ansible.netcommon。您需要进一步的要求才能使用此连接插件,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:ansible.netcommon.netconf

ansible.netcommon 1.0.0 中的新增功能

概要

  • 此连接插件提供通过 SSH NETCONF 子系统连接到远程设备的功能。此连接插件通常由网络设备使用,用于通过 NETCONF 发送和接收 RPC 调用。

  • 请注意,此连接插件需要在本地 Ansible 控制器上安装 ncclient。

要求

执行此连接的本地控制器节点需要满足以下要求。

  • ncclient

参数

参数

注释

host

字符串

指定要建立 SSH 连接的远程设备的 FQDN 或 IP 地址。

默认值: "inventory_hostname"

配置

  • 变量:inventory_hostname

  • 变量:ansible_host

host_key_checking

布尔值

如果希望避免底层 Ansible 用于连接主机的工具进行主机密钥检查,请将此项设置为“False”

选项

  • false

  • true ← (默认值)

配置

import_modules

布尔值

通过启用直接执行来减少 CPU 使用率和网络模块执行时间。模块不会被打包并通过 shell 执行,而是由 Ansible 控制节点使用与 Ansible 进程相同的 Python 解释器直接执行。注意 - 与 异步模式 不兼容。注意 - 需要 Python 3 和 Ansible 2.9.16 或更高版本。注意 - 对于 Ansible 2.9.x,任务中需要完全限定的模块名称。

选项

  • false

  • true ← (默认值)

配置

look_for_keys

布尔值

启用在 ssh 密钥的常用位置(例如:file:`~/.ssh/id_*`)查找 ssh 密钥。

选项

  • false

  • true ← (默认值)

配置

netconf_ssh_config

字符串

此变量用于启用具有 netconf 连接的堡垒/跳转主机。如果设置为 True,则堡垒/跳转主机的 ssh 设置应存在于 ~/.ssh/config 文件中,或者可以将其设置为自定义 ssh 配置文件路径以读取堡垒/跳转主机的设置。

配置

  • INI 条目

    [netconf_connection]
    ssh_config = VALUE
    
  • 环境变量:ANSIBLE_NETCONF_SSH_CONFIG

  • 变量:ansible_netconf_ssh_config

network_os

字符串

配置设备平台网络操作系统。此值用于加载特定于设备的 netconf 插件。如果未配置此选项(或设置为 auto),则 Ansible 将尝试猜测要使用的正确 network_os。如果无法正确猜测 network_os,它将使用 default

配置

  • 变量:ansible_network_os

password

字符串

配置首次建立 SSH 连接时用于对远程设备进行身份验证的用户密码。

配置

  • 变量:ansible_password

  • 变量:ansible_ssh_pass

  • 变量:ansible_ssh_password

  • 变量:ansible_netconf_password

persistent_command_timeout

整数

以秒为单位配置等待命令从远程设备返回的时间量。如果在命令返回之前超过此计时器,连接插件将引发异常并关闭。

默认值: 30

配置

persistent_connect_timeout

整数

以秒为单位配置尝试初始建立持久连接时等待的时间量。如果此值在与远程设备的连接完成之前过期,连接将失败。

默认值: 30

配置

persistent_log_messages

布尔值

此标志将启用在 Ansible 日志文件中记录从目标设备执行的命令和收到的响应。为了使此选项生效,需要将 ‘log_path’ Ansible 配置选项设置为具有写入权限的文件路径。

请务必充分理解启用此选项的安全隐患,因为它可能会通过在日志文件中记录敏感信息而产生安全漏洞。

选项

  • false ← (默认)

  • true

配置

port

整数

指定在建立 SSH 连接时,远程设备上用于侦听连接的端口。

默认值: 830

配置

  • INI 条目

    [defaults]
    remote_port = 830
    
  • 环境变量:ANSIBLE_REMOTE_PORT

  • 变量:ansible_port

private_key_file

字符串

用于在首次建立 SSH 连接时对远程设备进行身份验证的私有 SSH 密钥或证书文件。

配置

  • INI 条目

    [defaults]
    private_key_file = VALUE
    
  • 环境变量:ANSIBLE_PRIVATE_KEY_FILE

  • 变量:ansible_private_key_file

proxy_command

字符串

通过跳转主机运行连接的代理信息。

这需要在控制器上安装 ncclient >= 0.6.10。

默认值: ""

配置

  • INI 条目

    [paramiko_connection]
    proxy_command = ""
    
  • 环境变量:ANSIBLE_NETCONF_PROXY_COMMAND

  • 变量:ansible_paramiko_proxy_command

  • 变量:ansible_netconf_proxy_command

remote_user

字符串

首次建立 SSH 连接时,用于对远程设备进行身份验证的用户名。如果未指定 remote_user,连接将使用已登录用户的用户名。

可以通过 CLI 使用 --user-u 选项进行配置。

配置

  • INI 条目

    [defaults]
    remote_user = VALUE
    
  • 环境变量:ANSIBLE_REMOTE_USER

  • 变量:ansible_user

作者

  • Ansible 网络团队 (@ansible-network)

提示

每个条目类型的配置条目都有一个从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。