Junos OS Платформенные параметры
Juniper Junos OS поддерживает несколько подключений. Эта страница предоставляет подробную информацию о работе каждого подключения в Ansible 2.5 и о его использовании.
Доступные подключения
| Протокол | SSH | XML по SSH |
| Непрямой доступ | через бастион (шлюз) | через бастион (шлюз) |
| Настройки подключения | ansible_connection: network_cli | ansible_connection: netconf |
Для устаревших playbooks Ansible по-прежнему поддерживает ansible_connection=local для всех модулей JUNOS. Рекомендуется как можно скорее перейти на использование ansible_connection=netconf или ansible_connection=network_cli.
Использование CLI в Ansible 2.5
Пример инвентаризации CLI [junos:vars]
[junos:vars] ansible_connection=network_cli ansible_network_os=junos ansible_user=myuser ansible_ssh_pass=!vault... ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
- Если вы используете SSH-ключи (включая ssh-agent), вы можете удалить конфигурацию
ansible_ssh_pass. - Если вы обращаетесь к хосту напрямую (не через бастион/шлюз), вы можете удалить конфигурацию
ansible_ssh_common_args. - Если вы обращаетесь к хосту через бастион/шлюз, вы не можете включать свой SSH-пароль в директиву
ProxyCommand. Для предотвращения утечки секретов (например, в выводеps) SSH не поддерживает предоставление паролей через переменные окружения.
Пример задачи CLI
- name: Retrieve Junos OS version
junos_command:
commands: show version
when: ansible_network_os == 'junos'
Использование NETCONF в Ansible 2.5
Включение NETCONF
Прежде чем использовать NETCONF для подключения к коммутатору, необходимо:
- установить пакет python
ncclientна вашем(их) контрольном(ых) узле(ях) с помощьюpip install ncclient - включить NETCONF на устройстве(ях) Junos OS
Чтобы включить NETCONF на новом коммутаторе через Ansible, используйте модуль junos_netconf через подключение 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_ssh_pass=!vault | ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
Пример задачи NETCONF
- name: Backup current switch config (junos)
junos_config:
backup: yes
register: backup_junos_location
when: ansible_network_os == 'junos'
Предупреждение
Никогда не храните пароли в открытом виде. Рекомендуется использовать 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.5/network/user_guide/platform_junos.html