Параметры платформы IOS-XR
Коллекция Cisco IOS-XR поддерживает несколько способов подключения. На этой странице описано, как каждый способ подключения работает в Ansible и как его использовать.
Доступные подключения
CLI |
NETCONF только для модулей | |
|---|---|---|
Протокол | SSH | XML через SSH |
Учётные данные |
используются SSH-ключи / SSH-agent, если доступны при использовании пароля принимается |
используются SSH-ключи / SSH-agent, если доступны при использовании пароля принимается |
Непрямой доступ | через бастионный узел (промежуточный хост) | через бастионный узел (промежуточный хост) |
Параметры подключения |
|
|
Режим enable | не поддерживается | не поддерживается |
Формат возвращаемых данных | См. документацию соответствующего модуля | См. документацию соответствующего модуля |
Использование ansible_connection: local объявлено устаревшим. Вместо него используйте ansible_connection: ansible.netcommon.network_cli или ansible_connection: ansible.netcommon.netconf.
Использование CLI в Ansible
Пример инвентаря CLI [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"'
Примечание
Переменная ansible_paramiko_proxy_command объявлена устаревшей вместе с модулем подключения на основе Paramiko. Вместо неё используйте ansible_libssh_proxy_command с модулем подключения libssh. Подробнее о переходе с Paramiko на libssh см. в статье Переход на ssh_type libssh для ansible.netcommon.network_cli во всех сетевых коллекциях Ansible.
- Если вы используете SSH-ключи (в том числе ssh-agent), конфигурацию
ansible_passwordможно удалить. - Если вы подключаетесь напрямую к хосту (не через бастионный узел или промежуточный хост), конфигурацию
ansible_paramiko_proxy_commandможно удалить. - Если вы подключаетесь к хосту через бастионный узел или промежуточный хост, нельзя указывать пароль SSH в директиве
ProxyCommand. Чтобы секретные данные не попали в открытый доступ (например, в выводps), SSH не поддерживает передачу паролей через переменные окружения.
Пример задачи CLI
- name: Retrieve IOS-XR version
cisco.iosxr.iosxr_command:
commands: show version
when: ansible_network_os == 'cisco.iosxr.iosxr'
Использование NETCONF в Ansible
Включение NETCONF
Прежде чем подключаться к коммутатору по NETCONF, необходимо:
- установить пакет Python
ncclientна управляющем узле (узлах) с помощьюpip install ncclient - включить NETCONF на устройстве (устройствах) Cisco IOS-XR
Чтобы включить NETCONF на новом коммутаторе с помощью Ansible, используйте модуль cisco.iosxr.iosxr_netconf через подключение CLI. Настройте переменные уровня платформы так же, как в приведённом выше примере 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_paramiko_proxy_command='-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-agent для управления SSH-ключами. Если для аутентификации SSH-подключений необходимо использовать пароли, рекомендуется зашифровать их с помощью Ansible Vault.
См. также
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/network/user_guide/platform_iosxr.html