The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование VServer в Fedora Core Linux 4 (vserver virtual chroot linux vps)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: vserver, virtual, chroot, linux, vps,  (найти похожие документы)
From: CityHawk Newsgroups: Saratov Opensource community Date: Sun, 19 Nov 2006 17:02:14 +0000 (UTC) Subject: Использование VServer в Fedora Core Linux 4 Оригинал: http://saratov.lug.ru/?p=82 Изначально задача была поставлена здесь, я позволю себе процитировать: Есть у меня такая задача: энное количество хостов хочется засунуть в чрут. То есть на каждый хост (сайт) отдельный чрут. Ну и разруливать их через mod_proxy. Как это поумнее сделать? Хочется чтобы чруты эти создавались динамически (а не кривым способом вроде копирования ручками /usr/ в /chroot/usr) В Альте есть замечательный chrooted, но проблема в том что система - немного не Альт :( На текущий момент есть мысль спортировать chrooted туда. Но может благородные доны посоветуют более другой путь? 1. Поднимаем VServer В итоге склонился я к модному решению под названием VServer. Заодно и нашлась статейка VServer installation Fedora Core 4. На нее пока и буду ориентироваться. Возможно этот текст станет переводом ее, возможно просто изложением, на текущий момент - пофиг. Изначально в статье говориться о том, что надо Федору поставить, но у меня она уже стоит. Этот шаг опускаем. Но видимо SElinux надо отключить для этого в /etc/selinux/config ставим SELINUX=disabled. Говорим # sestatus -v Проверяем: # sestatus | head -n 6 SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: disabled Policy version: 19 Policy from config file: targeted Хм... Вроде пока не получилось его сделать совсем disabled. Но мы будем перегружаться, так что изменения вступят в силу позже... А пока не думаю, что помешает. Дальше нам нужно ядрышко с патчем для VServer. Думается, имеет смысл взять прекомпиленное... Хотя фик ево знает как его собирали... Ну да ладно: Создаем файлик /etc/yum.repos.d/dhozac.repo [dhozac-vserver] name=Daniel Hokka Zakrisson's packages for Fedora $releasever - $basearch - vserver baseurl=http://rpm.hozac.com/dhozac/fedora/$releasever/vserver/$basearch gpgkey=http://rpm.hozac.com/fedora/conf/keys/RPM-DHOZAC-GPG-KEY enabled=1 После этого просто говорим # yum install kernel-smp (ну или просто # yum install kernel, если у вас однопроцессорная машина). Пока ставится ядро и сервер перегружается - идем курить Отлично: # uname -sr Linux 2.6.15-1.1833_FC4.vs2.0.2.0.rc14.1smp Теперь надо поставить утилиты для этого самого VServer-а: # yum install util-vserver Делаем первый сервер: # /usr/sbin/vserver gast build -m yum --hostname=vtest.4c.ru \ --interface gast0=eth0:xxx.xxx.xxx.xxx -- -d fc4 /usr/sbin/vserver: line 171: /usr/lib/util-vserver/vserver-build: No such file or directory /usr/sbin/vserver: line 171: exec: /usr/lib/util-vserver/vserver-build: cannot execute: No such file or directory Нет ничего лучше хорошо стрясшейся жопы ;) Идем гуглить :) Ага, надо было еще сделать # yum install util-vserver-build. Исправляем Еще раз: # /usr/sbin/vserver gast build -m yum --hostname=vtest.4c.ru \ --interface gast0=eth0:xxx.xxx.xxx.xxx -- -d fc4 Соответственно поставилось: glibc i686 2.3.6-3 updates-released 6.2 M basesystem noarch 8.0-5 base 2.7 k filesystem i386 2.3.4-1 base 16 k glibc-common i386 2.3.6-3 updates-released 16 M libgcc i386 4.0.2-8.fc4 updates-released 60 k setup noarch 2.5.44-1.1 updates-released 31 k tzdata noarch 2006b-2.fc4 updates-released 488 k coreutils i386 5.2.1-48.1 updates-released 2.9 M vps-dev noarch 3.999-3.cru cru-vps 3.3 k vps-fakekernel noarch 2.6.999-2.cru cru-vps 2.4 k vps-fakepackages noarch 1.0-5.cru cru-vps 3.8 k SysVinit i386 2.85-39 base 98 k audit-libs i386 1.0.14-1.fc4 updates-released 39 k bash i386 3.0-31 base 1.8 M chkconfig i386 1.3.23-0.4 updates-released 136 k cracklib i386 2.8.2-1 base 42 k cracklib-dicts i386 2.8.2-1 base 3.3 M db4 i386 4.3.27-5.fc4 updates-released 1.7 M e2fsprogs i386 1.38-0.FC4.1 updates-released 879 k ethtool i386 3-1 base 54 k fedora-release noarch 4-2 base 414 k findutils i386 1:4.2.20-1 base 222 k gawk i386 3.1.4-5.4 updates-released 1.7 M grep i386 2.5.1-48.2 updates-released 172 k info i386 4.8-8.fc4.1 updates-released 162 k initscripts i386 8.11.1-1 base 1.1 M iproute i386 2.6.11-1 base 714 k iputils i386 20020927-22 base 108 k libacl i386 2.2.32-1.FC4.2 updates-released 17 k libattr i386 2.4.24-1.FC4.1 updates-released 9.7 k libselinux i386 1.23.11-1.1 updates-released 66 k libsepol i386 1.5.10-1.1 updates-released 42 k libstdc++ i386 4.0.2-8.fc4 updates-released 307 k libtermcap i386 2.0.8-41 base 13 k mktemp i386 3:1.5-23 base 13 k ncurses i386 5.4-19.fc4 updates-released 1.7 M net-tools i386 1.60-52.fc4.2 updates-released 346 k pam i386 0.79-9.6 updates-released 1.9 M pcre i386 5.0-4.1.fc4 updates-released 69 k popt i386 1.10.1-22 updates-released 63 k procps i386 3.2.5-6.3 updates-released 201 k psmisc i386 21.5-5 updates-released 41 k sed i386 4.1.4-1 base 199 k shadow-utils i386 2:4.0.12-8.FC4 updates-released 862 k sysklogd i386 1.4.1-30 base 70 k termcap noarch 1:5.4-7fc4 updates-released 263 k util-linux i386 2.12p-9.14 updates-released 1.6 M zlib i386 1.2.2.2-5.fc4 updates-released 48 k Закончилось правда: Failed to start vserver 'gast' 'vserver ... suexec' is supported for running vservers only; aborting... 'vserver ... suexec' is supported for running vservers only; aborting... 'vserver ... suexec' is supported for running vservers only; aborting... 'vserver ... suexec' is supported for running vservers only; aborting... Но это не страшно - сервер то у нас не запущен :) # vserver gast start /proc/uptime can not be accessed. Usually, this is caused by procfs-security. Please read the FAQ for more details http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ Failed to start vserver `gast' Фактически сервера (реальный и виртуальный) не поделили /proc Впочем это лечится: # service vprocunhide start Fixing /proc entries visibility... [ OK ] Ну а теперь: # vserver gast start Bringing up loopback interface: Device lo does not seem to be present, delaying initialization. [FAILED] Starting system logger: [ OK ] Starting kernel logger: [ OK ] Mounting other filesystems: [ OK ] Ну?! Мы в шаге от миллиона?! Проверим... # ping xxx.xx.xxx.xxx PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 56(84) bytes of data. 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 ttl=64 time=0.104 ms Замечательно! Сервер жив и стартанул! Теперь его надо как нибудь сконфигурячить ;) # vserver gast enter bash-3.00# bash-3.00# pwconv bash-3.00# pwck user adm: directory /var/adm does not exist user news: directory /etc/news does not exist user uucp: directory /var/spool/uucp does not exist user gopher: directory /var/gopher does not exist user ftp: directory /var/ftp does not exist pwck: no changes bash-3.00# passwd root bash: passwd: command not found :( bash-3.00# logout Плохо, что не поставился. Неправильно это. # vyum gast -- install passwd В принципе в виртуальный сервер можно и сам yum зафигачить, но мы же сервера клиентам отдавать будем. А вот им yum-а не надо ;) Впрочем неизвестно, по сути, нужен ли там root как факт... С другой стороны логины пользователям надо как то раздавать. 2. Поднимаем хостинг Нам небходимо дать пользователю два сервиса - http и ftp # vyum gast -- install httpd vsftpd php mysql ... И прочая, прочая.... На ваш вкус и потребности. Далее настраиваем одного пользователя. Для этого стандартно добавляем его в систему, добавляем его в группу apache и в /etc/passwd прописываем его домашний каталог, как /var/www/html. [INS: Вообще стараемся максимально и универсально настроить виртуальный сервер.:INS] Можно сказать, что мы сделали "болванку" для других серверов. Но ее нужно научиться клонировать. Для этого идем на http://www.micropp.se/vserver/ и скачиваем два скрипта vcopy и vrescue. После этого нам надо их сделать исполняемыми и скопировать куда-нибудь в $PATH. Я скопировал в /usr/local/bin # vcopy gast newhost --ip=aaa.bbb.ccc.ddd --dev=eth0 \ --alias=newhost --hostname=newhost.tld --coldcopy --skel где: * ip - IP-адрес нового сервера * dev - интерфейс на котором будет висеть сетевой псевдоним * alias - имя псевдонима * hostname - имя хоста * coldcopy - останов сервера-источника (впрочем он поднятым не нужен в обычное время) * skel - копирование без конфигов После этого можем этот новый сервер стартовать, заходить в него и настраивать по вкусу и потребностям.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру