Несколько лет назад, в очередной раз настроив окружение для 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
Плюсы такого подхода несомненны:
- Настраивать сервер нужно только один раз.
- Если разработка не ведётся, то можно выключить виртуальную машину и серверные программы не будут есть ресурсы хост-машины.
- Можно делать резервные копии сразу всего сервера.
- Использование CVS, например, git, позволяет поддерживать актуальность исходных кодов во всех виртуальных машинах (БД в любом случае лучше восстанавливать из последней резервной копии production сервера).
Минус нашёл только один:
- Перенос большого файла-образа виртуальной машины с одного компьютера на другой.
Однако, он легко исправляется, а время на перенос и развёртывание виртуальной машины в разы меньше чем настройка нового сервера.
Приветствую, да, виртуальная машина используется у меня ежедневно. Хочу попробовать некие утилиты — использую виртуальную систему, да бы не засорять хостовую, хочу протестировать что то, использую виртуальную машину + делаю снапшоты системы, что бы быстро восстановить до установки тестируемых программ. Хочу протестировать лайвсд или установить новую систему, ставлю в первую очередь на вирт. машину, сервер? естественно на вирт. машину или же хостовой ставиться серверная версия сисемы + в вирт. машине еще пару шт. вирт. серверных систем. Да, виртуализация это прогресс.
Привет!
На какой именно машине изменен /etc/hosts?
Анатолий, /etc/hosts необходимо править на той машине, с которой вы будете обращаться к серверу, чтобы он знал с каким IP связан домен, то есть на хост машине.
Попробуйте Vagrant, это невероятно удобная вещь для любых эскпериментов
Да, Vagrant и Ansible очень помогают при развёртывании новых виртуальных машин.