Debian веб-сервер через Virtualbox для разработки и тестирования на Django

Во время работы над одним проектом проектом необходимо было чтоб использовались master-slave репликации в PostgreSQL и Django операции записи делала в мастер, а читала все со слейва. Так как на тестовый сервер по консоли доступ был только у тим-лида, а багов из-за master-slave было много (особенно на сигналах), решил я у себя поднять подобную конфигурацию вебсервера чтоб приблизить ситуацию к тестовому и использовать ее в будущем в подобных целях.

Еще удобность, что можно просто делать бэкап файла виртуальной машины и не бояться вылетов диска и прочего железа. Эту инструкцию я составил для себя из гугления, чтоб было куда подглянуть и поэтому на авторство не претендую.

У меня на данный момент установлена Debian 8 (jessie) х64, поэтому для веб-сервера выбрал эту же ОС для удобства и чтоб версии postgres совпадали. Назвал веб-сервер "RemoteDebian" и именно это имя будет фигурировать в командах. Итак имеем Debian 8 на основной машине и свежеустановленный чистый Debian 8 (jessie) на виртуалбоксе с установленным пакетом сервера ssh.

Так как это у нас эмуляция веб-сервера то графический режим на него не логично устанавливать и неудобно что будет лишьнее окно всегда висеть поэтому по статье из хабра избавляемся от окна и будет использовать только ssh для настройки при работе с сервером. Ниже в командах вместо 10.0.2.15 может быть другой ip, смотрите вывод команды ifconfig на eth0 в виртуальном сервере.

Выключаем виртуальную машину и пишем в консоли основной:

$ VBoxManage modifyvm "RemoteDebian" --natpf1 "guestssh,tcp,127.0.0.1,2222,10.0.2.15,22"

Далее пробрасываем 80 порт для вебсервера.
(Порты меньше 1024 может открывать только root, поэтому просто пробрасываем 8888 порт и перенаправляем с 80 порта на 8888.)

$ VBoxManage modifyvm "RemoteDebian" --natpf1 "web,tcp,127.0.0.1,8888,10.0.2.15,80" # iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to 8888 # nano /etc/rc.local

Вставляем до exit 0

iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to 8888

Запускаем виртуальную машину в фоне, это очень удобно, прошу заметить, что запускаем под обычным пользователем, у которого находится виртуальная машина webserver.

$ (vboxheadless -s RemoteDebian &)

Жмем энтер
Все, мы пробросили 2222 порт на 22 внутренний, 80 порт должен работать, позже увидим. Пробуем коннектиться:

# ssh root@127.0.0.1 -p 2222

Теперь ставим пакеты PostgreSQL и PostGIS (он тоже используется в этом проекте)
apt-get install postgresql postgis
Остальные пакеты должно подтянуть автоматом

Дальше локально на машине прописываем
sudo vim /etc/postgresql/9.4/main/pg_hba.conf

Добавляем
host    replication     postgres        10.0.2.15/32         trust

Так же заодно поставил nginx для себя "поразбираться" 
Так как апач занимает 80-й порт для установки nginx нужно его остановить чтоб не было проблем вовремя установки пакета:

service apache2 stop
apt-get install nginx

Источники:
http://habrahabr.ru/post/188702/
http://www.thislinux.org/2014/03/postgresql-streaming-replication-setup.html

Следующая запись

Предыдущая запись

Похожие записи

Комментарии

Еще нет комментариев.

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments