Рейтинг:7

Обновление Debian Linux до определенного уровня исправления

флаг jp

У меня есть несколько десятков ящиков Debian, которые я хочу детерминистически обновлять, а также следить за Инжиниринг => Пре-Прод => Прод рутина с детерминированным промежуточным процессом.

Идеальным миром для меня было бы иметь под рукой какой-то «идентификатор уровня исправления», например 2022-01-10.e28de15cc1 и уметь говорить подходящее обновление --до 2022-01-10.e28de15cc1, но я не нашел ничего отдаленно похожего.

Я, вероятно, могу хешировать вывод список подходящих --установлен после обновления первой коробки и моделирования концепции, но мне действительно интересно, почему никто этого не сделал, моя мысленная модель поддержания чистоты пингвинов полностью отсутствует?

Рейтинг:8
флаг kz

Насколько мне известно, подходящий хранилище не имеет глобальный идентификатор ссылаясь на определенные номера версий всех пакетов. Вы можете создать список версий пакетов, распространить его на все серверы и создать сценарий для получения этих конкретных версий. Но такой сценарий «подвержен ошибкам», и у вас возникнут проблемы, если эта конкретная версия будет удалена из хранилище.

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

флаг jp
Прямо сейчас я запускаю его с прокси-сервером JFrog apt, чтобы иметь детерминированные линии разреза. Но чувствует себя действительно отсталым.
Рейтинг:0
флаг mm

Я подозреваю, что на практике большинству людей не нужны «все» их пакеты на точном/«детерминированном» уровне обновления. Им нужно некоторый критические, и для этого существуют инструменты.

Тем не менее, хеширование вывода apt list --installed, вероятно, является «правильным» первым шагом.

Для «локального»/испытательного использования apt позволит вам установить определенную версию с apt-get install packagename=версия и вы можете держать пакет. Вероятно, это неправильный подход, когда речь идет о большом количестве систем.

Хотя я (смутно) припоминаю устаревшие Unix и другие операционные системы с уровнями исправлений, с Интернетом и распределенной разработкой программного обеспечения, это имеет гораздо меньше смысла. Инструменты делать однако существуют для того, чтобы построить детерминированную систему.

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

флаг jp
Мне все равно, какие конкретные версии есть у большинства пакетов, но меня волнует, что то, что я тестировал в инженерной лаборатории, ТОЧНО совпадает с предварительным и более поздним производством. Ansible может сделать его декларативным и скрыть факт присутствия apt-get, но в остальном это не имеет никакого значения. Уровень патча — это не «старые времена», это просто общая версия репозитория пакетов (например, идентификатор коммита в svn или хэш коммита в Git). Это было бы чрезвычайно полезно.

Ответить или комментировать

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