Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update jail with baserw=0 #363

Closed
Peter2121 opened this issue Dec 12, 2018 · 9 comments
Assignees

Comments

@Peter2121
Copy link

@Peter2121 Peter2121 commented Dec 12, 2018

Mandatory info for bug reports:

FreeBSD version ( uname -a ): 11.2-RELEASE-p5

CBSD version ( cbsd version ): 12.0.3

В соответствии с инструкцией https://www.bsdstore.ru/en/12.0.x/wf_jupgrade_ssi.html пытаюсь обновить 11.2 jail с baserw=0. Базу изначально скачал с официального репозитория:
cbsd repo inter=0 action=get sources=base ver=11.2
Получил world 11.2-RELEASE.
Пытаюсь обновить по инструкции:
cbsd repo action=get sources=base mode=upgrade
Снова скачивается и разархивируется тот же world.
На хосте 11.2-RELEASE-p5.
Как получить 11.2-RELEASE-p5 в базе jail'а?

@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Dec 12, 2018

Я не слышал/не знаю, выкладывают ли release engineer архивы base.txz именно с path-level, -p1, -p2. Все что доступно cbsd - это официальный ftp.freebsd.org, оттуда и тащит.

http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/11.2-RELEASE/

Я предполагаю, что это base.txz на момент среза/релиза и больше его не трогают.

Учитывая, что basejail это просто chroot/rootfs каталог с полной иерархией, один из вариантов сопровождать патчи - это пользоваться freebsd-update. Тут я описывал пример ( https://www.bsdstore.ru/en/12.0.x/wf_jupgrade_ssi.html#freebsd-upgrade ).

Ну и вариант, который в cbsd по-дефолту с самого начала - это компиляция из сырцов:

cbsd srcup ( счекаутит к ~cbsd/src/ дерево сырцов )
cbsd world ( по сути это cbsd buildworld + cbsd installworld )

@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Dec 12, 2018

upd: у меня в планах ввести поддержку обновления base-in-packages ( https://wiki.freebsd.org/PkgBase ), я с этим уже 4 года живу и успешно обновляю базовую систему, но пока нет времени чтобы сделать в cbsd

@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Dec 12, 2018

ну и еще дополню для информации - в CBSD можно кастомизировать репозиторий, откуда брать base.txz. Те, если инфраструктура больше чем 1 локалхост, то вполне разумно выделить какую-то машинку на сборку своих base.txz чтобы не зависить от внешних проектов и состояния инфраструктуры FreeBSD + иметь доверенную сборк. И все машинки натравить на свой собственный http:// куда складировать base.txz, с любым уровнем патчей

@Peter2121

This comment has been minimized.

Copy link
Author

@Peter2121 Peter2121 commented Dec 12, 2018

Ну, то что base.txz может быть с обновлениями - на эту мысль меня натолкнул тот факт что при установке новой системы она уже со всеми патчами базы сразу. Но не исключено что во время установки там вызывается апдейт.

Учитывая, что basejail это просто chroot/rootfs каталог с полной иерархией, один из вариантов сопровождать патчи - это пользоваться freebsd-update.

Было бы круто обернуть это в cbsd ;)

если инфраструктура больше чем 1 локалхост, то вполне разумно выделить какую-то машинку на сборку своих base.txz

Это в планах :)

@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Dec 12, 2018

Кстати да, дельная мысль после фетча применить freebsd-update :-)

@Peter2121

This comment has been minimized.

Copy link
Author

@Peter2121 Peter2121 commented Dec 12, 2018

Не, ну это тоже неплохо, но я имел в виду что можно предусмотреть команду cbsd для апдейта базы, со всеми необходимыми отмонированиями и примонтированиями.

@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Dec 12, 2018

Кажется, Goran Mekić это делал - он вливал https://github.com/cbsd/cbsd/blob/develop/tools/baseupdate скрипт. Но я не пользовался этим и вроде Горан говорил что там есть что доделывать.
Но спс за предложение - посмотрю что можно улучшить, такие брейнштормы оч полезны проекту)

@olevole olevole self-assigned this Dec 14, 2018
olevole added a commit that referenced this issue Jan 12, 2019
FreeBSD does not post/update base.txz for patch-level (-p1, -p2, -p3).
so we get only RELEASE version of bases, which may not contain [security] patches.
by having baseupdate script to fetch and apply patch via freebsd(hbsd)-update, we can
automatically try to update downloaded base using this script.

now this behavior is regulated by auto_baseupdate= variables (0 - disabled, by default).
To enable this features, user can overwrite this in the appropriate config files:

echo "auto_baseupdate=1" >> ~cbsd/etc/FreeBSD-bases.conf for FreeBSD platform
echo "auto_baseupdate=1" > ~cbsd/etc/HardenedBSD-bases.conf for HBSD

Issue #363
@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Jan 12, 2019

Добавлена конфига в etc/defaults/FreeBSD-bases.conf: https://github.com/cbsd/cbsd/blob/develop/etc/defaults/FreeBSD-bases.conf

в которой имеется регулятор желаемого поведения:

auto_baseupdate=[0|1] , которую можно переназначить через etc/FreeBSD-bases.conf.

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

  • немного переработана обработка источников для забора base.txz в рамках этой таски: #367

  • baseupdate я проверил и немного запатчил как надо. В 12.0.4 будет входить

@olevole olevole closed this Jan 12, 2019
@olevole

This comment has been minimized.

Copy link
Collaborator

@olevole olevole commented Feb 16, 2019

commited to ports tree: 12.0.4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.