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.

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