Создание тестового окружения для разработки сайтов
Столкнулись в такой проблемой, сейчас используется один тестовый сервер где используется одно окружения. Простой ламп сервер и гит на нем. Очень хотелось бы сделать систему, когда для конкретного хоста можно было-бы указывать версию пхп который будет работать на нем, апач или энжинкс или связка их вместе, версия бд и так далее. Есть ли подобное решение, позволяющие быстро создавать и менять окружения. На хостах разработчиков стоит Open Server, там это меняется простой сменой профиля, но профиль меняется для всех хостов, поэтому хотелось бы перенести во первых все на тестовый сервер, во вторых сделать смену окружений.
У меня несколько вритуальных машин для тестов с разной конфигурацией сервера. При необходимости любую машину можно легко клонировать и ставить туда обновления или что-то ещё. В случае, если вам нужен не индивидуальный, а именно общий сервер, виртуальные машины можно поставить на один из постоянно работающих компьютеров и сделать их членами офисной сети.
VitrualBox. Рулю через обычный терминал, без постороннего софта. Деплоймент на виртуалки через sftp внутри IDE при сохранении файла (в простейшем случае) или git.
Я смотрю больше наверное в сторону Webmin+Cloudmin и некий гипервизор. Вопрос лишь в том, как менять окружения и перетаскивать файлы с одного сервера на другой
Возможно, я не понимаю сути проблемы. Можно в качества хост-системы использовать обычную винду, поставить VirtualBox и управлять виртуалками через гуй (в том числе через удаленный рабочий стол).
проблема в том, что я не один разработчик. обычно бывает что по тикету кого-то из команды, надо нужный хост перетащить на нужное окружение. Сейчас примерно такая схема и используется, что крайне неудобно. Так как есть основной тестовый сервер. где лежит гит, откуда ведется деплой на сервера клиентов. Хотелось бы на нем иметь и полноценную тест зону, дабы соблюдать целостность архитектуры в общем. Мозг подсказывает.что надо смотреть в сторону гипервизоров, просто вдруг есть готовые решения для моей задачи.
В таком случае не могу ничем помочь. У нас другой тип задач, в которых конфигурация сервера подбирается под проект, а не проект подстраивается под хостинг.
Не могли бы вы поделиться опытом, когда поддержка старых версий серверного софта принесла пользу? При условии, что система предназначена для запуска только на выделенном сервере?
Я вижу создание велосипеда.
Вам надо самостоятельно собрать все необходимые вам версии софта с указанием --prefix=/usr/local/пакет.версия
+ написать скрипт, который будет собирать все это единую систему (в основном конфиги с правильными путями) и запускать сие чудо на разных портах, а в локалке можно и на разных айпи просто.
Прикрутить к этому гуи на том же пхп, будет не сложно.
Сама сложность в сборке всех этих пакетов.
Иначе самый просто способ это виртуалки + проекты подключенные через nfs.
Можно также автоматизировать установку софта в этих виртуалках, на основе запущенных данных. Но на все это требуется время.
Получается, что с виртуалками меньше времени требуется для запуска системы в общем, но больше требуется если надо сразу получить какую-то нестандартную конфигурацию.
А с локально установленными пакетами с измененными путями. Надо больше времени на запуск и подготовку всего. Но зато потом можно быстро получить требуемый результат.
Благодарю за ответ. Вариант с путями рассматривался. проблема в том, как запустить одновременно три инстанса с апачем, четыре с энжинксом и пять с апачем на фронтенде и энжинксом на фронтенте на одном айпашнике? Либо ставить несколько карточек сетевых и вешать на каждый интерфейс свои айпишники и биндить потом нужные сборки на нужный айпишник
Вам хватит и одной сетевой карты, алиасы как раз для этого /sbin/ifconfig eth0 172.16.3.1
/sbin/ifconfig eth0:0 172.16.3.10
/sbin/ifconfig eth0:1 172.16.3.100
Единственное, что localhost сложнее тут использовать. Но его тоже можно расклонировать. Ну и для всяких mysql сокеты по разному обозвать, не забыть только потом все это предусмотреть в сборщике проекта.
Как вариант - установить proxmox например. Проекты складывать в хранилище и монтировать его как /var/www к вашим виртуальным машинам. А уже на виртуальных машинах используйте какие душе угодно настройки/технологии.