RHEL/CentOS – Можно ли обновить пакеты только до определенной даты выпуска?

Вопрос или проблема

Технически говоря, если кто-то хочет обновить сервер RHEL или CentOS с помощью yum, но только до определенной даты выпуска (т.е. не устанавливать обновления, выпущенные после X даты), возможно ли это и если да, то как?

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

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

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

Пожалуйста, дайте мне знать, если вопрос неясен.

Похоже, что этому клиенту следует либо создать свою собственную организацию в спутнике (и тогда вы можете предоставить им права администратора организации, если хотите), ИЛИ вам следует клонировать нужные вам каналы, а затем, когда они скажут “вперед”, вы заходите в каждый склонированный канал и обновляете его (не могу вспомнить терминологию прямо сейчас, но это рядом с кнопкой ‘sync’).

При изначальном клонировании канала, вы можете выбрать клонирование без/со всеми/с выбранными исправлениями. В 5.6 (или это было 5.5?) они добавили опцию клонировать в соответствии с конкретным выпуском. До этого, нужно было использовать скрипт (неподдерживаемый?)

Однако, осторожно: при обновлении делайте это через часть интерфейса ‘Управление каналами’, а не через часть ‘Исправления’, иначе вы сойдете с ума.

Обратите внимание, что у Red Hat есть некоторые руководства по лучшим практикам для управления SOE (Стандартные операционные среды) для RHEL 5 и RHEL 6, которые могут быть вам интересны.

например, https://access.redhat.com/articles/1169613 (Контент для подписчиков)

Если вы хотите иметь несколько машин с точно такими же пакетами и версиями, вы можете использовать yum load-ts (yum load-transaction)

Из man yum:

load-transaction

Эта команда перезагрузит сохраненный файл транзакции yum, это позволяет запускать транзакцию на одной машине, а затем использовать её на другой. Два наиболее распространенных способа получить сохраненный файл транзакции yum: из “yum -q history addon-info last saved_tx” или через автоматическое сохранение в $TMPDIR/yum_save_tx.* когда транзакция решена, но не выполнена.

load-ts – это именно то, что мне нужно! Пятница – запуск yum download-only и сохранение транзакций Суббота – load-ts на Dev. Понедельник – load-ts на QA. Среда – load-ts на Prod.

Ответ или решение

Обновление пакетов RHEL/CentOS только до определенной даты может быть важной задачей для организации, которая стремится поддерживать стабильность и безопасность своей ИТ-инфраструктуры. Данная задача может представлять собой сложность в среде, где используется общий спутниковый сервер (Satellite Server), обслуживающий несколько клиентов. В этом контексте возникает вопрос: можно ли ограничить обновление пакетов на серверах RHEL/CentOS так, чтобы они не были обновлены до версий, выпущенных после определённой даты?

Теория

Yum, стандартная утилита для управления пакетами в RHEL/CentOS, сама по себе не предоставляет прямого метода для ограничения обновлений по дате выпуска пакетных версий. Однако, существует несколько подходов и инструментов, которые могут помочь в решении этой задачи.

Использование спутникового сервера (Satellite Server) — это распространённый и мощный способ управления обновлениями. Он позволяет создавать отдельные организации или группы, что даёт возможность индивидуально управлять обновлениями для различных клиентов. Однако такой подход не всегда возможен в рамках одного центрального спутника.

Поэтому, стоит рассмотреть альтернативные методы, такие как клонирование каналов в Satellite Server с последующим управлением этими клонами, или применение утилиты yum load-ts, которая позволяет загружать и применять транзакции обновления, сохранённые ранее, обеспечивая согласованность версий пакетов на множестве серверов.

Пример

  1. Клонирование каналов в Satellite Server

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

  2. Использование yum load-ts

    # Сохранение транзакции обновлений
    yum -q history addon-info last saved_tx
    
    # Применение транзакции на другом сервере
    yum load-transaction <transaction-file>

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

Применение

Для успешного применения вышеописанных методов критически важно иметь чёткое понимание структуры и процессов в вашей организации. Если вы решили использовать Satellite Server, создание канала с замороженными версиями покажет вашу приверженность стабильности и безопасности. Это также подразумевает необходимость регулярного пересмотра и тестирования обновлений в тестовой среде, прежде чем внедрять их в основное производство.

Утилита yum load-ts представляет собой уникальный способ для организаций, где автоматизация и консистентность имеют приоритетное значение. Это означает, что в вашей среде вы сможете идентифицировать и управлять транзакциями обновлений для всех серверов, создавая базовые транзакции только в одном месте и распространяя их на все другие.

В заключение, важно поддерживать проактивное управление пакетами и обновлениями, что, в свою очередь, обеспечит безопасность и бесперебойную работу вашей ИТ-инфраструктуры. Современные организации нуждаются в гибких и надёжных методах управления, и использование Satellite Server или транзакций yum load-ts может существенно помочь в этом процессе.

Оцените материал
Добавить комментарий

Капча загружается...