Возможности платформы с поддержкой Netconf
Эта страница содержит подробную информацию о работе подключения netconf в Ansible и о его использовании.
Доступные подключения
|
NETCONF все модули, кроме | |
|---|---|
| Протокол | XML через SSH |
| Учетные данные |
использует ключи SSH / SSH-агент, если присутствует принимает |
| Непрямой доступ | через бастион (шлюз) |
| Настройки подключения | ansible_connection: netconf |
Для устаревших playbooks Ansible по-прежнему поддерживает ansible_connection=local только для модуля netconf_config. Рекомендуется как можно скорее перейти на использование ansible_connection=netconf.
Использование NETCONF в Ansible
Включение NETCONF
Прежде чем использовать NETCONF для подключения к коммутатору, необходимо:
- установить пакет Python
ncclientна управляющих узлах сpip install ncclient - включить NETCONF на устройстве Junos OS
Чтобы включить NETCONF на новом коммутаторе через Ansible, используйте специфичный для платформы модуль через подключение CLI или настройте его вручную. Например, настройте переменные уровня платформы так же, как в примере CLI выше, а затем запустите задачу playbook так:
- name: Enable NETCONF connection: network_cli junos_netconf: when: ansible_network_os == 'junos'
После включения NETCONF измените свои переменные, чтобы использовать подключение NETCONF.
Пример инвентаризации NETCONF [junos:vars]
[junos:vars] ansible_connection=netconf ansible_network_os=junos ansible_user=myuser ansible_password=!vault |
Пример задачи NETCONF
- name: Backup current switch config
netconf_config:
backup: yes
register: backup_junos_location
Пример задачи NETCONF с настраиваемыми переменными
- name: configure interface while providing different private key file path
netconf_config:
backup: yes
register: backup_junos_location
vars:
ansible_private_key_file: /home/admin/.ssh/newprivatekeyfile
Примечание: для настраиваемых переменных плагина подключения netconf см. netconf.
Настройка бастиона/шлюза
Чтобы использовать шлюз для подключения к устройству с включенным NETCONF, необходимо установить переменную среды ANSIBLE_NETCONF_SSH_CONFIG.
-
ANSIBLE_NETCONF_SSH_CONFIG can be set to either: -
- 1 или TRUE (чтобы запустить использование файла конфигурации SSH по умолчанию ~/.ssh/config)
- Абсолютный путь к пользовательскому файлу конфигурации SSH.
Файл конфигурации SSH должен выглядеть примерно так:
Host * proxycommand ssh -o StrictHostKeyChecking=no -W %h:%p jumphost-username@jumphost.fqdn.com StrictHostKeyChecking no
Авторизация для шлюза должна использовать аутентификацию на основе ключей.
Вы можете указать используемый приватный ключ в файле конфигурации SSH:
IdentityFile "/absolute/path/to/private-key.pem"
Или использовать ssh-агент.
Автообнаружение ansible_network_os
Если ansible_network_os не указан для узла, Ansible попытается автоматически определить, какой плагин network_os использовать.
Автообнаружение ansible_network_os также может быть запущено с помощью auto в качестве ansible_network_os. (Примечание: ранее default использовался вместо auto).
Предупреждение
Никогда не храните пароли в открытом виде. Рекомендуется использовать ключи 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_netconf_enabled.html