Варианты платформы NXOS
Cisco NXOS поддерживает несколько подключений. Эта страница содержит подробности о работе каждого подключения в Ansible 2.6 и о его использовании.
Доступные подключения
| CLI | NX-API | |
|---|---|---|
| Протокол | SSH | HTTP(S) |
| Непрямой доступ | через башн (хост перехода) | через веб-прокси |
| Формат возвращаемых данных | stdout[0]. | stdout[0].messages[0]. |
Для устаревших playbooks NXOS по-прежнему поддерживает ansible_connection: local. Рекомендуется как можно скорее перейти на использование ansible_connection: network_cli или ansible_connection: httpapi.
Использование CLI в Ansible 2.6
Пример CLI group_vars/nxos.yml
ansible_connection: network_cli ansible_network_os: nxos 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 (nxos)
nxos_config:
backup: yes
register: backup_nxos_location
when: ansible_network_os == 'nxos'
Использование NX-API в Ansible 2.6
Включение NX-API
Прежде чем вы сможете использовать NX-API для подключения к коммутатору, необходимо включить NX-API. Чтобы включить NX-API на новом коммутаторе через Ansible, используйте модуль nxos_nxapi через подключение CLI. Настройте group_vars/nxos.yml так же, как в примере CLI выше, а затем выполните задачу playbook так:
- name: Enable NX-API
nxos_nxapi:
enable_http: yes
enable_https: yes
when: ansible_network_os == 'nxos'
Чтобы узнать больше о параметрах включения HTTP/HTTPS и локального http, обратитесь к документации модуля nxos_nxapi.
После включения NX-API измените ваше group_vars/nxos.yml для использования подключения NX-API.
Пример NX-API group_vars/nxos.yml
ansible_connection: httpapi ansible_network_os: nxos ansible_user: myuser ansible_ssh_pass: !vault... proxy_env: http_proxy: http://proxy.example.com:8080
- Если вы обращаетесь к хосту напрямую (не через веб-прокси), вы можете удалить конфигурацию
proxy_env. - Если вы обращаетесь к хосту через веб-прокси, используя
https, изменитеhttp_proxyнаhttps_proxy.
Пример задачи NX-API
- name: Backup current switch config (nxos)
nxos_config:
backup: yes
register: backup_nxos_location
environment: "{{ proxy_env }}"
when: ansible_network_os == 'nxos'
В этом примере переменная proxy_env, определённая в group_vars, передаётся в параметр 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_nxos.html