Spec-Zone.ru › Ansible

Варианты платформы Junos OS

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

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

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

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

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

CLI

junos_netconf и junos_command модули только

NETCONF

все модули, кроме junos_netconf, который включает NETCONF

Протокол

SSH

XML по SSH

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

использует SSH-ключи/SSH-агент, если присутствует

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

использует SSH-ключи/SSH-агент, если присутствует

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

Косвенный доступ

через шлюз (хост-бастион)

через шлюз (хост-бастион)

Настройки подключения

ansible_connection: ``ansible.netcommon.network_cli

ansible_connection: ``ansible.netcommon.netconf

Режим включения
(эскалация привилегий)

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

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

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

stdout[0].

  • json: result[0]['software-information'][0]['host-name'][0]['data'] foo lo0
  • текст: 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_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 для подключения к коммутатору, необходимо:

  • установить пакет ncclient python на узле(ах) управления с помощью 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

Spec-Zone.ru

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