Назад | Перейти на главную страницу

Как лучше всего поддерживать сервер Linux ubuntu в актуальном состоянии (пакеты сборки, dist-upgrade, альтернативные репозитории…)

Мы запускаем производственный сервер на базе Ubuntu 9.10 Кармическая коала, ядро ​​почти обновлено (2.6.38.2-grsec-xxxx-grs-ipv6-64), но репозиторий кармических пакетовсейчас до смешного устарело, например. Nginx - 0.7.62 - действительно глючит - а последняя стабильная версия 1.0.x !!

Вдобавок жизнь Кармики подошла к концу.

Этот вопрос: Лучшие практики для поддержания пакетов UNIX в актуальном состоянии? выглядит похоже, но на самом деле включает только некоторые предложения по менеджерам пакетов; совсем не то что мне нужно!

Итак, варианты, которые я вижу:

  1. получить новую машину, установить ее с нуля, перенести
  2. обновление дистрибутива
  3. использовать другой репозиторий (панель запуска / PPA / задний порт / закрепление)
  4. Построй свой собственный

Недостатки 1. достаточно очевидны.

Однако я не осмеливаюсь выбирать путь dist-upgrade, так как простои и возможные катастрофические последствия для производственного сервера просто невозможно предсказать, и в настоящее время я в основном перестраиваю свои собственные необходимые пакеты. Но я уверен, что некоторых мне не хватает.

Мне не совсем понятно, каковы риски (стабильность / совместимость) использования бэкпортов ubuntu, кроме того, для 9.10 больше официально ничего не предусмотрено. Launchpad - это индивидуальные сборки, аналогичный вопрос - что лучше, чем компилировать собственную.

Сборка пакетов кажется прекрасной, но: 1. Иногда у меня возникают проблемы с воспроизведением правильных параметров ./configure, чтобы повторно использовать мои существующие файлы конфигурации. 1. Я уверен, что существует множество пакетов и зависимостей, которые сейчас довольно устарели и могут быть источником ошибок

Наконец ... как насчет "старых" пакетов в недавнем дистрибутиве? Думаю, нет другого выхода, кроме как восстановить их самому? Является ли комбинация 2 и 4, наконец, лучшим путем?

Есть ли задача консенсус относительно того, как лучше всего это сделать, или причины, по которым некоторые из моих вариантов подходят / не подходят?

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

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

Обновление - вообще хорошее решение. do-release-upgrade сделан хорошо, и вы сможете обновиться без проблем (особенно если вы использовали только официальные пакеты).

Моим любимым решением может быть путь переустановки. В частности, вашими серверами следует управлять с помощью системы управления конфигурацией, такой как Puppet, Cfengine или Chef. Если все ваши потребности в конфигурации / пакете указаны с помощью такого инструмента и ваши данные находятся в безопасности на отдельном разделе, гораздо проще быстро переустановить. Вы просто устанавливаете новый дистрибутив, не стирая разделы данных, а затем запускаете инструмент управления конфигурацией, чтобы сбросить ваши пакеты / конфигурации. Я считаю, что это самый чистый способ, особенно если вам нужно управлять несколькими серверами.

Если вы используете неофициальные пакеты, вы можете идентифицировать их перед обновлением / переустановкой. проверка обслуживания может помочь вам определить пакеты, которые официально не поддерживаются Ubuntu:

$ bzr branch lp:ubuntu-maintenance-check
$ cd ubuntu-maintenance-check
$ ./maintenance-check -f n

Если вы хотите переустановить, вы также можете экспортировать список установленных пакетов:

$ dpkg --get-selections > myinstall.txt

и ваша база данных debconf:

$ debconf-get-selections > debconf.txt # from the debconf-utils package

В качестве примечания, поскольку в настоящее время вы используете Karmic, обновление до Lucid, которое является выпуском LTS, все еще поддерживается до 2015 года для основных серверных пакетов, может быть не слишком жестким. Это должно оставить у вас достаточно времени для настройки жизнеспособной автоматической установки в будущем.

Когда вы спрашиваете о пакетах Launchpad, я полагаю, вы имеете в виду PPA. Есть масса разных PPA. Некоторые экспериментальные, некоторые стабильные. Некоторые из них поддерживаются официальными разработчиками Ubuntu, некоторые - людьми, которые не знают, как правильно создавать пакеты. В целом трудно сказать, хороши ли пакеты, которые вы найдете в PPA, нет общего правила. Лучшим намеком в этом случае может быть слишком пристальный взгляд на владельца PPA, чтобы получить представление о возможном качестве их пакетов.

Единственный реальный путь вперед - это обновление дистрибутива. Я понимаю, что вы нервничаете по этому поводу, поскольку к настоящему времени вы будете прыгать на несколько выпусков вперед (11.04 только что вышла).

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

Если вы не можете позволить себе простои, миграция - ваш единственный выход. Забудьте о закреплении и обратных портах, которые сохранят вашу жизнь только в течение ограниченного периода времени. А вариант «раскатать сам» даже не стоит рассматривать. Всего мои 2 гроша.

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

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

В этом случае у вас есть два варианта:

  1. Запустите поддерживаемый дистрибутив и получайте обновления для своего программного обеспечения, или

  2. Сохраните все исправления в неподдерживаемом дистрибутиве, что, откровенно говоря, не представляется возможным.

Я не пользователь Ubuntu, поэтому я не могу комментировать полноту патчей, которые вы получите с помощью вашего варианта 3, но если у вас есть какие-либо сомнения, я предполагаю, что у вас не будет полного покрытия.

Лучшее решение - перейти на LTS-версию Ubuntu, которая обеспечит вам поддержку данных версий пакетов в течение некоторого времени. Со временем некоторые из пакетов устареют, но ваша среда будет иметь исправления безопасности и будет стабильной (без изменений версии пакета). По моему опыту, стабильность известной рабочей среды обычно более ценна, чем новые функции.

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