Ansible
Теория: Коллекции
Коллекции в Ansible — формат распространения связанного набора плейбуков, ролей, модулей и плагинов. Он появился после того, как количество встроенных модулей внутрь Ansible стало настолько огромным, что их поддержка резко усложнилась. Все встроенные модули перенесли в коллекции Ansible Collections. Часть этих модулей распространяются с Ansible сразу, другие же устанавливаются как роли через Ansible Galaxy.
Список установленных коллекций можно посмотреть так:
Коллекция ansible.builtin здесь не указана, так как это единственная коллекция модулей, встроенная прямо в ядро Ansible.
Принцип именования коллекций такой же как и у ролей. Первая часть — неймспейс, вторая имя коллекции. Но в отличие от роли, у коллекций есть и третье имя, модуль, который используется. Посмотрим на примере базы данных PostgreSQL. Ниже задача, которая управляет базой данных:
Или другой пример — управление таблицами в существующей базе данных:
PostgreSQL поставляется вместе с Ansible, поэтому его можно использовать напрямую, как и остальные коллекции из списка выше. Если коллекция не входит в стандартную поставку, то ее можно установить через ansible-galaxy. Ниже пример с Nginx.
Коллекция nginxinc.nginx_core содержит внутри набор ролей, для установки и настройки Nginx. Для примера:
Или более сложный вариант, с конфигурацией.
Автоматическая установка
Ansible поддерживает автоматическую установку коллекции по такому же принципу как это делается с ролями. Для этого создается файл requirements.yml, например, в том месте где запускается ansible. Туда добавляется список нужных коллекций:
Затем выполняется установка:






