FreeBSD virtual environment management and repository

2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !

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

Другие методы создание jail

Команда jcreate, часть 2

                % cbsd jconstruct
                
                % cbsd jcreate jconf=/path/to/conf.jconf
                
Описание:

Если DIALOG-based скрипт jconstruct-tui по каким-то причинам не подошел, для конфигурации новой клетки можно воспользоваться скриптом-диалогом вида "вопрос-ответ" jconstruct:

                   % cbsd jconstruct
                

Который задает те же вопросы, что и tui-версия.

Также, можно обойтись формированием конфигураций без вспомогательных интерактивных утилит, например для создания систем, автоматически создающих необходимые клетки.

Пример стандартной конфигурации для jcreate может выглядеть так:

                jname="jail1";
                path="/usr/jails/jails/jail1";
                host_hostname="jail1.my.domain";
                ip4_addr="10.0.0.24/24";
                mount_devfs="1";
                allow_mount="1";
                allow_devfs="0";
                allow_nullfs="0";
                mount_fstab="/usr/jails/jails-fstab/fstab.jail1";
                arch="amd64";
                mkhostsfile="1";
                devfs_ruleset="4";
                ver="10.0";
                basename="";
                slavenode="0";
                baserw="0";
                basename="";
                mount_src="0";
                mount_obj="";
                mount_kernel="0";
                mount_ports="1";
                astart="1";
                data="/usr/jails/jails-data/jail1-data";
                vnet="0";
                applytpl="1";
                mdsize="0";
                rcconf="/usr/jails/jails-rcconf/rc.conf_jail1";
                floatresolv="1";
                exec_start="/bin/sh /etc/rc";
                exec_stop="/bin/sh /etc/rc.shutdown";

                exec_poststart="0";
                exec_poststop="0";
                exec_prestart="0";
                exec_prestop="0";

                exec_master_poststart="0";
                exec_master_poststop="0";
                exec_master_prestart="0";
                exec_master_prestop="0";
                interface="auto";
                jailskeldir="${sharedir}/jail-skel"
                

Обратите внимание на параметры arch и ver. Значения в них могут быть "i386", "amd64" для архитектуры и "9.2", "10.0", "10.1" "11" и тд , в зависимости от той версии базы, которую вы предпочтете для клеток. Значение native в этих параметрах заставляет CBSD брать всегда ту версию и архитектуру, на которой запущена нода, что делает версию плавающей. Так, если вы используйте темплейт с arch="native", ver="native" и перейдете с FreeBSD 10.2 на 11.0, то будет использоваться база 11.0. Если вы хотите зафиксировать конкретную версию - указывайте версию вместо native.

Если вы хотите, чтобы при создании клетки также устанавливался какие-то пакеты из pkg репозитория, в этой конфигурации должен присутствовать параметр pkglist указывающий на файл со списком пакетов, например:

                pkglist="/tmp/newjail.txt";
                

Файл /tmp/newjail.txt может выглядеть так:

                mc
                lynx
                nginx-devel
                lsof
                

 

cbsd jcreate удаляет файл, указанный в pkglist после создания клетки

Внимание!

При создании новой клетки или получения ее из репозитория, возьмите за правило ВСЕГДА перебивать пароль пользователя root в клетке, даже если не планируете запускать в ней ssh/ftp/rsh и тому подобные сервисы.

Если клетка создается с applytpl=0, то по-умолчанию файлы /etc/{passwd,master.passwd,group} в клетке соответствуют оригинальным "чистым" файлам FreeBSD, те, пароль root пуст. При applytpl=1 а также при построении клеток для репозитория используется темплейт из $workdir/share/jail-skel, в котором хеш рута соответствует паролю CBSD в инсталляции CBSD по-умолчанию. Вы можете изменить стандартный пароль рута для создаваемых новых клеток, изменив хэш в skel-файле master.passwd через команду:

        % vipw -d ${workdir}/share/jail-skel/etc
        

либо, указывать альтернативный путь в jail-skel каталогу в .jconf (утилита jcreate) конфиге.

По-умолчанию, каталог указанный в jailskeldir будет использован как источник файлов, которые будут добавлены (или ими будут перезаписаны стандартные файлы) в клетку автоматически, при applytpl=1.

Соответственно, вы можете создавать любые шаблоны конфигураций и содержимое окружений, которые будут копироваться при создании новой клетки.