Установка системных пакетов
- name: install apt packages
apt: pkg={{ item }} update_cache=yes cache_valid_time=3600
become: True
with_items:
- git
- python-pip
- и тд
Создается массив из подставляемых апк
Как Ansible вызывает свои модули
1) Генерирует автономный сценарий на python с аргументами ( только модули python )
2) копирует модуль на хост
3) создает файл аргументов на хосте ( только для модулей не на языке pytjon )
4) вызывает модуль на хосте, передавая ему файл с аргументами
5) анализирует стандартный вывод модуля
Ожидаемый вывод переменных
changed - все модули ansible должны возвращать переменную changed . По этой логической переменной Ansible определяет факт изменение состояния хоста модулем.
Если имеется значение notify - для уведомления обработчика , если changed имеет значение true.
Реализация модулей на Python
Для модулей на Python Ansible предоставляет класс AnsibleModule , упрощающий следующие действия
* Анализ входной информации
* Вывод результатов в формате JSON
* Вызов сторонних программ
Обрабатывая модули на Python, Ansible внедряет аргументы непосредственно в сгенерированный код , избавляя от необходимости анализировать файл с аргументами