Comments 12
При использовании ansible.builtin.apt можно (и нужно) сразу передавать список пакетов вместо использования loop. Это намного эффективнее (в случае loop каждый пакет по отдельности ставится) . И правильнее давать полный путь к модулю, как это делается везде в документации ansible.
По рекомендации с официального сайта docker-compose ставится как плагин докера.
Конечно, docker-compose (v1) как в статье, уже давно не поддерживается. Может OTUS специально добавляют ляпы, чтобы запутать новичков и те шли получать актуальные знания на рекламируемых курсах? Либо уровень курсов и правда такой...
Копипаста со старых статей, ubuntu bionic совсем древность же, v2 не так давно появился. До появления пакета docker-compose-plugin, способ как в статье вполне норм.
Ubuntu bionic это 18.04, с поддержкой только cgroups v1. При попытке запустить что-то более-менее свежее будут не особо очевидные проблемы с правами. Зачем это предлагать в 2023?
Вообще Docker Compose позиционируется как инструмент для локальной разработки. Именно поэтому он устанавливается лишь как опция. Отсюда связка с Ansible выглядит немного анекдотично. Зачем? Для продакшн у них Docker Stack в стандартной коробке - с конфигурацией в том же формате, но иными механизмами хранения secrets, масштабирования и т.п.
Docker compose v2 выпустили в 2020. Примерно с тех же времён v1 они не рекомендуют к использованию. v1 не поддерживает многие опции, описанные в актуальной документации. Сейчас эти знания могут пригодиться лишь для работы с каким-то легаси на локалхосте.
Если статья не про docker, а про Ansible, то невооружённым взглядом видно, что код из примеров не пройдет даже элементарные проверки ansible-lint. Разве это не показатель уровня материала?
На мой взгляд, статья выглядит как калькуляция где-то устаревших, а где-то и вредных советов. Хотя для новичка, который только входит в тему, качество материала скорее всего будет не очевидным. Я бы мог понять, если бы такой материал опубликовал школьник или студент в личном блоге. Но как текст от компании, предлающей образовательные программы, вызывает разные вопросы.
Лучше не ставить docker-compose под судо юзером, под которым работает ansible, а создать для него отдельного. Тем более, что группа создаётся.
В разделе "Проверка" допущена опечатка:
ansible-playbook -i inventoгдry playbooks/main.yaml
Что за школьный уровень? Вы точно понимаете для чего ансибл нужен? Идемпотентность слово встречалось?
Докер ставится 4мя баш командами, по инструкции с сайта докера. Они немного разнятся для разных OS. И даже для убунты там есть переменные в зависимости от релиза.
Оставляю для любителей велосипедов https://galaxy.ansible.com/geerlingguy/docker
Расширяем возможности Ansible: развертывание Docker