Spec-Zone.ru › Ansible

Варианты подключения к платформе Junos OS

Juniper Junos OS поддерживает несколько способов подключения. На этой странице приводятся сведения о работе каждого способа в Ansible и о том, как его использовать.

  • Доступные способы подключения
  • Использование CLI в Ansible

    • Пример инвентаря CLI [junos:vars]
    • Пример задачи CLI
  • Использование NETCONF в Ansible

    • Включение NETCONF
    • Пример инвентаря NETCONF [junos:vars]
    • Пример задачи NETCONF

Доступные способы подключения

CLI

Только модули junos_netconf, junos_command и junos_ping

NETCONF

all modules except junos_netconf,

который включает NETCONF

Протокол

SSH

XML через SSH

Учетные данные

используются ключи SSH / SSH-agent, если они доступны

поддерживает -u myuser -k при использовании пароля

используются ключи SSH / SSH-agent, если они доступны

поддерживает -u myuser -k при использовании пароля

Непрямой доступ

через бастион (узел-переход)

через бастион (узел-переход)

Параметры подключения

ansible_connection: ``ansible.netcommon.network_cli

ansible_connection: ``ansible.netcommon.netconf

Режим enable
(повышение привилегий)

не поддерживается Junos OS

не поддерживается Junos OS

Формат возвращаемых данных

stdout[0].

  • json: result[0]['software-information'][0]['host-name'][0]['data'] foo lo0
  • text: result[1].interface-information[0].physical-interface[0].name[0].data foo lo0
  • xml: result[1].rpc-reply.interface-information[0].physical-interface[0].name[0].data foo lo0

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API