Как принято делать правильное развертывание docker через ansible?

Изучаю стык docker и ansible.
Вижу два подхода к этому:
- docker_container как модуль (выходит, свой плейбук на каждый контейнер?)
- ansible-container (напоминает docker-compose, но с донастройкой ролями)

В ansible-container во всех примерах и туториалах вижу, что роли располагают прямо рядом с container.yml, и все потом запускается прямо на хосте (ansible-container build/run)

но, по идее, смысл ansible в том, чтобы без агентов, и даже не заходя на хосты, с рабочего места разворачивать конфигурацию, проводить автоматизированную настройку. А в случае ansible-container все не так.

подскажите, в чем я неправ? Может быть, нужно это как-то иначе использовать?
Какие сейчас практики применяют?
  • Вопрос задан
  • 2551 просмотр
Пригласить эксперта
Ответы на вопрос 3
@922j
Docker сам по себе всего лишь один из кирпичиков, основа.
"Разворачивать систему на сервере" - это к Docker-Compose, Flynn, Kubernetes и пр.
Ответ написан
Комментировать
подскажите, в чем я неправ? Может быть, нужно это как-то иначе использовать?
Какие сейчас практики применяют?


Вы не совсем поняли. Ansible был когда docker и в помине не было. И отвечал задачам подготовки сервера к доставке(deploy) продукта (настройка окружения, установка зависимостей, ...) и непосредственно развертывания продукта. Так же некоторое применение было в обслуживании серверов (обновление сертификатов, установке патчей, ...).

Сейчас в пост докеровском веке, отпала необходимость в установке и настройке зависимостей на сервере, изоляции сервисов (chroot, ...), ... Зависимости и сам продукт доставляются на сервер в готовом виде, т.е. уже развернутом и настроенном. В этом идея контейнеров. Это не от того, что docker играет на том же поле что Ansible, а потому что подход контейнеризации избавил Ansible от некоторых функции.

Что не предоставляет docker? Это установка самого docker-а на сервере и запуск поверх него готовых контейнеров. Для этого, по прежнему необходим инструмент, можно тот же Ansible.

P.S. Относительно недавно недавно избавил себя от использования Ansible, в пользу Fabric. По причине тяжеловесности Ansible для простых задач. Хотя обновленный Fabric стал лучше, но по прежнему не идеален (описание в императивном стиле, ...). Условно идеальным средством могут служит инструменты для оркестрации docker: Swarm и Kubernites, но не для простых сайтов и маленьких проектов.
Ответ написан
Комментировать
Этот функционал лучше всего решают системы оркестрации контейнерами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы