LINUX.ORG.RU

Общие /var /etc для нескольких boot environments

 , ,


0

1

(для нескольких экземпляров / на одной ЭВМ: от снепшотов одной системы (как минимум) до разных неродственных дистрибутивов (как максимум))

Я так понимаю, в debian/ubuntu это не реально, т.к. systemd там собирается с отключённым systemd-sysusers.service, и sysusers.d для создания системных пользователей не используется. Поэтому несколько систем передерутся за /etc/passwd: если в двух системах есть пакет с демоном, которому нужен пользователь и этот пакет удаляется в одной из систем, то из /etc/passwd выпилится запись о пользователе и при перезагрузке во вторую систему выйдет лажа.

Насколько реально это в RHEL/её производных?

Никак.

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

Во-вторых разные наборы пакетов могут быть взаимоисключающими.

В-третьих количество и содержимое файлов может СИЛЬНО отличаться в разных дистрибутивах. В частности ты сильно огребёшь с shadow, fstab.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

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

И для многих пакетов проверяются хеши файлов в /var и /etc?

Во-вторых разные наборы пакетов могут быть взаимоисключающими.

Поясни.

utf8nowhere ★★★ ()
Ответ на: комментарий от utf8nowhere

И для многих пакетов проверяются хеши файлов в /var и /etc?

Если какие-то файлы туда ставятся, то да. Например, awesome пишет в /etc/xdg, xorg-server пишет в /etc/X11, сертификаты и системные конфиги валятся в /etc, очень много чего. А в /var валится весь системный трэш типа кэша менеджера пакетов, логов, почты, хомяки для юзеров, привязанных к софту.

Во-вторых разные наборы пакетов могут быть взаимоисключающими.

Поясни.

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

В случае с общим хомяком для двух (и более) дистров ты просто устроишь помойку, в случае системных дир, тем более таких как /etc, /var, /lib, /usr, ты сильно рискуешь превратить оба дистра вначале в помойку, а потом и в тыкву.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

системные конфиги валятся в /etc

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

А в /var валится весь системный трэш типа кэша менеджера пакетов, логов, почты, хомяки для юзеров, привязанных к софту.

Я примерно в курсе, что куда валится. Меня интересует насколько дистрибутивы уже готовы отделять софт от конфигов и данных.

/lib, /usr

Я не собираюсь шарить /usr и /lib.

utf8nowhere ★★★ ()
Ответ на: комментарий от utf8nowhere

Товарищ, а у вас не возникает естественного желания перестать экспериментировать с данным вопросом ну просто потому, что Линукс не спроектирован и не создан для работы в таком режиме?

Могу я предложить к использованию не переключение на вторую систему использование второй системы в lxc (контейнер)?

Да и кстати, что мешает перед тем как вы переключаетесь во вторую систему сейвить конфы из етц и переносить их?

Ramirezkiv2 ()
Ответ на: комментарий от Ramirezkiv2

у вас не возникает естественного желания перестать экспериментировать

Нет.

Линукс не спроектирован и не создан для работы в таком режиме

Был не спроектирован, но это постепенно меняется. Те же sysusers.d. Только не везде есть пока.

Могу я предложить к использованию не переключение на вторую систему использование второй системы в lxc (контейнер)?

Вторая система сама нужна чтобы пускать в том числе и контейнеры.

Да и кстати, что мешает перед тем как вы переключаетесь во вторую систему сейвить конфы из етц и переносить их?

Лень за всем изменённым следить. Хочется чтобы автоматом.

utf8nowhere ★★★ ()
Ответ на: комментарий от utf8nowhere

естественное желание

Оно неестественное.

Меня интересует насколько дистрибутивы уже готовы отделять софт от конфигов и данных.

Были готовы ещё до рождения, в старых UNIX уже было. Только это не решает твоей основной проблемы.

Я не собираюсь шарить /usr и /lib.

Ну так тебе достаточно будет /etc, чтобы угробить всё.

В качестве костыля можешь попробовать решить свою хотелку через какой-нибудь overlayfs, но сам я не пробовал.

r3lgar ★★★★★ ()
Ответ на: комментарий от utf8nowhere

Да и кстати, что мешает перед тем как вы переключаетесь во вторую систему сейвить конфы из етц и переносить их?

Лень за всем изменённым следить. Хочется чтобы автоматом.

