Параметры платформы EOS
Коллекция Arista EOS поддерживает несколько типов подключений. На этой странице подробно описано, как работает каждое подключение в Ansible и как его использовать.
Доступные подключения
CLI | eAPI | |
|---|---|---|
Протокол | SSH | HTTP(S) |
Учетные данные |
используются ключи SSH / SSH-агент, если они доступны при использовании пароля допускается | используются сертификаты HTTPS, если они доступны |
Непрямой доступ | через бастион (промежуточный узел) | через веб-прокси |
Параметры подключения |
|
|
Режим enable |
поддерживается:
|
поддерживается:
|
Формат возвращаемых данных |
|
|
ansible_connection: local объявлен устаревшим. Вместо него используйте ansible_connection: ansible.netcommon.network_cli или ansible_connection: ansible.netcommon.httpapi.
Использование CLI в Ansible
Пример CLI group_vars/eos.yml
ansible_connection: ansible.netcommon.network_cli ansible_network_os: arista.eos.eos ansible_user: myuser ansible_password: !vault... ansible_become: true ansible_become_method: enable ansible_become_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: Backup current switch config (eos)
arista.eos.eos_config:
backup: yes
register: backup_eos_location
when: ansible_network_os == 'arista.eos.eos'
Использование eAPI в Ansible
Включение eAPI
Прежде чем подключаться к коммутатору через eAPI, необходимо включить eAPI. Чтобы включить eAPI на новом коммутаторе с помощью Ansible, используйте модуль arista.eos.eos_eapi через подключение CLI. Настройте group_vars/eos.yml так же, как в приведенном выше примере CLI, а затем запустите задачу плейбука, например:
- name: Enable eAPI
arista.eos.eos_eapi:
enable_http: yes
enable_https: yes
become: true
become_method: enable
when: ansible_network_os == 'arista.eos.eos'
Дополнительные параметры для включения подключений HTTP/HTTPS см. в документации модуля arista.eos.eos_eapi.
После включения eAPI измените group_vars/eos.yml, чтобы использовать подключение eAPI.
Пример eAPI group_vars/eos.yml
ansible_connection: ansible.netcommon.httpapi ansible_network_os: arista.eos.eos ansible_user: myuser ansible_password: !vault... ansible_become: true 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)
arista.eos.eos_config:
backup: yes
register: backup_eos_location
environment: "{{ proxy_env }}"
when: ansible_network_os == 'arista.eos.eos'
В этом примере переменная proxy_env, определенная в group_vars, передается параметру environment модуля в задаче.
Предупреждение
Никогда не храните пароли в открытом виде. Для аутентификации 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_eos.html