суббота, 11 августа 2012 г.

Ezjail - легкое управление клетками в FreeBSD

Плюсы ezjail:

  • экономия места за счет создания базовой клетки на основе которой создаются все остальные (к примеру, директория basejail занимает 1,1 гигабайта, а вновь созданная клетка до запуска - 3 мегабайта), 
  • возможность легкого обновления клеток за счет обновления базовой клетки,
  • возможность базовой конфигурации новых клеток за счет использования шаблонов flavours,
  • автоматическое создание клеток в виртуальных дисках,
  • облегчение административных задач.

Пошаговая инструкция по запуску клеток с помощью ezjail:

1. Обновляем базовую систему из исходников. Кроме того, необходимо все возможные сервисы повесить на конкретные IP-адреса чтобы в будущем не было конфликтов сервисов запущенных в базовой системе и в клетках. Такими сервисами могут быть ftpd, sshd, dhcpd, syslogd, natd и прочие.

2. Устанавливаем ezjail из портов.
cd /usr/ports/sysutils/ezjail
make && make install
3. Создаем шаблон из которого будут создаваться клетки.

Тут есть два способа: скачать систему в виде бинарников или использовать, собранный в процессе обновления базовой системы, мир.

Способ первый:
ezjail-admin install -pm
Скачаются бинарники с FTP и будет создана базовая клетка, в том числе система портов (-p) и страницы man (-m).

Способ второй:
ezjail-admin update -pi
Базовая клетка будет создана с помощью "make installworld". Это возможно в случае, если в базовой системе предварительно была выполнена команда "make buildworld", к примеру, в процессе обновления. Если же требуется собрать мир заново, то следует указать опцию -b.

Базовая клетка будет создана в директории /usr/jails/basejail/

4. Создаем необходимые клетки.

Минимальным набором параметров для создания клетки является имя клетки и IP-адрес. Клетка создается в директории с именем совпадающем с именем клетки в директории /usr/jails/. Также при создании производится проверка, добавлен ли указанный IP в систему. Используется команда вида:
ezjail-admin create name ip
К примеру:
ezjail-admin create japache 192.168.0.101
5. Запускаем систему jail.

Для автоматического старта после перезапуска добавляем необходимую строку в rc.conf:
echo 'ezjail_enable="YES"' >> /etc/rc.conf
После этого запускаем службу следующей командой:
/usr/local/etc/rc.d/ezjail start
Также мы можем запустить конкретную клетку:
/usr/local/etc/rc.d/ezjail start japache
Также остановить/перезапустить командами stop/restart.

Узнать список запущенных клеток можно командой jls. Подключиться к клетке - командой jexec jid csh.

Вот и всё, что нужно для старта клетки. Однако есть ряд других возможностей.

Удаление клеток.
ezjail-admin delete [-w] name
Если Вы просто удаляете клетку, то её файлы сохраняются. Это можно использовать для того, чтобы пересоздать клетку с другим именем или IP-адресом, к примеру.

Параметр -w не обязательный, его необходимо использовать если вы хотите удалить клетку безвозвратно вместе с файлами.

Для того, чтобы пересоздать клетку с имеющимися файлами, используйте команду вида:
ezjail-admin create -x [-r jaildir] name ip
Параметр -x говорит о том, что клетку нужно пересоздать с заданными параметрами.

Параметр -r jaildir не обязательный. Его можно использовать, если вы хотите создать пересоздать клетку с новым именем в старой директории. jaildir - имя директории, содержащей клетку, в директории /usr/jails/ (по умолчанию).

Flavours.

Данная система позволяет при создании клетки добавить в неё конфигурационные файлы из заранее созданного шаблона в директории /usr/jails/flavours. Шаблон представляет собой набор директорий и файлов, которые будут добавлены в клетку. Также можно создать файл ezjail.flavours который запустится при первом запуске клетки и произведет некоторые действия, к примеру, добавит нужных пользователей или установить нужные пакеты. Почерпнуть информацию о нем можно в файле-примере, который располагается в директории /usr/jails/flavours/example/etc/rc.d

Чтобы применить flavour при создании клетки необхоимо использовать параметр -f flavour

Что ещё.

Файлы конфигураций клеток, созданных ezjail, хранятся в директории /usr/local/etc/ezjail

Ezjail позволяет создавать клетки на основе виртуальных дисков заданного объема.

Ezjail позволяет использовать файловую систему ZFS для каждой клетки в отдельности.

Существует конфигурационный файл ezjail.conf в директории /usr/local/etc/ в котором содержатся основные настройки системы ezjail.

Смотрите также остальные статьи про jail:

Создание и настройка jail окружения в FeeBSD

Настройка и управление jail в FreeBSD.

Ограничение ресурсов jail в FreeBSD (память, процессор, жесткий диск)

0 коммент.:

Отправить комментарий