Стек технологий + Docker для реализации автоматического тестирования на физических машинах?
Добрый день!
Я - начинающий CI-инженер, вышедший из системного администрирования. На текущий момент времени, помимо сборок продукта у нас реализованы задачи прогона автотестов на виртуальных машинах. Для корректного тестирования продукта, нам необходима чистая система, в которой никогда не было установлено тестируемое ПО, по этой причине мы используем реверт снэпшота ВМ, после чего производится установка приложения и запуск тестов. Сейчас появилась задача реализации автоматического прогона тестов на физических машинах т.к. есть функциональности, использующие аппаратную составляющую, невозможную для проброса в ВМ. В качестве решения предполагается использовать docker-контейнеры. Пока что, чтение документации не привело к появлению сколько-нибудь оформленной картины "как должно в итоге быть". Прошу опытных контейнероводов подсказать, в каком направлении думать, какие решения использовать? Спасибо!
Докер - один из способов развертки софта.
Если речь идет не о тестировании непосредственно развертки/установки продукта, я бы использовал mock.
Здесь есть несколько примеров использования https://fedoraproject.org/wiki/Using_Mock_to_test_...
Хотя сейчас посмотрел, это только для RedHat-based ОС. =)
Lisikus: Ага, я уже вижу. Ну да, прост аппаратные части которые не может эмулировать virtualbox, docker не эмулирует тем более. Mock тоже не эмулирует, и сама просто небольшая надстройка над chroot. Но mock предоставлял мне возможность на одной машине тестировать как ведет себя софтинка на CentOS, Fedora, влючен-выключен SELinux, стоят какие зависимости или не стоят. Конфигурацию быстро инициализировать, быстро удалить.
Lisikus: А вы не смотрели что может Vargant? Я его не использовал, но от авторитетных личностей слышал, что незаменимая фича. Боюсь, вам придется запускать аппаратные тесты на голом железе..
EG-PMS2-LAN в помощь. Раз админ, то наверняка unattended setup знаешь\освоишь.
А как деплоить артифакт после билда - дело десятое. Это может быть и докер и архив и scp и rsync и черт в ступе.
Не до конца понимаю, как тут использовать unattended setup? Установить софтину - дело джобы jenkins, мне нужен "откат" до чистого состояния ОС перед этим. Смотрю в том числе в сторону SCCM или Acronis True Image (чтобы просто ось разворачивать по сетке), но это больно уж долгий процесс. Мои надежды были связаны с возможностью в контейнере - чистой системе устанавливать ПО и прогонять тесты, после чего, контейнер убивался бы. Но, видимо, это ошибочное представление.
Lisikus: в докере вин10 софт не поднимется - считай только линукс. если в ВМ не получается прокинуть железо и нужен прямой доступ, то только перестановка машины. Тогда EG-PMS2-LAN (если конечно у вас нет железа с fencing девайс) позволит из job сделать хардребут. Потом unattended setup венды (или акронисом накат, или ghost или еще чем). Потом деплой артифакта и запуск тестов.
Линуксовый софт можно пускать в докере, но опять же изза прямого доступа к железу, и возможно rw к какомуто маунту на хост, может потребоваться переставлять машину.