Warning: Undefined array key "DOKU_PREFS" in /home/virtwww/w_linko22-ru_c0d3353b/http/inc/common.php on line 2082
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
freebsd:dev [2011/01/21 13:54] linko22@gmail.com |
freebsd:dev [2011/01/24 14:59] (текущий) linko22@gmail.com |
||
---|---|---|---|
Строка 29: | Строка 29: | ||
- | ====== Настройка джейлов ====== | + | ====== Настройка |
Для настройки джейлов будем использовать свежеустановленный сервер с FreeBSD. Кто то использует vim или vi, кто то nano, мне удобно пользоваться встроенным редактором в mc. | Для настройки джейлов будем использовать свежеустановленный сервер с FreeBSD. Кто то использует vim или vi, кто то nano, мне удобно пользоваться встроенным редактором в mc. | ||
Поставим порт управления джейлами | Поставим порт управления джейлами | ||
- | cd / | + | |
- | make install clean | + | |
+ | |||
+ | Добавляем автозапуск джейла, | ||
+ | ezjail_enable=" | ||
+ | |||
+ | У меня на сервере самый большой размер имеет раздел /home. Поэтому, | ||
+ | [root@dev /]# cd / | ||
+ | [root@dev /]# cp ezjail.conf.sample ezjail.conf | ||
+ | |||
+ | В нем берем строку | ||
+ | ezjail_jaildir=/ | ||
+ | И приводим к виду | ||
+ | ezjail_jaildir=/ | ||
+ | Сохраняем файл и устанавливаем мир для джейлов, | ||
+ | [root@dev /]# ezjail-admin create | ||
+ | |||
+ | Он лезет в интернет и качает оттуда сборку FreeBSD под текущую систему. В принципе, | ||
+ | |||
+ | Вот, все поставилось, | ||
+ | |||
+ | Суть управляющего джейла в чем: каждый разработчик получает в свое пользование полноценную машину с рутовыми правами. Надо оно ему, или не надо, это уже зависит от конкретного разработчика. Соответственно, | ||
+ | Все это работает как. Согласно документации и тому как делаются джейлы посредством использования утилиты ezjail-admin, | ||
+ | |||
+ | Но мы пойдем немного дальше. В текущей статье, | ||
+ | |||
+ | ====== Установка первого джейла ====== | ||
+ | |||
+ | Рассмотрим очевидное решение, | ||
+ | |||
+ | Для начала создадим управляющий джейл. | ||
+ | [root@dev /]# ezjail-admin create hq.local 10.8.0.200 | ||
+ | |||
+ | Лежать он будет по пути / | ||
+ | Создаем каталог и сопутствующие подкаталоги | ||
+ | [root@dev /]# mkdir / | ||
+ | В нашем случае, | ||
+ | |||
+ | Все точки монтирования определяются файлами / | ||
+ | |||
+ | В нашем случае, | ||
+ | |||
+ | Его содержимое по умолчанию | ||
+ | |||
+ | / | ||
+ | |||
+ | Для нашего случая, | ||
+ | |||
+ | / | ||
+ | |||
+ | Т.е. для управляющего джейла мы его будем монтировать в режиме чтение-запись, | ||
+ | |||
+ | / | ||
+ | |||
+ | Так же, нам нужно будет работать с портами. Для этого удаляем симлинк с портами в джейле и делаем из него папку, что бы потом просто монтировать папку с портами в джейл. | ||
+ | |||
+ | [root@dev /]# rm / | ||
+ | |||
+ | Так же прописываем это в / | ||
+ | /usr/ports / | ||
+ | |||
+ | Запускаем непосредственно джейл | ||
+ | |||
+ | [root@dev /]# / | ||
+ | |||
+ | И смотрим в списках джейлов, | ||
+ | |||
+ | [root@dev /]# jls | ||
+ | | ||
+ | | ||
+ | |||
+ | Заходим в него | ||
+ | |||
+ | [root@dev /]# jexec 1 tcsh | ||
+ | hq# | ||
+ | |||
+ | Все, мы в джейле. | ||
+ | |||
+ | ====== Настройка управляющего джейла ====== | ||
+ | |||
+ | Для того, что бы все установленные порты могли использоваться другими джейлами надо создать несколько симлинков. | ||
+ | |||
+ | #hq cd / | ||
+ | #hq ln -s / | ||
+ | |||
+ | Т.е. фактически, | ||
+ | |||
+ | Для установки портов я использую локальную копию портов и его же локальный кеш distfiles, что бы не качать одни и те же порты, что уже и так есть у меня, когда я настраивал основную систему. Для этого надо подправить один файл, / | ||
+ | # | ||
+ | |||
+ | И, соответственно, | ||
+ | |||
+ | ====== Джейлы разработчиков ====== | ||
+ | |||
+ | Создаются по такому же принципу, | ||
+ | ====== Подводные камни ====== | ||
+ | |||
+ | Масса. | ||
+ | |||
+ | Во первых, | ||
+ | |||
+ | В каталоге / | ||
+ | |||
+ | #hq mkdir / | ||
+ | #hq touch / | ||
+ | #hq cd / | ||
+ | |||
+ | Далее. При установке какого нибудь дополнительного порта, необходимо в каждом джейле запускать / | ||
+ | |||
+ | Например, | ||
+ | |||
+ | # | ||
+ | |||
+ | jls | grep user | awk '{ system( "jexec " | ||
+ | |||
+ | То же самое относиться к апачу | ||
- | Далее, надо установить мир для джейлов, | + | #!/bin/csh |
- | | + | |
+ | jls | grep user | awk '{ system( "jexec " | ||
- | Он лезет в интернет и качает оттуда сборку FreeBSD под текущую систему. В принципе, | ||
+ | Ну, и конечно, | ||
====== Настройка bind ====== | ====== Настройка bind ====== |