В таком случае у тебя ничего не выйдет. Совсем.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Были готовы ещё до рождения, в старых UNIX уже было.

Даже если /usr /var и /etc это отдельные каталоги и даже могут жить на разных разделах, но при этом должны довольно строго синхронно меняться, то это не отделение.

Ну так тебе достаточно будет /etc, чтобы угробить всё.

В debian и его деривативах — да. Интересно, как в RHEL.

utf8nowhere ★★★ ()
Ответ на: комментарий от r3lgar

Если какие-то файлы туда ставятся, то да. Например, awesome пишет в /etc/xdg, xorg-server пишет в /etc/X11, сертификаты и системные конфиги валятся в /etc, очень много чего.

Я тут проверил. Не очень много. Вот, из /var/lib/dpkg/info/*.md5sums

$ grep ' etc/' *.md5sums
bsdmainutils.md5sums:f499e79b0d2d685aa5ae7e1013940b96  etc/calendar/default
bsdmainutils.md5sums:559387f792462a62e3efb1d573e38d11  etc/cron.daily/bsdmainutils
bsdmainutils.md5sums:bded239f4fea461cc5c92c3bd5a28cc9  etc/default/bsdmainutils
dnsmasq-base.md5sums:9a18c8a761c2262dbf0c8b3345a85242  etc/dbus-1/system.d/dnsmasq.conf
git.md5sums:7baac5c3ced94ebf2c0e1dde65c3b1a6  etc/bash_completion.d/git-prompt
initscripts.md5sums:a50abe354f8239e49870ee9c8ae4d6e1  etc/init.d/skeleton
sysv-rc.md5sums:9192ac2265ca980a31d1553278680cc4  etc/init.d/README
sysv-rc.md5sums:b8614bbe5876cdea2410ac2f94e0645b  etc/init.d/rc
sysv-rc.md5sums:7862a970fca2cff93163ac9999619ad6  etc/init.d/rcS
sysv-rc.md5sums:3fc185419358039e85ea7e231117b02b  etc/rc0.d/README
sysv-rc.md5sums:04c254d6d998868d0db72e74f30b84d0  etc/rc1.d/README
sysv-rc.md5sums:ac1446cd28de7387e63388ad0ce833f2  etc/rc2.d/README
sysv-rc.md5sums:ac1446cd28de7387e63388ad0ce833f2  etc/rc3.d/README
sysv-rc.md5sums:ac1446cd28de7387e63388ad0ce833f2  etc/rc4.d/README
sysv-rc.md5sums:ac1446cd28de7387e63388ad0ce833f2  etc/rc5.d/README
sysv-rc.md5sums:77bf501d287d0ed2527ec54743741369  etc/rc6.d/README
sysv-rc.md5sums:a3c07be36eacceaef3a282f2d0c708bd  etc/rcS.d/README
ubuntu-keyring.md5sums:79650cd189f35a29603fc43202d399ad  etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
ubuntu-keyring.md5sums:084add0f351bb1ee052f10ba5f30aa4b  etc/apt/trusted.gpg.d/ubuntu-keyring-2004-cdimage.gpg
ubuntu-keyring.md5sums:ff826abd184f0eaf8aa2b2258badb80b  etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
ubuntu-keyring.md5sums:ad3692c3fbefd4e64e2f8a36268b959c  etc/apt/trusted.gpg.d/ubuntu-keyring-2004-archive.gpg
vidyodesktop.md5sums:8e06700d120a393a50f01be15644dc31  etc/xdg/autostart/VidyoDesktop.desktop

22 файла

utf8nowhere ★★★ ()
Последнее исправление: utf8nowhere (всего исправлений: 1)
Ответ на: комментарий от utf8nowhere

Был не спроектирован, но это постепенно меняется. Те же sysusers.d. Только не везде есть пока.

Я тут проверил. Не очень много.

Я к тому, что если официально в системе не заявлена такая функциональная возможность, то все дальнейшие эксперименты так и останутся экспериментами с неизвестным результатом. Просто время потратите.

ПС: если вторая система для контейнеров, то первая - для чего?

Ramirezkiv2 ()

ну я шарю /etc и /usr для этого использую NIS/YP и Kerberos. Правда дистр специально подготовленный.

slapin ★★★★★ ()
Ответ на: комментарий от Ramirezkiv2

Косвенно шарят. fstab, сетевые настройки хоста и т.п.

Без этих косвенно расшаренных конфигов контейнеры бесполезны, как без своих прямых конфигов.

utf8nowhere ★★★ ()
Ответ на: комментарий от utf8nowhere

Косвенно шарят. fstab, сетевые настройки хоста и т.п.

Без этих косвенно расшаренных конфигов контейнеры бесполезны, как без своих прямых конфигов.

NIS/YP+Kerberos, не?

Ramirezkiv2 ()

Юзкейз какой у этого дела?

Как будешь следить за порядком /usr?

centos7# yum groupinstall "GNOME Desktop Environment"
fedora27# dnf groupinstall "GNOME Desktop Environment"

Оба будут запускаться?

rhel7# yum upgrade
centos7# yum upgrade

Оба отработают нормально?

mogwai ★★★★ ()
Ответ на: комментарий от utf8nowhere

Тогда выход один: самому придумать механизм шаринга /etc и /var, написать службу, которая будет перехватывать обращения других служб в эти папки и перенаправлять их в свои копии, запатентовать технологию и создать свой собственный дистрибутив.

Ramirezkiv2 ()
Ответ на: комментарий от utf8nowhere

желание иметь общие настройки для нескольких /

Люди для таких случаев придумали SCM (Puppet, chef, saltstack, ansible). Попробуй - захочется ещё.

admincheg ()

Ты хочешь систему централизованного управления

cfengine/puppet/chef/ansible/что-там-ещё

Общий /etc это бред. Общий /var вообще тяжёлая наркомания

router ★★★★★ ()
Ответ на: комментарий от utf8nowhere

А в /var валится весь системный трэш типа кэша менеджера пакетов, логов, почты, хомяки для юзеров, привязанных к софту.

Я примерно в курсе, что куда валится

Судя по вопросам, очень уж примерно. Что сразу не общий /tmp ?

google filesystem hierarhy standard

Меня интересует насколько дистрибутивы уже готовы отделять софт от конфигов и данных

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

router ★★★★★ ()
Ответ на: комментарий от utf8nowhere

Интересно, как в RHEL.

Ничего конкретного не скажу даже по deb-based, а на тему rpm-based вообще ничего не скажу.

22 файла

Есть файлы, которые вообще никем не контролируются, например /etc/profile в генте совсем ничей, но в разных дистрах он устроен по-разному.

r3lgar ★★★★★ ()
Ответ на: комментарий от utf8nowhere

/usr, это же практически и есть система?

Как и /etc с /var.

Или имеется в виду шаринг по сети?

NIS/YP и Kerberos

Да.

r3lgar ★★★★★ ()
Ответ на: комментарий от mogwai

Оба будут запускаться?

Запускаться будут оба.

Оба отработают нормально?

Оба отработают (почти) нормально.

Но после этого центось точно превратится в тыкву.

Как будешь следить за порядком /usr?

Никак, он хочет, чтобы всё рулилось само собой (читай тред).

r3lgar ★★★★★ ()
Ответ на: комментарий от mogwai

Юзкейз какой у этого дела?

Слышал про boot environments?

Как будешь следить за порядком /usr?

Корень (/boot, /usr) будет у каждой системы свой, общими — только /var и /etc.

utf8nowhere ★★★ ()
Ответ на: комментарий от router

Что сразу не общий /tmp ?

Похоже, ты не в курсе, что /tmp чистится при перезагрузке: google filesystem hierarhy standard.
Общий /tmp — это самое простое, что может быть общим.

utf8nowhere ★★★ ()
Ответ на: комментарий от router

Ты хочешь систему централизованного управления

Я хочу типа boot environments. Зачем мне централизованно управлять одним локалхостом?

utf8nowhere ★★★ ()
Ответ на: комментарий от Deleted

Вроде systemd все это умеет.

systemd может и умеет, а другой софт — далеко не всегда.

utf8nowhere ★★★ ()
Ответ на: комментарий от admincheg

Люди для таких случаев придумали SCM

У меня не несколько машин, а несколько / на одной машине. Это вроде называют boot environments.

utf8nowhere ★★★ ()
Последнее исправление: utf8nowhere (всего исправлений: 1)
Ответ на: комментарий от r3lgar

Запускаться будут оба.

Что-то подсказывает мне, что gdm об конфиг споткнётся.

Оба отработают (почти) нормально. Но после этого центось точно превратится в тыкву.

/0

mogwai ★★★★ ()
Ответ на: комментарий от utf8nowhere

Корень (/boot, /usr) будет у каждой системы свой, общими — только /var и /etc.

Угадай, где менеджер пакетов хранит базу с информацией чего в системе установлено?

Слышал про boot environments?

Ты не сказал какую цель преследуешь.

mogwai ★★★★ ()
Ответ на: комментарий от mogwai

Угадай, где менеджер пакетов хранит базу с информацией чего в системе установлено?

Общие /var /etc для нескольких boot environments (комментарий)

Ты не сказал какую цель преследуешь.

Boot environments. Обновление/откат обновлений системы или вообще перезагрузка в другой дистр без потери, например, настроек в /etc

utf8nowhere ★★★ ()
Ответ на: комментарий от utf8nowhere

Общие /var /etc для нескольких boot environments (комментарий)

И что? rpmfusion-*.repo для EL и Fedora ты как делить собрался?

Обновление/откат обновлений системы

LVM снэпшоты и/или версионирование конфигов.

перезагрузка в другой дистр без потери настроек в /etc

LAMP с php из SCL в CentOS и из основного репозитория Ubuntu с одним конфигом заведутся?

Тебе же без ручного вмешательства этого хочется.

А так, либо не парь мозги и в разные /etc через ansible\puppet раздавай, либо городи костыль, который тебе симлинки для дистрибутивозависимых файлов при загрузке будет подменять, да выполняй его сразу после монтирования файловой системы.

И это, чего ты так над установленной системой трясёшься? Да хоть после каждого обновления пусть наворачивается. Установка системы с нуля с раскладыванием всех конфигов - дело десяти минут на сферическом десктопе в вакууме.

upd: а нафига с дистрибутива на дистрибутив скакать в рамках локалхоста?

mogwai ★★★★ ()
Последнее исправление: mogwai (всего исправлений: 1)
Ответ на: комментарий от mogwai

Что-то подсказывает мне, что gdm об конфиг споткнётся.

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

/0

Што.

r3lgar ★★★★★ ()
Ответ на: комментарий от mogwai

LVM снэпшоты и/или версионирование конфигов.

У меня ZFS снэпшоты.

Я тут заметил, что в https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS создают шаренным не весь /var, а только /var/{cache,log,spool,tmp}.

Остальной /var будет в каждом снэпшоте свой.

а нафига с дистрибутива на дистрибутив скакать в рамках локалхоста?

Для лишнего геморроя.

utf8nowhere ★★★ ()
Ответ на: комментарий от system-root

Механизм управления пользователями теперь ведёт учёт освобождённых UID/GID, соответственно однажды занятый UID/GID не может переиспользоватся другим пользователем/группой.

Интересная фича.

utf8nowhere ★★★ ()

В федоре вот не удаляют пользователей

https://fedoraproject.org/wiki/Packaging:UsersAndGroups#Allocation_Strategies

Do not remove users or groups
We never remove users or groups created by packages. There's no sane way to check if files owned by those users/groups are left behind (and even if there would, what would we do with them?) and leaving those behind with ownerships pointing to now nonexistent users/groups may result in security issues when a semantically unrelated user/group is created later and reuses the UID/GID. Also, in some setups deleting the user/group might not be possible or/nor desirable (eg. when using a shared, remote user/group database). Cleanup of unused users/groups is left to the system administrators to take care of if they so desire.

utf8nowhere ★★★ ()
Ответ на: комментарий от r3lgar

Ты сказал, что yum завершится со статусом 0, но система не потом навернётся, в ответ на вопрос о том «нормально ли оно отработает». Нормально, но не нормально.

mogwai ★★★★ ()
Ответ на: комментарий от mogwai

yum — это федорино горе? Я в rpm-based не очень ориентируюсь.

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

Я уже когда-то делал из убунты генту, у меня из этого ничего не вышло.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Я говорил о последовательном выполнении обновления на обеих системах.

yum — это федорино горе?

Рхелина радость. https://en.wikipedia.org/wiki/Yum_(.rpm) В Федоре уже давно на dnf перешли.

mogwai ★★★★ ()
Последнее исправление: mogwai (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.