IOS-XR Platform Options


目录

The Cisco IOS-XR collection supports multiple connections. This page offers details on how each connection works in Ansible and how to use it.

Connections available

.. CLI NETCONF
only for modules iosxr_banner,
iosxr_interface, iosxr_logging,
iosxr_system, iosxr_user

Protocol

SSH

XML over SSH

Credentials

uses SSH keys / SSH-agent if present

accepts -u myuser -k if using password

uses SSH keys / SSH-agent if present

accepts -u myuser -k if using password

Indirect Access

by a bastion (jump host)

by a bastion (jump host)

Connection Settings

ansible_connection:

ansible.netcommon.network_cli

ansible_connection:

ansible.netcommon.netconf

Enable Mode |br| (Privilege Escalation)

not supported

not supported

Returned Data Format

Refer to individual module documentation

Refer to individual module documentation

The ansible_connection: local has been deprecated. Please use ansible_connection: ansible.netcommon.network_cli or ansible_connection: ansible.netcommon.netconf instead.

Using CLI in Ansible

Example CLI inventory [iosxr:vars]

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

The ansible_paramiko_proxy_command variable is deprecated along with the Paramiko-based connection plugin. Use ansible_libssh_proxy_command instead with the libssh connection plugin. For details on migrating from Paramiko to libssh, see Migrating to ssh_type libssh for ansible.netcommon.network_cli across Ansible networking collections.

Example CLI task

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

Using NETCONF in Ansible

Enabling NETCONF

Before you can use NETCONF to connect to a switch, you must:

To enable NETCONF on a new switch with Ansible, use the cisco.iosxr.iosxr_netconf module through the CLI connection. Set up your platform-level variables just like in the CLI example above, then run a playbook task like this:

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

Once NETCONF is enabled, change your variables to use the NETCONF connection.

Example NETCONF inventory [iosxr:vars]

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

Example NETCONF task

- 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

Never store passwords in plain text. We recommend using SSH keys to authenticate SSH connections. Ansible supports ssh-agent to manage your SSH keys. If you must use passwords to authenticate SSH connections, we recommend encrypting them with Ansible Vault <playbooks_vault>.

timeout_options


版本号 #2
由 壳壳虫 创建于 2026-10-31 14:39:01 UTC
由 壳壳虫 更新于 2026-10-31 14:39:02 UTC