Виртуальная машина, как сервер для web-разработки

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

В виртуальной машине, в моём случае VirtualBox, устанавливается Ubuntu Server, в нём поднимается всё серверное окружение: ssh, web-сервер, БД, PHP и другие нужные программы, например, screen. При необходимости переезда на другой компьютер: либо просто копируется виртуальный жёсткий диск, либо делается Экспорт конфигурации в VirtualBox. Что позволяет за считанные минуты получить полноценный и уже полностью настроенный сервер на новом компьютере. Безумно удобно! ( Есть, конечно, небольшая проблема с переносом 9-20 GiB файлов виртуальной машины с одного компьютера на другой, но она очень легко решается, например, передачей файла во внутренней сети или архиваторами, которые умеют разрезать файл на части ).

Ещё одно удобство от наличия сервера в виртуальной машине — все проекты уже настроены и готовы для работы над ними. Как же добраться до исходных кодов с хост-машины, чтобы при этом в IDE подхватилась CVS? Всё очень просто 🙂

В VirtualBox есть возможность в Свойствах ( Ctrl+S ) виртуальной машины, в разделе Сеть, указать, что Тип подключения: Сетевой мост. Если не вдаваться в подробности работы механизма, то можно сказать, что виртуальная машина появится в той же сети, что и хост-машина, то есть она обратиться к роутеру и получит IP-адрес из той же подсети. У меня хост-машина имеет IP 10.5.5.10/255.255.255.0, а виртуальная машина получила IP 10.5.5.101/255.255.255.0. ( Есть вариант подключения так, чтобы
виртуальная машина VirtualBox, была доступна с хост-машины без «внешней сети», имела доступ в интернет при наличии «внешней сети» и к другим виртуальным машинам на этой хост-машине. ) Что это даёт?

Так как «компьютеры» находятся в одной сети, то можно подключиться с одного к другому по NFS ( подключение к NFS обычному (не sudo) пользователю ).

Класс! Когда нужно работать, достаточно запустить виртуальную машину, подключиться к ней по NFS и всё, можно запускать свою любимую IDE и работать! В /etc/hosts, естественно, нужно прописать по каким доменам на какой IP стучаться, чтобы видеть в браузере то, что творишь. У меня /etc/hosts содержит что-то типа:
10.5.5.101 myproject.dev
10.5.5.101 subdomain.myproject.dev

Плюсы такого подхода несомненны:

  1. Настраивать сервер нужно только один раз.
  2. Если разработка не ведётся, то можно выключить виртуальную машину и серверные программы не будут есть ресурсы хост-машины.
  3. Можно делать резервные копии сразу всего сервера.
  4. Использование CVS, например, git, позволяет поддерживать актуальность исходных кодов во всех виртуальных машинах (БД в любом случае лучше восстанавливать из последней резервной копии production сервера).

Минус нашёл только один:

  1. Перенос большого файла-образа виртуальной машины с одного компьютера на другой.

Однако, он легко исправляется, а время на перенос и развёртывание виртуальной машины в разы меньше чем настройка нового сервера.

Виртуальная машина, как сервер для web-разработки: 5 комментариев

  1. Приветствую, да, виртуальная машина используется у меня ежедневно. Хочу попробовать некие утилиты — использую виртуальную систему, да бы не засорять хостовую, хочу протестировать что то, использую виртуальную машину + делаю снапшоты системы, что бы быстро восстановить до установки тестируемых программ. Хочу протестировать лайвсд или установить новую систему, ставлю в первую очередь на вирт. машину, сервер? естественно на вирт. машину или же хостовой ставиться серверная версия сисемы + в вирт. машине еще пару шт. вирт. серверных систем. Да, виртуализация это прогресс.

  2. Анатолий, /etc/hosts необходимо править на той машине, с которой вы будете обращаться к серверу, чтобы он знал с каким IP связан домен, то есть на хост машине.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Материалы распространяются под лицензией Creative Commons: Атрибуция — Некоммерческое использование — С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported.
Рейтинг@Mail.ru