Книга: PyNEng
Назад: Конфигурационный файл
Дальше: Основы playbook

Модули

Модули Ansible

Вместе с установкой Ansible устанавливается также большое количество модулей (библиотека модулей). В текущей библиотеке модулей находится порядка 200 модулей.

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

Модули можно выполнять отдельно, в ad-hoc командах или собирать в определенный сценарий (play), а затем в playbook.

Как правило, при вызове модуля ему нужно передать аргументы. Какие-то аргументы будут управлять поведением и параметрами модуля, а какие-то передавать, например, команду, которую надо выполнить.

Например, мы уже выполняли ad-hoc команды, используя модуль raw, и передавали ему аргументы:

$ ansible cisco-routers -i myhosts -m raw -a "sh ip int br" -u cisco --ask-pass 

Выполнение такой же задачи в playbook будет выглядеть так (playbook рассматривается в следующем разделе):

    - name: run sh ip int br               raw: sh ip int br | ex unass 

После выполнения модуль возвращает результаты в формате JSON.

Модули Ansible, как правило, идемпотентны. Это означает, что модуль можно выполнять сколько угодно раз, но при этом модуль будет выполнять изменения, только если система не находится в желаемом состоянии.

В Ansible модули разделены на две категории:

  • core - это модули, которые всегда устанавливаются вместе с Anible. Их поддерживает основная команда разработчиков Ansible.
  • extra - это модули на данный момент устанавливаются с Ansible, но нет гарантии, что они и дальше будут устанавливаться с Ansible. Возможно, в будущем их нужно будет устанавливать отдельно. Большинство этих модулей поддерживается сообществом.

Также в Ansible модули разделены по функциональности. Список всех категорий находится в .

Назад: Конфигурационный файл
Дальше: Основы playbook