LXC для локальной разработки программного обеспечения

О чем это я

Со временем на рабочей машине разработчика может скопиться целая масса всякого нужного и не нужного софта, библиотек и сервисов. Например, если Вы веб-разработчик, то в разное время, помимо, например, php или ruby (а иногда и то и другое и третье, коли Вы «полиглот»), на машине может появиться mysql, postgresql, mongodb, redis, rabbitmq, apache, nginx и в придачу куча разных библиотек, используемых вышеперечисленным софтом, и это с учетом того, что перечислено далеко не все, что может понадобится разработчику в процессе работы над проектами.

Не знаю как Вам, а мне такой бардак не нравится, более того, в моей практике приходится иметь дело не только с зоопарком софта, но еще и с обилием версий этого софта, как пример: сегодня я работаю над проектом, использующим php 5.4 + postgres 9.3, завтра латаю дыры в дремучем legacy, которое работает поверх php 5.2 и mysql 5.1, послезавтра вообще ковыряю библиотеку на ruby или python. На боевом сервере работать не комильфо, так что желательно иметь локальную версию не только приложения, но и его окружения.
Continue reading «LXC для локальной разработки программного обеспечения»

LXC для локальной разработки программного обеспечения

Windows, Linux, VirtualBox. Немного об извращениях.

Почему извращаемся с Windows?

Давайте представим себе некоторую абстрактную ситуацию, в которой заядлому линуксоиду приходится, в следствие должностных обязанностей, плотно засесть под Windows. При этом, часть его работы подразумевает ряд операций, которые, если не Linux-only, то в нем, родимом, выполняются куда как сподручнее.

При этом, основную часть времени ему все таки придется проводить в Windows, так что dual-boot в такой ситуации не есть оптимальный вариант. Таки на ум приходит следующее решение (как сказал один знакомый программер: «coLinux своими руками, млин»)

Исходные данные

Итак, дано:

  • Windows Vista/7 в качестве хост-системы
  • Ваш любимый дистрибутив в качестве гостевой системы
  • VirtualBox, потому что с VMWare издавна как-то не сложилось

Поехали

  • Для начала, естественно, скачаем и установим VirtualBox.
  • После чего установим Putty.
  • При создании виртуальной машины выбираем удобные для себя настройки, за исключением одно маленького но, для гостевой системы сразу определяем 2 сетевых интерфейса:
    • NAT, из-за него наш Linux будет выходить во внешний мир
    • Виртуальный адаптер хоста, через него мы будем стучаться по ssh к нашему гостевому Linux
  • Уже непосредственно во время установки системы, или сразу после этого, настраиваем сетевые интерфейсы:
    • Пусть eth0 — первый, который NAT, ему говорим все получать автоматически по DHCP
    • Пусть eth1 — второй, который виртуальный адаптер хоста, говорим ему, что у него ip 192.168.56.10, маска 255.255.255.0
  • Систему установили, сетевые интерфейсы настроили (то есть убедились, что при загрузке гостевой системы у первого сетевого интерфейса ip вида 10.0.2.15, у второго тот, что указан ранее).
  • Пишем bat’ники, которые позволят запускать виртуалку в режиме Headless, то бишь без запуска GUI VirtualBox’а:
    • cd "C:\Program Files\Oracle\VirtualBox\"
      start VBoxManage startvm YOURVM --headless
    • cd "C:\Program Files\Oracle\VirtualBox\"
      start VBoxManage controlvm YOURVM --poweroff
  • Собственно все, запускаем машинку в режиме headless, стучимся к ней с помощью Putty, работаем.
Windows, Linux, VirtualBox. Немного об извращениях.