Введение в модули
Модули (также называемые «задачами-плагинами» или «плагинами библиотек») — это дискретные единицы кода, которые можно использовать из командной строки или в задаче playbook. Ansible выполняет каждый модуль, обычно на удаленном управляемом узле, и собирает значения возврата. В Ansible 2.10 и более поздних версиях большинство модулей размещаются в коллекциях.
Вы можете выполнить модули из командной строки:
ansible webservers -m service -a "name=httpd state=started" ansible webservers -m ping ansible webservers -m command -a "/sbin/reboot -t now"
Каждый модуль поддерживает передачу аргументов. Почти все модули принимают key=value аргументы, разделенные пробелами. Некоторые модули не принимают аргументов, а модули команд/оболочки просто принимают строку команды, которую вы хотите выполнить.
Из playbooks модули Ansible выполняются очень похожим образом:
- name: reboot the servers command: /sbin/reboot -t now
Другой способ передачи аргументов модулю — использование синтаксиса YAML, также называемого «сложными аргументами»
- name: restart webserver
service:
name: httpd
state: restarted
Все модули возвращают данные в формате JSON. Это означает, что модули могут быть написаны на любом языке программирования. Модули должны быть идемпотентными и должны избегать внесения изменений, если они обнаруживают, что текущее состояние соответствует желаемому конечному состоянию. При использовании в Ansible playbook модули могут инициировать «события изменений» в форме уведомления обработчиков для выполнения дополнительных задач.
Вы можете получить доступ к документации для каждого модуля из командной строки с помощью инструмента ansible-doc:
ansible-doc yum
Для получения списка всех доступных модулей см. документацию по коллекциям, или выполните следующую команду в командной строке:
ansible-doc -l
См. также
- Введение в адхок-команды
-
Примеры использования модулей в /usr/bin/ansible
- Работа с playbooks
-
Примеры использования модулей с /usr/bin/ansible-playbook
- Разработать модуль?
-
Как написать собственные модули
- API на Python
-
Примеры использования модулей с API на Python
- Список рассылки
-
Вопросы? Помощь? Идеи? Загляните на список рассылки Google Groups
- irc.freenode.net
-
IRC-чат-канал #ansible
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/user_guide/modules_intro.html