IOS-XR 平台选项

Cisco IOS-XR 集合 支持多种连接。此页面详细介绍了每种连接在 Ansible 中的工作原理以及如何使用它。

可用连接

CLI

NETCONF

仅适用于模块 iosxr_banneriosxr_interfaceiosxr_loggingiosxr_systemiosxr_user

协议

SSH

通过 SSH 传输 XML

凭据

如果存在,则使用 SSH 密钥/SSH 代理

如果使用密码,则接受 -u myuser -k

如果存在,则使用 SSH 密钥/SSH 代理

如果使用密码,则接受 -u myuser -k

间接访问

通过堡垒机(跳板主机)

通过堡垒机(跳板主机)

连接设置

ansible_connection

ansible.netcommon.network_cli

ansible_connection

ansible.netcommon.netconf

启用模式
(权限提升)

不支持

不支持

返回的数据格式

请参阅各个模块文档

请参阅各个模块文档

ansible_connection: local 已弃用。请改用 ansible_connection: ansible.netcommon.network_cliansible_connection: ansible.netcommon.netconf

在 Ansible 中使用 CLI

CLI 清单示例 [iosxr:vars]

[iosxr:vars]
ansible_connection=ansible.netcommon.network_cli
ansible_network_os=cisco.iosxr.iosxr
ansible_user=myuser
ansible_password=!vault...
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
  • 如果您使用 SSH 密钥(包括 ssh 代理),则可以删除 ansible_password 配置。

  • 如果您直接访问主机(不是通过堡垒机/跳板主机),则可以删除 ansible_ssh_common_args 配置。

  • 如果您通过堡垒机/跳板主机访问主机,则不能在 ProxyCommand 指令中包含 SSH 密码。为了防止机密泄露(例如在 ps 输出中),SSH 不支持通过环境变量提供密码。

CLI 任务示例

- name: Retrieve IOS-XR version
  cisco.iosxr.iosxr_command:
    commands: show version
  when: ansible_network_os == 'cisco.iosxr.iosxr'

在 Ansible 中使用 NETCONF

启用 NETCONF

在您可以使用 NETCONF 连接到交换机之前,您必须

  • 在您的控制节点上使用 pip install ncclient 安装 ncclient python 包

  • 在 Cisco IOS-XR 设备上启用 NETCONF

要使用 Ansible 在新的交换机上启用 NETCONF,请通过 CLI 连接使用 cisco.iosxr.iosxr_netconf 模块。像上面的 CLI 示例一样设置您的平台级变量,然后运行如下 playbook 任务

- name: Enable NETCONF
  connection: ansible.netcommon.network_cli
  cisco.iosxr.iosxr_netconf:
  when: ansible_network_os == 'cisco.iosxr.iosxr'

启用 NETCONF 后,更改您的变量以使用 NETCONF 连接。

NETCONF 清单示例 [iosxr:vars]

[iosxr:vars]
ansible_connection=ansible.netcommon.netconf
ansible_network_os=cisco.iosxr.iosxr
ansible_user=myuser
ansible_password=!vault |
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'

NETCONF 任务示例

- name: Configure hostname and domain-name
  cisco.iosxr.iosxr_system:
    hostname: iosxr01
    domain_name: test.example.com
    domain_search:
      - ansible.com
      - redhat.com
      - cisco.com

警告

切勿以纯文本形式存储密码。我们建议使用 SSH 密钥来验证 SSH 连接。Ansible 支持 ssh 代理来管理您的 SSH 密钥。如果您必须使用密码来验证 SSH 连接,我们建议使用 Ansible Vault 对其进行加密。

另请参阅

设置超时选项