Введение
Модули (также называемые «задачи-плагины» или «плагины-библиотеки») — это те, что выполняют фактическую работу в Ansible, они исполняются в каждой задаче плейбука. Но вы также можете запустить один из них с помощью команды «ansible».
Давайте рассмотрим, как выполнить три разных модуля из командной строки:
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.4/modules_intro.html