Spec-Zone.ru › Ansible

Как отличается автоматизация сетей

Автоматизация сетей использует базовые концепции Ansible, но существуют важные различия в работе модулей сети. Это введение поможет вам понять упражнения в этом руководстве.

  • Исполнение на управляющем узле
  • Несколько протоколов связи
  • Коллекции, организованные по сетевой платформе
  • Масштабирование привилегий: enable режим, become, и authorize

    • Использование become для масштабирования привилегий

Исполнение на управляющем узле

В отличие от большинства модулей Ansible, модули сети не выполняются на управляемых узлах. С точки зрения пользователя, модули сети работают как любые другие модули. Они работают с разовыми командами, плейбуками и ролями. Однако за кулисами модули сети используют другую методологию, чем другие модули (Linux/Unix и Windows). Ansible написан и выполняется на Python. Поскольку большинство сетевых устройств не могут выполнять Python, модули Ansible для сети выполняются на управляющем узле Ansible, где ansible или ansible-playbook запускается.

Модули сети также используют управляющий узел в качестве места назначения для резервных файлов, для тех модулей, которые предлагают backup опцию. В модулях Linux/Unix, где файл конфигурации уже существует на управляемом узле(ах), резервный файл по умолчанию записывается в ту же директорию, что и новый, измененный файл. Модули сети не обновляют файлы конфигурации на управляемых узлах, так как конфигурация сети не записывается в файлы. Модули сети записывают резервные файлы на управляющем узле, обычно в каталоге backup под директорией корневого плейбука.

При использовании плагинов подключения (например, ansible.netcommon.network_cli) для модулей сети, модули Unix/Linux, такие как ansible.builtin.file и ansible.builtin.copy, также выполняются на управляющем узле.

Несколько протоколов связи

Поскольку модули сети выполняются на управляющем узле, а не на управляемых узлах, они могут поддерживать несколько протоколов связи. Протокол связи (XML по SSH, CLI по SSH, API по HTTPS), выбранный для каждого модуля сети, зависит от платформы и цели модуля. Некоторые модули сети поддерживают только один протокол; некоторые предлагают выбор. Наиболее распространённым протоколом является CLI по SSH. Вы устанавливаете протокол связи с помощью переменной ansible_connection:

Значение ansible_connection

Протокол

Требует

Постоянный?

ansible.netcommon.network_cli

CLI по SSH

настройка network_os

да

ansible.netcommon.netconf

XML по SSH

настройка network_os

да

ansible.netcommon.httpapi

API по HTTP/HTTPS

настройка network_os

да

local

зависит от поставщика

настройка поставщика

нет

Примечание

ansible.netcommon.httpapi устаревает eos_eapi и nxos_nxapi. Подробнее см. Плагины Httpapi.

ansible_connection: local устарел. Используйте вместо него один из типов постоянных подключений, перечисленных выше. С постоянными подключениями вы можете определить хосты и учетные данные только один раз, а не в каждой задаче. Вам также необходимо установить переменную network_os для конкретной сетевой платформы, с которой вы взаимодействуете. Более подробную информацию об использовании каждого типа подключения на разных платформах см. на страницах специфичных для платформы.

Коллекции, организованные по сетевой платформе

Сетевая платформа — это набор сетевых устройств с общей операционной системой, которые можно управлять с помощью коллекции Ansible, например:

  • Arista: arista.eos
  • Cisco: cisco.ios, cisco.iosxr, cisco.nxos
  • Juniper: junipernetworks.junos
  • VyOS vyos.vyos

Все модули на одной сетевой платформе имеют общие требования. Некоторые сетевые платформы имеют определенные различия — см. документацию специфичных для платформы для получения подробной информации.

Масштабирование привилегий: enable режим, become, и authorize

Несколько сетевых платформ поддерживают масштабирование привилегий, когда определенные задачи должны выполняться привилегированным пользователем. На сетевых устройствах это называется enable режимом (аналог sudo в администрировании *nix). Модули Ansible для сети предлагают масштабирование привилегий для тех сетевых устройств, которые его поддерживают. Подробную информацию о том, какие платформы поддерживают enable режим, с примерами использования, см. в документации специфичных для платформы.

Использование become для масштабирования привилегий

Используйте верхнеуровневый параметр Ansible become: true с become_method: enable для выполнения задачи, плейбука или плейбуков с повышенными привилегиями на любой сетевой платформе, которая поддерживает масштабирование привилегий. Вы должны использовать connection: network_cli или connection: httpapi с become: true с become_method: enable. Если вы используете network_cli для подключения Ansible к вашим сетевым устройствам, файл group_vars будет выглядеть так:

ansible_connection: ansible.netcommon.network_cli
ansible_network_os: cisco.ios.ios
ansible_become: true
ansible_become_method: enable

Дополнительную информацию см. в Become и сети

© 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/getting_started/network_differences.html

Spec-Zone.ru

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