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. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Синтаксис команд CBSD

Все команды начинаются с префикса cbsd (если вы не в CBSD CLI) и должны выполнятся от пользователя root:

		% cbsd jls
		% cbsd jstop jname
		% cbsd jstart jname
		% cbsd node mode=list
		...
	

Команды CBSD могут принимать аргументы, записываемые в виде «param=value».

CBSD команды могут иметь как обязательные аргументы, так и аргументы, являющие опциональными. Порядок аргументов роли не играет.

Аргументы команд и описание

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

		% cbsd <cmd> --help
	

Например, получить справку по jls:

		% cbsd jls --help
	

Результат:

	[jail] List jail and status
	require: 
	opt: alljails shownode display node header
	alljails=1 - get jaillist from remote node
	shownode=1 - show nodename for jails
	node= only for current node
	header=0 don't print header
	display= list by comma for column. Default: jid,jname,ip4_addr,host_hostname,path,status
	External help: http://www.bsdstore.ru/10.0.2/html/wf_jls_en.html
	

В первой строчке в квадратных скобках указывается имя модуля, к которому относится команда ( jail в данном случае ), а также краткая информация по функциям.

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

В строчке с opt: перечисляются необязательные аргументы ( тем не менее, в зависимости от режима работы утилиты, в разных случаях они могут быть обязательны )

В следующих строчках идет краткое описание аргументов, если она есть.

Также, может присутствовать ссылка на документацию ( External help ). Она может указывать как на сайт, так и на локальный файл, если устанавливалась документация.

Некоторые команды, ожидающие в качестве параметра имя клетки, могут быть интерактивные, выведя список клеток (в том числе на удаленных нодах ) на выбор. Для этого, достаточно просто запустить команду без аргумента. Примеры этих команд:

cbsd jlogin, cbsd blogin, cbsd jconfig, cbsd bconfig, cbsd jstop, cbsd bstop, cbsd jstart, cbsd bstart и тд.

Кроме этого, CBSD инсталлируется в виде модуля для базовой утилиты bsdconfig (добавляет себя в конце списка), в который сгруппированы некоторые -tui утилиты, поэтому, некоторые элементы управления CBSD вы можете выполнять через диалоговый интерфейс, запустив bsdconfig cbsd

Интерактивность, цвет в выводе результата

По-умолчанию, вывод в консоль производится в цветном режиме. Если цвет вам мешает (например, вы используете какие-то свои сценарии для работы с CBSD командами), вы можете использовать в переменной окружения параметр NOCOLOR=1

		% cbsd jls
		% env NOCOLOR=1 cbsd jls
	

Некоторые команды могут быть интерактивны - в процессе работы задать корректирующий вопрос. Например, если вы запускаете jail, требующий базу FreeBSD 10.1 и этой базы у вас нет, CBSD задаст вопрос на скачивание базы

Это поведение может быть не подходящее, если вы пишите свои скрипты вокруг CBSD. В этом случае, вы можете дописывать параметр inter=0 в каждой команде. Это заставляет CBSD принять решение по-умолчанию, когда возникает вопросительная ситуация

		% cbsd jstart inter=0 jname=XXX
		% cbsd jcreate inter=0 jconf=/path/to/jconf
	

Debug отработки CBSD команд

Для включения дебага через sh xtrace и трассировки операций, используйте переменную окружения CBSD_DEBUG, например:

		% env CBSD_DEBUG=1 cbsd node mode=add node=192.168.1.222 pw=very_strong_plain_password port=22
		% env CBSD_DEBUG=1 cbsd jls
	

Вывод в XML, JSON, HTML и человеческом формате

Начиная с версии 10.1.5, CBSD может выводить информацию не только в понятном человеческом формате, но и в HTML, XML и JSON для более удобного машинного парсинга и просто на радость киборгов