Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
freebsd:dev [2011/01/21 14:53] 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. Поэтому, | У меня на сервере самый большой размер имеет раздел /home. Поэтому, | ||
| - | cd / | + | |
| - | cp ezjail.conf.sample ezjail.conf | + | |
| В нем берем строку | В нем берем строку | ||
| Строка 45: | Строка 49: | ||
| ezjail_jaildir=/ | ezjail_jaildir=/ | ||
| Сохраняем файл и устанавливаем мир для джейлов, | Сохраняем файл и устанавливаем мир для джейлов, | ||
| - | ezjail-admin create | + | |
| Он лезет в интернет и качает оттуда сборку FreeBSD под текущую систему. В принципе, | Он лезет в интернет и качает оттуда сборку FreeBSD под текущую систему. В принципе, | ||
| Строка 55: | Строка 59: | ||
| Но мы пойдем немного дальше. В текущей статье, | Но мы пойдем немного дальше. В текущей статье, | ||
| + | |||
| + | ====== Установка первого джейла ====== | ||
| Рассмотрим очевидное решение, | Рассмотрим очевидное решение, | ||
| + | |||
| + | Для начала создадим управляющий джейл. | ||
| + | [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 /usr/local/ | ||
| + | #hq ln -s / | ||
| + | |||
| + | Т.е. фактически, | ||
| + | |||
| + | Для установки портов я использую локальную копию портов и его же локальный кеш distfiles, что бы не качать одни и те же порты, что уже и так есть у меня, когда я настраивал основную систему. Для этого надо подправить один файл, / | ||
| + | # | ||
| + | |||
| + | И, соответственно, | ||
| + | |||
| + | ====== Джейлы разработчиков ====== | ||
| + | |||
| + | Создаются по такому же принципу, | ||
| + | ====== Подводные камни ====== | ||
| + | |||
| + | Масса. | ||
| + | |||
| + | Во первых, | ||
| + | |||
| + | В каталоге / | ||
| + | |||
| + | #hq mkdir / | ||
| + | #hq touch / | ||
| + | #hq cd / | ||
| + | |||
| + | Далее. При установке какого нибудь дополнительного порта, необходимо в каждом джейле запускать / | ||
| + | |||
| + | Например, | ||
| + | |||
| + | #!/bin/csh | ||
| + | | ||
| + | jls | grep user | awk '{ system( "jexec " | ||
| + | |||
| + | То же самое относиться к апачу | ||
| + | |||
| + | #!/bin/csh | ||
| + | | ||
| + | jls | grep user | awk '{ system( "jexec " | ||
| + | Ну, и конечно, | ||
| ====== Настройка bind ====== | ====== Настройка bind ====== | ||