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


13

У рамках своєї роботи я управляю декількома десятками серверів CentOS 5, використовуючи лялькові системи для основної настройки. Близько половини наших серверів мають стандартизований набір для розміщення різних сайтів django, а решта - це міш-меш програми.

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

Тож мені цікаво, чи є якісь швидкі скорочення чи робоча практика, які б мінімізували пов'язані ризики та мінімізували кількість часу, який мені потрібно витратити. Або, кажучи іншим способом, чи є інструменти чи практики, які можуть автоматизувати багато роботи, одночасно надаючи контроль.

Кроки, про які я вирішив поки що:

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

Також зауважте, що я переглянув плагін безпеки yum, але він не працює на CentOS .

Тож як ви керуєте оновленнями для значної кількості серверів CentOS, які працюють з різнорідним набором програм?


2
Чудове запитання. Ми мали намір розглянути нашу процедуру управління / оновлення пакунків. Ви заглянули в Космічний прогулянку ? Я не перевіряв це з моменту першої версії, але, можливо, варто було б переглянути його ще один вигляд.
Белмін Фернандес

Підтримка CentOS для плагіну yum безпеки є великою. Я кілька разів запитував про це, без особливої ​​відповіді.
Стефан Ласєвський

На жаль, схоже, що науковий Linux також не підтримує безпеку yum-plugin .
Стефан Ласевський

Відповіді:


2

У більшості моїх середовищ це, як правило, сценарій швидкого запуску та після встановлення, щоб отримати основну систему та працювати з оновленнями на даний момент. Зазвичай у мене є місцеве репо, яке синхронізується з дзеркалом CentOS щодня або щотижня. Я схильний заморожувати пакет ядра в будь-який час, що стосується часу встановлення та оновлення пакетів окремо або за необхідності. Часто мої сервери мають периферійні пристрої, які мають драйвери, тісно пов'язані з версіями ядра, тому це враховується.

CentOS 5 дозрів до того часу, коли постійні оновлення не потрібні. Але також пам’ятайте, що CentOS 5 закінчується. Швидкість оновлень дещо сповільнилася, і характер оновлень більше впорядкований з помилками та менше про основні зміни функціональних можливостей.

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


1

Є багато інструментів, які можуть допомогти у цьому! Він загальноприйнятий системою пакетів і які пакунки переходять куди обробляється управлінням конфігурацією. Ці засоби, як правило, охоплюють більше, ніж просто yum та rpms, і заощадять ваш час та запобігають багатьом головним болям!

Найбільше мені знайомий інструмент - це маріонетка, яку я використовую для управління практично кожною конфігурацією у своєму середовищі. Ось кілька маріонеткових прикладів конкретного управління yum:

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

Наразі доступно декілька інструментів управління конфігурацією, у яких є досить великі групи користувачів:

Реалізація цього в середовищі додасть років у ваше життя. Це зменшує кількість головних болів від погано налаштованих систем і дозволяє легко оновити / оновити. Більшість цих інструментів також можуть забезпечити деяку функціональність рівня аудиту, що може значно скоротити час на ремонт помилок конфігурації.

Що стосується вашого питання щодо тестування, я використовую постановочне середовище, до якого ми спрямовуємо навантаження деяких клієнтів (зазвичай бета-клієнтів або невеликий підмножина виробничого трафіку). Зазвичай ми дозволяємо цьому кластеру запускати новий код принаймні пару днів, до тижня (залежно від тяжкості зміни), перш ніж розгорнути його у виробництво. Зазвичай я вважаю, що ця настройка працює найкраще, якщо ви спробуєте розібратися, скільки часу потребує виявлення більшості помилок. У сильно використовуваних системах це може бути за лічені години; в більшості середовищ я бачив тиждень достатньо довгий, щоб виявити навіть незвичайні помилки в постановці / КЯ.

Однією з важливих частин тестування є реплікація даних / використання. Ви згадали, що у вас є постановочні версії більшості виробничого обладнання. Чи вони також мають однакові копії виробничих даних? Чи можете ви відтворити проти нього будь-яке виробниче навантаження? Чи можете ви навіть зробити його частиною виробничого кластера, використовуючи дзеркальне відображення? Зазвичай це стає прямим компромісом між кількістю ресурсів, які бізнес готовий витратити на тестування / контроль якості. Чим більше тестування, тим краще, постарайтеся не обмежуватись (в межах розуму) і подивіться, що підтримуватиме бізнес (тоді знайдіть спосіб зробити на 10% більше).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.