Management and Repository for FreeBSD Jails

Внимание! Данные страницы описывают cbsd версии 10.0.3. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Конфигурации клетки

Команда jconfig, jset

                        % cbsd jconfig
                        % cbsd jset
                

Описание:

Конфигурирование параметров jail

Каждая клетка cbsd хранит настройки в SQLite3 базе. Помимо этого, в каталоге $workdir/jails-fstab/ могут быть fstab файлы (см. ниже). Для изменения настроек клетки может служить команда cbsd jconfig, запускающая TUI меню для изменения основных параметров.

IP адреса клеток

IP адреса, которые привязываются к клетке, указываются в параметре ip4_addr. В качестве IP могут выступать как IPv4, так и IPv6 адреса. При запуске и останове клетки, работа с IP может проходить в двух режимах:

  • автоматическое создание на-лету IP адресов для клетки в момент запуска и автоматическое удаление IP с интерфейса при останове
  • использование ранее иницииализированных IP адресов.

Если клетке назначаются более одного адреса, они должны быть указаны через запятую без пробелов. IP могут содержать префикс сети, указанный через IP/prefix. По-умолчанию, alias создается с префиксом /32, что может не подходить, если jail использует подсеть отдельную от сети сервера — в этом случае, корректный /prefix необходим.

interface является параметром, который управляющий этим поведением. Если он установлен в значение 0, то при jstart и jstop не будут вызываться ifconfig alias и ifconfig -alias соответственно. Если его значение равно auto или имени физического интерфейса (например bce0), то перед запуском клетки будет вызвана команда

                        % ifconfig interface ips alias
                

а при остановке —

                        % ifconfig interface ips -alias
                

Будьте предельно аккуратны с этим параметром. Если в наличие есть только 1 IP сервера, который используется и основной системой и этот же IP назначается клетке, убедитесь, что interface выставлен в значение 0, иначе при остановки клетки, единственный ip адрес сервера будет удален автоматически и сервер станет недоступен. Например, чтобы запустить конфигуратор для клетки jail1, выполните:

                        % cbsd jconfig jname=jail1
                

Монтирование файловых систем в jail

Каждый jail может иметь свой fstab файл, в котором перечисляются файловые системы, монтирующиеся в jail при запуске клетки. Системные записи (ими управляет cbsd и править этот файл ненадо) располагаются в файле $workdir/jails-fstab/fstab.name и совпадает по синтаксису с форматом системного файла /etc/fstab с тем исключением, что в качестве точки монтирования указывается путь относительно корня JAIL, а не мастер системы. Для пользовательских записей, вы можете использовать файл в том же каталоге с расширением .local. Например, если вы хотите сделать между клетками jail1 и jail2 один общий каталог (через nullfs), который физически расположен в мастер ноде (например /usr/home/sharefs), в файлах $workdir/jails-fstab/fstab.jail1.local и $workdir/jails-fstab/fstab.jail2.local должна присутствовать строчка:

                        /usr/home/sharefs /usr/home/sharefs nullfs rw 0 0
                

если вы хотите смонтировать в каталог /tmp клетки jail1 tmpfs (те, фактически в /usr/jails/jails/jail1/tmp), то запись в $workdir/jails-fstab/fstab.jail1.local должна выглядить так:

                        tmpfs /tmp tmpfs rw 0 0
                

Если вы хотите смонтировать в jail2 каталог из jail1, путь к jail1 должен указывать на каталог содержащий данные jail1 (а их точки монтирования ${workdir}/jails/jail1). Например запись в $workdir/jails-fstab/fstab.jail2.local:

                        /usr/jails/jails-data/jail1-data/usr/local/www /usr/local/www nullfs ro 0 0
                

Сделает каталог /usr/local/www между jail1 и jail2 общим, но в jail2 он будет в режиме read-only

Презентация ZFS файловых систем в jail

Если вы хотите привязать отдельные ZFS файловые системы в jail ( тоесть, хотите иметь возможности внутри jail выполнить zfs mount ), список ZFS необходимо перечислить в $workdir/jails-fstab/fstab.$jname.local файле, указав в поле FStype ключевое слово zfs. Например, если вы хотите презентовать файловую систему ZFS: zroot/jail1_webfs для клетки jail1, запись в $workdir/jails-fstab/fstab.jail1.local должна выглядеть так:

                        zroot/jail1_webfs /usr/home/web zfs rw 0 0
                

Примечание: точка монтирования (/usr/home/web в данном примере) роли не играет

Примечание2: клетка должна иметь параметр allow_zfs установленным в 1, что можно сделать через cbsd jconfig jname=$jname

Фактически, это заставляет cbsd выполнить команды:

                        % zfs set jailed=on $FS
                        % zfs jail $jname $FS
                        

при старте клетки, и

                        % zfs set jailed=off $FS
                        % zfs unjail $jname $FS
                

при ее остановке.

Изменение параметров через jset

Другая возможность изменить определенные параметры клетки — воспользоваться командой cbsd jset Полный список возможных аргументов можно получить через --help:

                        % cbsd jget --help
                

Например, поменять ip адрес для клетки jail1:

                        % cbsd jset jname=jail1 ip4_addr="10.0.0.20/24,192.168.0.20/24" 
                

 

cbsd jconfig jname=jail2

cbsd jset