24. Сетевые модули

В предыдущих разделах для отправки команд на оборудование использовался модуль raw. Он универсален, и с его помощью можно отправлять команды на любое устройство.

В этом разделе рассматриваются модули, которые работают с сетевым оборудованием.

Глобально модули для работы с сетевым оборудованием можно разделить на две части:

  • модули для оборудования с поддержкой API
  • модули для оборудования, которое работает только через CLI

Если оборудование поддерживает API, как, например, NXOS, то для него создано большое количество модулей, которые выполняют конкретные действия по настройке функционала (например, для NXOS создано более 60 модулей).

Для оборудования, которое работает только через CLI, Ansible поддерживает, как минимум, такие три типа модулей:

  • os_command - выполняет команды show
  • os_facts - собирает факты об устройствах
  • os_config - выполняет команды конфигурации

Соответственно, для разных операционных систем будут разные модули. Например, для Cisco IOS модули будут называться:

  • ios_command
  • ios_config
  • ios_facts

Аналогичные три модуля доступны для таких ОС:

  • Dellos10
  • Dellos6
  • Dellos9
  • EOS
  • IOS
  • IOS XR
  • JUNOS
  • SR OS
  • VyOS

Полный список всех сетевых модулей, которые поддерживает Ansible, в документации.

Обратите внимание, что Ansible очень активно развивается в сторону поддержки работы с сетевым оборудованием, и в следующей версии Ansible, могут быть дополнительные модули. Поэтому, если на момент чтения книги уже есть следующая версия Ansible (версия в книги 2.5), используйте её и посмотрите в документации, какие новые возможности и модули появились.

В этом разделе все рассматривается на примере модулей для работы с Cisco IOS:

  • ios_command
  • ios_config
  • ios_facts

Примечание

Аналогичные модули command, config и facts для других вендоров и ОС работают одинаково, поэтому, если разобраться, как работать с модулями для IOS, с остальными всё будет аналогично.

Кроме того, рассматривается модуль ntc-ansible, который не входит в core модули Ansible.