0

Является ли хорошей или плохой практикой настройку контейнера докеров с помощью ansible, изнутри контейнера, предоставляя доступную команду в качестве точки входа? Используя возможность, было бы проще настроить вещи в зависимости от условий поиска. Эта вспомогательная команда также запустит предоставленную службу. Это хорошо или зло? Другой вариант - использовать сценарий оболочки, а третий - сделать всю конфигурацию в Dockerfile (подверженной ошибкам). Последним вариантом было бы сконфигурировать некоторый базовый контейнер с помощью любого метода (вручную или CM) и зафиксировать изменения (трудно воспроизвести). Каков предпочтительный способ настройки контейнеров?Конфигурирование контейнера-докера с незаменимым

IMO, используя ansible, отменит бизнес-логику от платформы докеров, так что одна и та же услуга может быть легко запущена на другой платформе виртуализации или голой металлической только простой силовой командой. Но есть ли недостатки?

Кроме того, одобрен ли он для настройки запущенных контейнеров с возможностью доступа или это нарушает докеры докеров?

ответ

0

Ansible, как правило, выполняется снаружи контейнера, но это необязательно, это зависит от того, чего вы хотите достичь. Например, Ansible, установленный локально, часто используется в небольших средах разработки, например, на ноутбуке разработчиков, а отдельный сервер используется для чего-то вроде облачной среды, где есть несколько систем, контейнеров и т. Д.

0

Я только что провел несколько недель, глядя именно на эту проблему. Для того же приложения (на основе tomee и Монго), я сделал следующие модели:

  • Просто анзибль Развертывание на одной или нескольких виртуальных машин
  • Создание контейнеров, которые затем выполняются анзибль сценарии внутри себя, как вы делали
  • Использование анзибль-контейнера

Я сделал их в таком порядке, потому что это означало переход от простого к более сложному. Я менеджер продукта, и мои разные клиенты находятся на разных уровнях зрелости, поэтому у меня были те же проблемы, что и вы. Мне нужен повторяющийся скрипт, который будет работать как на виртуальных машинах (или даже на голом металле), так и на контейнеризованных средах.

Первое решение - хороший способ узнать. Вторые решения работают, но это означает, что ваши контейнеры больше, чем они должны быть. Третье решение лучше по следующим причинам:

  • Это в основном заставляет вас начать использовать роли. Если вы еще не начали использовать роли, вам нужно.
  • Это эффективно разъединяет бизнес-логику от докер и сохраняет его в анзибле (даже больше, чем во втором растворе)
  • При развертывании в виртуальные машины, вы должны быть в состоянии использовать playbooks из ролей
  • Если вы развертываются с помощью docker-compose, вы переходите к push-контейнеру-контейнеру, а затем поставляете своему клиенту скомпилированный файл-докер, который они могут выполнить.
  • Если вы развертываете в облаке, ansible-container создает playbook для вытягивания и запуска контейнеры (думаю, что я все еще работаю над этим)

 Смежные вопросы

  • Нет связанных вопросов^_^