Варианты подключения к платформе Junos OS
Juniper Junos OS поддерживает несколько способов подключения. На этой странице приводятся сведения о работе каждого способа в Ansible и о том, как его использовать.
Доступные способы подключения
|
CLI Только модули |
NETCONF
| |
|---|---|---|
Протокол | SSH | XML через SSH |
Учетные данные |
используются ключи SSH / SSH-agent, если они доступны поддерживает |
используются ключи SSH / SSH-agent, если они доступны поддерживает |
Непрямой доступ | через бастион (узел-переход) | через бастион (узел-переход) |
Параметры подключения |
|
|
Режим enable | не поддерживается Junos OS | не поддерживается Junos OS |
Формат возвращаемых данных |
|
|
ansible_connection: local устарел. Вместо него используйте ansible_connection: ansible.netcommon.network_cli или ansible_connection: ansible.netcommon.netconf.
Использование CLI в Ansible
Пример инвентаря CLI [junos:vars]
[junos:vars] ansible_connection=ansible.netcommon.network_cli ansible_network_os=junipernetworks.junos.junos 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 Junos OS version
junipernetworks.junos.junos_command:
commands: show version
when: ansible_network_os == 'junipernetworks.junos.junos'
Использование NETCONF в Ansible
Включение NETCONF
Чтобы подключиться к коммутатору с помощью NETCONF, необходимо:
- установить пакет Python
ncclientна управляющем узле (узлах) с помощьюpip install ncclient - включить NETCONF на устройстве (устройствах) Junos OS
Чтобы включить NETCONF на новом коммутаторе с помощью Ansible, используйте модуль junipernetworks.junos.junos_netconf через подключение CLI. Настройте переменные уровня платформы так же, как в приведенном выше примере CLI, а затем запустите задачу плейбука, например:
- name: Enable NETCONF connection: ansible.netcommon.network_cli junipernetworks.junos.junos_netconf: when: ansible_network_os == 'junipernetworks.junos.junos'
После включения NETCONF измените переменные, чтобы использовать подключение NETCONF.
Пример инвентаря NETCONF [junos:vars]
[junos:vars] ansible_connection=ansible.netcommon.netconf ansible_network_os=junipernetworks.junos.junos ansible_user=myuser ansible_password=!vault | ansible_netconf_proxy_command='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
Пример задачи NETCONF
- name: Backup current switch config (junos)
junipernetworks.junos.junos_config:
backup: yes
register: backup_junos_location
when: ansible_network_os == 'junipernetworks.junos.junos'
Предупреждение
Никогда не храните пароли в открытом виде. Для аутентификации 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_junos.html