Варианты платформы Junos OS
Система Junos OS от Juniper поддерживает несколько подключений. На этой странице подробно описано, как работает каждое подключение в Ansible и как его использовать.
Доступные подключения
|
CLI
|
NETCONF все модули, кроме | |
|---|---|---|
Протокол | SSH | XML по SSH |
Учётные данные |
использует SSH-ключи/SSH-агент, если присутствует принимает |
использует SSH-ключи/SSH-агент, если присутствует принимает |
Косвенный доступ | через шлюз (хост-бастион) | через шлюз (хост-бастион) |
Настройки подключения |
|
|
Режим включения | не поддерживается 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_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 Junos OS version
junipernetworks.junos.junos_command:
commands: show version
when: ansible_network_os == 'junipernetworks.junos.junos'
Использование NETCONF в Ansible
Включение NETCONF
Прежде чем использовать NETCONF для подключения к коммутатору, необходимо:
- установить пакет
ncclientpython на узле(ах) управления с помощьюpip install ncclient - включить NETCONF на устройстве(ях) Junos OS
Чтобы включить NETCONF на новом коммутаторе через Ansible, используйте модуль junipernetworks.junos.junos_netconf через подключение CLI. Настройте переменные уровня платформы так же, как в примере CLI выше, затем выполните задачу playbook, как это показано ниже:
- 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_ssh_common_args='-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-агент для управления вашими SSH-ключами. Если вам необходимо использовать пароли для аутентификации SSH-соединений, мы рекомендуем шифровать их с помощью Ansible Vault.
См. также
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html