Molecule — это фреймворк, предназначенный для тестирования ролей в Ansible. На хабре довольно много статей про тестирование с помощью molecule и почти во всех статьях говорится о неких "сложных сценариях тестирования для ansible", и далее в примерах обычно идут какие-то простенькие роли и тесты. Мне стало интересно протестировать более сложную роль, например роль для создания RabbitMQ кластера.
Используемые версии программ на момент написания статьи. Не гарантируется корректная работа для molecule версии ниже 3.3
debian 10 Buster
ansible-3.4.0
molecule-3.3.0
docker-ce-20.10.6
yamllint-1.26.1
ansible-lint-5.0.8
Устанавливаем ansible и molecule.
pip3 install --user ansible
(как именно устанавливать не столь важно, в приведенном примере установка идет в хоумдир пользователя).
pip3 install --user molecule[docker]
(мы будем использовать драйвер докера)
Устанавливаем линтеры
pip3 install --user ansible-lint yamllint
Установка докера выходит за рамки этой статьи, стоит отметить только что докер вы можете установить на эту же машину, где будете запускать molecule или же установить докер на любую другую машину в сети (например если мощности локальной машины не хватает) или же использовать уже существующий докер сервер.
Во втором случае на локальную машину нужно установить только докер клиент и выставить переменную DOCKER_HOST="ssh://ansible@адрес_вашего_докер_сервера", где ansible - аккаунт, который имеет ssh доступ на сервер и под которым будут создаваться докер контейнеры. Аккаунт также должен состоять в группе docker на докер сервере.