LINUX.ORG.RU
решено ФорумAdmin

Ansible, половчее разворачивать проект под centos и win

 , , ,


1

1

Есть задача: по build step'у на TeamCity должны разворачиваться несколько контейнеров с Centos 6&7, в них скачиваться из репозитория проект, либы, и запускаться (тесты), кроме этого должен подниматься снапшот винды в esxi, там шаги те же.

Пока что выбрал Ansible, т.к есть

  • Плагин для TeamCity
  • Модуль для взаимодействия с Docker (Docker не обязательно, но никакие другие контейнерные штуки я ещё не пробовал)
  • Модуль для взаимодействия с vmware

Самый простой контейнер через ansible уже запускаю. Докерфайл допилю, чтобы внутри лежали необходимые либы. А вот как запускать команды? Такой параметр у docker_container-модуля есть, но мне нужно и из репы стянуть проект, и запустить мавен.

Уважаемый аноним, как думаете, как половчее организовать процесс?

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

alozovskoy ★★★★★ ()
Ответ на: комментарий от alozovskoy

Точно! Я базовый образ пока использовал, а ведь могу в Dockerfile кучу RUN написать. Тогда вопрос, с какой командой через ansible разворачивать образ?

KroArtem ★★ ()
Ответ на: комментарий от KroArtem

docker_container по идее (доступен с версии 2.1). Точно не скажу, не работал с докером через Ansible. Если знаете как сделать это в bash и нет времени на эксперименты и чтение мануалов - возмите модуль shell.

alozovskoy ★★★★★ ()
Ответ на: комментарий от PunkoIvan

По идее, сбилдить образ нужно один раз: взять центось 6 и 7, напихать туда необходимых библиотек и закоммитить. Потом уже при запуске job в TeamCity в общей директории на агенте чистить и обновлять репу, стартовать новые контейнеры из готового образа и уже в них запускать тесты, а вывод отправлять в общую директорию агента. Пока что вижу такой вариант.

KroArtem ★★ ()
Ответ на: комментарий от alozovskoy

Раз уж Ansible решил плотнее интегрироваться с докером (судя по новостям), то почему бы не использовать эту удобную функциональность? Подход с использованием модуля выглядит более гибким и правильным, а время на эксперименты на то и выделено, чтобы сделать всё по уму.

KroArtem ★★ ()
Ответ на: комментарий от KroArtem

Я же не знаю что там за ситуация у ТС, может ему надо чтоб это работало еще вчера и времени нет вообще, так что предложил вариаты.

И, хоть я и являюсь большим фанатом Ansible, у меня сложилось крайне негативное впечатление о процессе появления в нем новых фичь и завязываться на них без хорошего тестирования я бы не рискнул. Тем более пока это все новое ломаться будет часто (ну просто что-то добавили, что-то убрали - сценарии не работают), и если надо «сделал и забыл» я бы взял то, что уже давно стабилизировали (ну или забыл про обновления без объемного тестирования).

alozovskoy ★★★★★ ()
Ответ на: комментарий от KroArtem

Если один раз, то тогда билд образ вручную, а уже запуск контейнеров реализуй через Ансиблю.

PunkoIvan ★★★★ ()
Ответ на: комментарий от alozovskoy

С докером работает хорошо, довольно давно используем именно эти модули.

PunkoIvan ★★★★ ()
Ответ на: комментарий от alozovskoy

Время есть, чтобы поразбираться и на ЛОРе вопросы позадавать. :)

Насколько я понял, модули для докера уже не совсем новые, был модуль docker, но его заменили и разбили на docker_image, docker_container и прочие. Будем надеяться, что ломать совместимость не будут. Ну и обновляться на bleeding edge не будем.

Спасибо за советы.

KroArtem ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.