Это старая версия документа!
На сервере 192.168.1.12 (82.196.66.12) установлена система виртуализации openvz. В качестве шаблона гостевой (виртальной) ОС используется centos-6 (официальный образ от openvz).
В настоящий момент на виртуальную ОС номер 2 (CTID=2, IP-адрес: 10.0.0.3) установлен BOINC-сервер, готовый для тестирования. Для доступа к данной ОС наружу были выведены tcp-порты с номерами 8001 и 8002.
Порт 8001 соединен с веб-сервером, посредством которого будут подключаться BOINC-клиенты. Для тестирования доступны следующие URL.
Страничка проекта:
http://192.168.1.12:8001/first/
Страничка администрирования:
http://192.168.1.12:8001/first_ops/
login: boincadm
password: cluster
Порт 8002 соединен с ssh-сервером виртуальной машины. Для доступа можно воспользоваться командой:
ssh 192.168.1.104 -p 8002 -l boincadm
Пароль:
cluster
Получить права root'a:
sudo -i
На сервере 192.168.1.12 создана группа openvz_users, которая прописана в файле sudoers следующим образом:
%openvz_users ALL=NOPASSWD: /root/container.sh
То есть, членам этой группы разрешается выполнять скрипт /root/container.sh от лица системного администратора.
Данный скрипт содержит в себе все команды необходимые для запуска контейнера с боинк-сервером.
1. вывод краткой справки.
sudo /root/container.sh
2. вывод списка виртуальных машин, которые были созданы пользователем.
$ sudo /root/container.sh list
3. создание нового контейнера.
container.sh new
1. Смотрим информацию о контейнерах.
$ sudo /root/container.sh list
containers created by ivashko:
CTID IP-ADDRESS WEB-PORT SSH-PORT
50 10.0.1.50 12000 12001
Здесь мы видим, что в данный момент запущены контейнеры с идентификаторами CTID равными 1, 3, 4.
В качестве идентификатора нового контейнера мы будем использовать 5. Не занятый ip-адрес у нас будет 10.0.0.5.
Теперь смотрим нижнюю часть вывода. Это выписка из iptables о пробрасываемых портах.
Порт 8022 нашего сервера пробрасывается на виртуалку номер 4, в 22 порт (ssh)
Порт 8023 нашего сервера пробрасывается на виртуалку номер 4, в 80 порт (web)
В качестве порта нового контейнера мы будем использовать 8024.
2. Даем команду запуска нового контейнера.
/root/container.sh new 5 10.0.0.5 8024
Эта команда займет определенное время.
3. Проверяем снова состояние
# /root/container.sh list
CTID NPROC STATUS IP_ADDR HOSTNAME
1 24 running 10.0.0.1 -
3 46 running 10.0.0.3 -
4 16 running 10.0.0.4 -
5 17 running 10.0.0.5 -
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.0.0.1:80
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8001 to:10.0.0.3:8001
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8002 to:10.0.0.3:8002
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8022 to:10.0.0.4:22
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8023 to:10.0.0.4:80
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8024 to:10.0.0.5:22
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8025 to:10.0.0.5:80
Новый контейнер добавился, порты пробросились.
Чтобы теперь подключиться к нему нужно набрать команду:
ssh -l boincadm -p 8025 82.196.66.12
То есть подключиться к порту 8025 сервера 82.196.66.12 с именем boincadm
Пароль: cluster
Получить права root:
sudo -i