IOS-XR Платформа Опции
IOS-XR поддерживает несколько подключений. Эта страница содержит подробную информацию о работе каждого подключения в Ansible и о способах его использования.
Тема
Доступные подключения
| CLI |
NETCONF только для модулей | |
|---|---|---|
| Протокол | SSH | XML по SSH |
| Данные входа |
использует SSH ключи / SSH-агент, если он присутствует принимает |
использует SSH ключи / SSH-агент, если он присутствует принимает |
| Непрямой доступ | через бастион (шлюз) | через бастион (шлюз) |
| Параметры подключения | ansible_connection: network_cli | ansible_connection: netconf |
| Режим включения (На повышение привилегий) | не поддерживается | не поддерживается |
| Формат возвращаемых данных | См. документацию отдельных модулей | См. документацию отдельных модулей |
Для устаревших playbooks Ansible по-прежнему поддерживает ansible_connection=local для всех модулей IOS-XR. Рекомендуется как можно скорее перейти на использование ansible_connection=netconf или ansible_connection=network_cli
Использование CLI в Ansible
Пример инвентаризации CLI [iosxr:vars]
[iosxr:vars] ansible_connection=network_cli ansible_network_os=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 - Если вы обращаетесь к хосту через бастион/шлюз, вы не можете включать свой SSH пароль в директиву
ProxyCommand. Для предотвращения утечки секретов (например, в выводеps), SSH не поддерживает предоставление паролей через переменные окружения.
Пример задачи CLI
- name: Retrieve IOS-XR version
iosxr_command:
commands: show version
when: ansible_network_os == 'iosxr'
Использование NETCONF в Ansible
Включение NETCONF
Перед использованием NETCONF для подключения к коммутатору необходимо:
- установить пакет python
ncclientна вашем/ваших контроллере(ях) сpip install ncclient - включить NETCONF на устройстве Cisco IOS-XR
Чтобы включить NETCONF на новом коммутаторе через Ansible, используйте модуль iosxr_netconf через подключение CLI. Настройте переменные на уровне платформы так же, как в примере CLI выше, а затем выполните задачу playbook следующим образом:
- name: Enable NETCONF connection: network_cli iosxr_netconf: when: ansible_network_os == 'iosxr'
После включения NETCONF измените свои переменные, чтобы использовать подключение NETCONF.
Пример инвентаризации NETCONF [iosxr:vars]
[iosxr:vars] ansible_connection=netconf ansible_network_os=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
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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/network/user_guide/platform_iosxr.html