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 через dialog меню

Команда jcreate, jconstruct-tui

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

Клетка создается по заранее сформированному конфигурационному файлу через cbsd jcreate jconf=path_to_cfg. Для формирования конфигурации, можно воспользоваться cbsd jconstruct (в режиме диалога вопрос-ответ), либо через dialog(1) интерфейс cbsd jconstruct-tui, либо через WEB интерфейс. При корректно настроеном pkg.conf и рабочем репозитории, есть возможность предустановить в клетку готовые пекеджи, маркировав их через pkglist меню. В целях безопасности, рекомендуется использовать официальный pkg репозиторий FreeBSD или создавать свои собственные версии сборок ПО.

Примечание: если репозиторий недоступен, пункт pkglist при cbsd jconstruct-tui диалога выбора пекеджей не выведет.

Примечание: мульти-репозитории и возможность их выбора при создании клетки пока не реализовано, используется репозиторий из основного pkg.conf.

Внимание! Поскольку список и выбор пекеджей формируется по pkg.conf мастер машины, имейте ввиду, что наполнение выбранных пекеджей по списку сработает лишь в том случае, если архитектура и версия клетки совпадает с нодой.

Используйте возможности профилей:

Если вы не пользуйтесь автоматизацией (Puppet, Ansible, собственная генерация jconf) по созданию окружений и вам приходится создавать контейнера с отличающимися параметрами, используйте возможность создать собственный профиль для переопределения значений по-умолчанию. Вы можете переопределить любой параметр - предлагаемый темплейт имени, версию, привязку к конкретному интерфейсу вместо 'auto' и т.д.

Для создания через DIALOG:

		% cbsd jconstruct-tui
		

Это же меню для создания jail доступно при конфигурировании CBSD через bsdconfig

Пускай вас не пугает небольшое ;-) количество настроек в jconstruct-tui - здесь выведены только самые важные, подходящие для большинства людей. Если вам нужно более гибкая настройка - используйте cbsd jconfig после создания окружения

Если jconstruct-tui отработала корректно, по окончанию будет задан вопрос о создании клетки. В случае положительно ответа, jcreate будет выполнен на новую конфигурацию автоматически. В противном случае, скрипт выведет путь к конфигурационному файлу (в $workdir/tmp), по которой можно создать клетку.

Внимание!

При создании новой клетки или получения ее из репозитория, возьмите за правило ВСЕГДА перебивать пароль пользователя 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="$workdir/share/jail-skel", прописанный в $workdir/etc/defaults/jail-freebsd-default.conf для указания альтернативного каталога темплейтов, файлы в котором перезапишут оригинальные файлы базы при создании клетки. Для этого, создайте файл jail-freebsd-XXXXX.conf в каталоге $workdir/etc и впишите свое значение.

Подробнее смотрите: Профили для создания jail

Пример (заполнение jname, fqdn, ips полей + GO):

		% cbsd jconstruct-tui
		

Если репозиторий сконфигурирован корректно, можно выбрать пекеджи на установку. Используйте первый символ названия порта для более быстрого поиска и пробел для маркировки:

Обязательное поле для заполнения: короткое (одним словом) имя клетки. Это имя будет использоваться для идентификации jail:

Обязательное поле для заполнения: полное (с доменом) имя клетки. Это имя будет использовано как hostname клетки:

Обязательное поле для заполнения: IP адрес клетки. Может иметь сетевой префикс через запись вида IP/prefix.

Для установки более одного IP адреса, воспользуйтесь редактированием файла rc.conf клетки, описанным в конфигурации клетки

При вызове пункта GO, система предложит создать клетку немедленно, автоматически запустив cbsd jcreate jconf=... В противном случае, будет выведен путь к сохраненной конфигурации для запуска команды cbsd jcreate вручную: