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

Хорошие практики для обновления серверов?

У меня много серверов работает CentOS 5.* и CentOS 6.*, Я хотел бы их обновить, но некоторые приложения работают, и я могу вывести их из строя, поэтому я написал этот пост, помня об этом.

Что вы мне посоветуете, ребята?

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

1) Одна из основных причин использования хорошо зарекомендовавшего себя дистрибутива - и особенно Centos (как, по сути, копии RHEL - моментального снимка, а не скользящего выпуска) заключается в том, что любые обновления сохранят обратную совместимость - обновления вряд ли что-нибудь сломают

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

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

4) в случае патчей ядра вы должны перезагрузить компьютер после применения патча - то есть ваш текущий текущий код будет остановлен

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

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

С участием yum list installed вы можете увидеть, какие пакеты установлены, rpm -Va даст вам список пакетов rpm думает, что были изменены (по какой-то странной причине дает много ложных срабатываний), проверьте, какие файлы конфигурации были изменены, отметьте изменения и сохраните их. Ищите другие, внешние конфигурации и локальные модификации. Делать конечно при необходимости вы можете восстановить точную копию.

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

К чему вы должны стремиться:

  • Иметь автоматизированный способ сборки / восстановления ваших машин

  • Используйте это для создания идентичной тестовой среды (обычно виртуальных машин)

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

  • Запустите этот автоматический тест в тестовой среде до и после обновлений, а затем еще раз до и после обновлений реальной среды.

Все это зависит от возможности быстрой и автоматической сборки ваших машин, и именно здесь на помощь приходит puppet / chef и тому подобное. Мы используем vagrant и virtualbox для тестовой среды, что также позволяет вам безопасно писать новый код puppet / chef и тестировать его. слишком.

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

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

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

Перечислите все пакеты с помощью команды «yum list updates». Таким образом, вы получите лучшее представление о том, какие пакеты вы собираетесь установить. и запустите команду обновления

ням обновление