Хорошая практика для управления обновлениями пакетов для большого количества серверов CentOS

13

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

Я постепенно разбираюсь в наших методах хостинга, и теперь я приступил к разработке того, как управлять обновлениями безопасности на уровне ОС. Я настороженно отношусь к тому, чтобы просто выполнять работу cron, yum -y updateно также не хочу вовремя обходить каждый сервер и просматривать каждый пакет с доступными обновлениями, так как это займет некоторое время.

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

Шаги, которые я решил до сих пор:

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

Также обратите внимание, что я посмотрел на плагин безопасности yum, но он не работает на CentOS .

Итак, как вы управляете обновлениями для значительного числа серверов CentOS, на которых работает разнородный массив приложений?

Хэмиш Даунер
источник
2
Отличный вопрос Мы хотели посмотреть на нашу процедуру управления / обновления пакетов. Вы смотрели в Spacewalk ? Я не проверял это с момента первого выпуска, но, возможно, стоит взглянуть на него по-другому.
Бельмин Фернандес
CentOS поддерживает плагин безопасности yum. Я спрашивал об этом несколько раз, без особого ответа.
Стефан Ласевский,
К сожалению, похоже, что Scientific Linux также не поддерживает yum-plugin-security .
Стефан Ласевский,

Ответы:

2

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

CentOS 5 созрел до такой степени, что постоянные обновления не нужны. Но также имейте в виду, что CentOS 5 сворачивается. Частота обновлений несколько замедлилась, и природа обновлений больше связана с исправлениями ошибок, а не с серьезными изменениями функциональности.

Поэтому в данном конкретном случае первое, что вы можете сделать, - это создать локальное зеркало / репо. Используйте существующее управление конфигурацией для управления доступом к сторонним репозиториям. Может быть, запланировать политику для обновления критически важных или общедоступных служб (ssh, http, ftp, dovecot и т. Д.). Все остальное потребует тестирования, но у меня такое ощущение, что большинство сред не работают с полностью обновленными / исправленными системами.

ewwhite
источник
1

Есть много инструментов, которые могут помочь с этим! Как правило, система пакетов и какие пакеты отправляются туда, где осуществляется управление конфигурацией. Эти инструменты обычно охватывают больше, чем просто yum и rpms, и сэкономят ваше время и предотвратят много головных болей!

Инструмент, с которым я больше всего знаком, - это кукольный, который я использую для управления практически всеми конфигурациями в моей среде. Вот несколько примеров марионеток для управления yum конкретно:

http://people.redhat.com/dlutter/puppet-app.html

В настоящее время доступно несколько инструментов управления конфигурацией, у них довольно большие группы пользователей:

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

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

Одна действительно важная часть о тестировании - это репликация данных / использование. Вы упомянули, что у вас есть промежуточные версии большинства вашего оборудования. У них также есть идентичные копии производственных данных? Можете ли вы воспроизвести какую-либо из производственных нагрузок против него? Можете ли вы даже сделать его частью производственного кластера, используя зеркалирование трафика? Это обычно становится прямым компромиссом между количеством ресурсов, которые бизнес готов потратить на тестирование / QA. Чем больше тестирование, тем лучше, старайтесь не ограничивать себя (в пределах разумного) и посмотрите, что будет поддерживать бизнес (затем найдите способ сделать на 10% больше).

многочлен
источник