支持 Netconf 的平台选项
此页面详细介绍了 Ansible 中 Netconf 连接的工作原理以及如何使用它。
可用连接
NETCONF 除了 |
|
---|---|
协议 |
通过 SSH 传输 XML |
凭据 |
如果存在,则使用 SSH 密钥/SSH 代理 如果使用密码,则接受 |
间接访问 |
通过堡垒机(跳板主机) |
连接设置 |
|
ansible_connection: local
已弃用。请改用 ansible_connection: ansible.netcommon.netconf
。
在 Ansible 中使用 NETCONF
启用 NETCONF
在可以使用 NETCONF 连接到交换机之前,您必须
在您的控制节点上使用
pip install ncclient
安装ncclient
Python 包在 Junos OS 设备上启用 NETCONF
要通过 Ansible 在新的交换机上启用 NETCONF,请通过 CLI 连接使用特定于平台的模块或手动设置它。例如,像在上面的 CLI 示例中一样设置您的平台级变量,然后运行如下所示的 playbook 任务
- name: Enable NETCONF
connection: ansible.netcommon.network_cli
junipernetworks.junos.junos_netconf:
when: ansible_network_os == 'junipernetworks.junos.junos'
启用 NETCONF 后,更改您的变量以使用 NETCONF 连接。
NETCONF 清单示例 [junos:vars]
[junos:vars]
ansible_connection=ansible.netcommon.netconf
ansible_network_os=junipernetworks.junos.junos
ansible_user=myuser
ansible_password=!vault |
NETCONF 任务示例
- name: Backup current switch config
junipernetworks.junos.netconf_config:
backup: yes
register: backup_junos_location
具有可配置变量的 NETCONF 任务示例
- name: configure interface while providing different private key file path
junipernetworks.junos.netconf_config:
backup: yes
register: backup_junos_location
vars:
ansible_private_key_file: /home/admin/.ssh/newprivatekeyfile
注意:有关 netconf 连接插件的可配置变量,请参阅 ansible.netcommon.netconf。
堡垒/跳板主机配置
要使用跳板主机连接到启用了 NETCONF 的设备,您必须设置 ANSIBLE_NETCONF_SSH_CONFIG
环境变量。
ANSIBLE_NETCONF_SSH_CONFIG
可以设置为1 或 TRUE(触发使用默认 SSH 配置文件 ~/.ssh/config)
自定义 SSH 配置文件的绝对路径。
SSH 配置文件应如下所示
Host *
proxycommand ssh -o StrictHostKeyChecking=no -W %h:%p [email protected]
StrictHostKeyChecking no
跳板主机的身份验证必须使用基于密钥的身份验证。
您可以在 SSH 配置文件中指定使用的私钥
IdentityFile "/absolute/path/to/private-key.pem"
或者您可以使用 ssh 代理。
ansible_network_os 自动检测
如果未为主机指定 ansible_network_os
,则 Ansible 将尝试自动检测要使用的 network_os
插件。
也可以通过使用 auto
作为 ansible_network_os
来触发 ansible_network_os
自动检测。(注意:以前使用 default
代替 auto
)。
警告
切勿以纯文本形式存储密码。我们建议使用 SSH 密钥进行 SSH 连接身份验证。Ansible 支持 ssh 代理来管理您的 SSH 密钥。如果您必须使用密码进行 SSH 连接身份验证,我们建议使用 Ansible Vault 对其进行加密。
另请参阅