Spec-Zone.ru › Ansible 2.7

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

Аrista EOS поддерживает несколько подключений. На этой странице описано, как работает каждое подключение в Ansible 2.6 и как его использовать.

  • Доступные подключения
  • Использование CLI в Ansible 2.6
    • Пример CLI group_vars/eos.yml
    • Пример задачи CLI
  • Использование eAPI в Ansible 2.6
    • Включение eAPI
    • Пример eAPI group_vars/eos.yml
    • Пример задачи eAPI
    • Примеры eAPI с connection: local

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

CLI eAPI
Протокол SSH HTTP(S)
Косвенный доступ через бастион (прокси-сервер) через веб-прокси
Формат возвращаемых данных stdout[0]. stdout[0].messages[0].

Для устаревших плейбуков EOS по-прежнему поддерживает ansible_connection: local. Рекомендуется как можно скорее перейти к использованию ansible_connection: network_cli или ansible_connection: httpapi.

Использование CLI в Ansible 2.6

Пример CLI group_vars/eos.yml

ansible_connection: network_cli
ansible_network_os: eos
ansible_user: myuser
ansible_ssh_pass: !vault...
ansible_become: yes
ansible_become_method: enable
ansible_become_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: Backup current switch config (eos)
  eos_config:
    backup: yes
  register: backup_eos_location
  when: ansible_network_os == 'eos'

Использование eAPI в Ansible 2.6

Включение eAPI

Перед использованием eAPI для подключения к коммутатору необходимо включить eAPI. Для включения eAPI на новом коммутаторе через Ansible используйте модуль eos_eapi через подключение CLI. Настройте group_vars/eos.yml так же, как в примере CLI выше, затем выполните задачу плейбука следующим образом:

- name: Enable eAPI
   eos_eapi:
       enable_http: yes
       enable_https: yes
   become: true
   become_method: enable
   when: ansible_network_os == 'eos'

Дополнительные параметры для включения подключений HTTP/HTTPS можно найти в документации модуля eos_eapi.

После включения eAPI измените group_vars/eos.yml для использования подключения eAPI.

Пример eAPI group_vars/eos.yml

ansible_connection: httpapi
ansible_network_os: eos
ansible_user: myuser
ansible_ssh_pass: !vault...
ansible_become: yes
ansible_become_method: enable
proxy_env:
  http_proxy: http://proxy.example.com:8080
  • Если вы подключаетесь к хосту напрямую (не через веб-прокси), вы можете удалить конфигурацию proxy_env.
  • Если вы подключаетесь к хосту через веб-прокси, используя https, измените http_proxy на https_proxy.

Пример задачи eAPI

- name: Backup current switch config (eos)
  eos_config:
    backup: yes
  register: backup_eos_location
  environment: "{{ proxy_env }}"
  when: ansible_network_os == 'eos'

В этом примере переменная proxy_env, определенная в group_vars, передается в параметр environment модуля в задаче.

Примеры eAPI с connection: local

group_vars/eos.yml:

ansible_connection: local
ansible_network_os: eos
ansible_user: myuser
ansible_ssh_pass: !vault...
eapi:
  host: "{{ inventory_hostname }}"
  transport: eapi
  authorize: yes
  auth_pass: !vault...
proxy_env:
  http_proxy: http://proxy.example.com:8080

Задача eAPI:

- name: Backup current switch config (eos)
  eos_config:
    backup: yes
    provider: "{{ eapi }}"
  register: backup_eos_location
  environment: "{{ proxy_env }}"
  when: ansible_network_os == 'eos'

В этом примере две переменные, определенные в group_vars, передаются модулю задачи:

  • переменная eapi передается в параметр provider модуля
  • переменная proxy_env передается в параметр environment модуля

Предупреждение

Никогда не храните пароли в открытом виде. Рекомендуется использовать ключи 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.6/network/user_guide/platform_eos.html

Spec-Zone.ru

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