Spec-Zone.ru › Ansible 2.7

Введение

Модули (также называемые «плагинами задач» или «плагинами библиотек») — это дискретные единицы кода, которые могут использоваться из командной строки или в задаче плейбука.

Давайте рассмотрим, как выполнить три разных модуля из командной строки:

ansible webservers -m service -a "name=httpd state=started"
ansible webservers -m ping
ansible webservers -m command -a "/sbin/reboot -t now"

Каждый модуль поддерживает передачу аргументов. Почти все модули принимают key=value аргументы, разделенные пробелами. Некоторые модули не принимают аргументов, а модули команд/оболочек просто принимают строку команды, которую вы хотите выполнить.

Из плейбуков модули Ansible выполняются очень похожим образом:

- name: reboot the servers
  action: command /sbin/reboot -t now

Что можно сократить до:

- name: reboot the servers
  command: /sbin/reboot -t now

Ещё один способ передачи аргументов модулю — использование синтаксиса YAML, также называемого «сложными аргументами»

- name: restart webserver
  service:
    name: httpd
    state: restarted

Все модули технически возвращают данные в формате JSON, хотя если вы используете командную строку или плейбуки, вам не нужно знать об этом много. Если вы пишете свой собственный модуль, вам это важно, и это означает, что вам не нужно писать модули на каком-либо конкретном языке — вы можете выбрать любой.

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

Документацию по каждому модулю можно получить из командной строки с помощью инструмента ansible-doc:

ansible-doc yum

Список всех доступных модулей см. в Индексе модулей, или выполните следующую команду в командной строке:

ansible-doc -l

См. также

Введение в ad-hoc команды
Примеры использования модулей в /usr/bin/ansible
Работа с плейбуками
Примеры использования модулей с /usr/bin/ansible-playbook
Разработать модуль?
Как написать собственные модули
Python API
Примеры использования модулей с Python API
Список рассылки
Вопросы? Помощь? Идеи? Загляните на список на Google Groups
irc.freenode.net
#ansible IRC чат-канал

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/user_guide/modules_intro.html

Spec-Zone.ru

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