Поиск по сайту:

Управление потоком CentOS с помощью Foreman


В этом примере представлено множество вариантов управления контентом CentOS Stream и предоставления его в Foreman.

В декабре 2021 года срок службы CentOS 8 закончится, и его заменит CentOS Stream. Одним из основных изменений между предыдущими версиями CentOS и CentOS Stream является отсутствие второстепенных версий. Centos Stream использует непрерывный цикл выпуска. С начала этого года разработчики из сообщества Foreman начали видеть преимущества более раннего обнаружения ошибок и исправлений, которые предлагает CentOS Stream в результате непрерывных выпусков. Нам больше не нужно ждать следующего выпуска, чтобы воспользоваться последними изменениями и исправлениями ошибок. Опытный энтузиаст сообщества Linux отметил, что этот шаг также делает разработчиков RHEL ближе, чем когда-либо, к сообществу FOSS.

Однако если вы являетесь администратором сотен или тысяч серверов, вам может потребоваться контролировать добавление новых пакетов на определенные серверы. Если вы ищете бесплатный инструмент с открытым исходным кодом, который поможет вам обеспечить стабильность производственных серверов и в то же время позволит безопасно получать последние изменения из Centos Stream для разработки и тестирования, Foreman может вам помочь. С помощью Foreman вы можете управлять контентом Centos Stream на всех этапах жизненного цикла среды.

Что такое Форман?

Foreman — это комплексный инструмент управления жизненным циклом физических и виртуальных серверов. С помощью Foreman системные администраторы могут легко автоматизировать повторяющиеся задачи, быстро развертывать приложения и активно управлять серверами локально или в облаке. Foreman предоставляет решения корпоративного уровня для управления предоставлением ресурсов, управления конфигурациями и мониторинга. Благодаря архитектуре плагинов Foreman можно расширять множеством способов. Используя плагин Katello, вы можете использовать Foreman как полноценный инструмент управления контентом для управления CentOS Stream, а также многими другими типами контента.

С помощью Foreman и Katello вы можете точно определить, какие пакеты должна содержать каждая среда. Например, в производственной среде могут использоваться пакеты, которые были проверены как стабильные, а в среде разработчика могут потребоваться самые последние и лучшие доступные версии пакетов. Вы также можете продвигать представления контента в средах жизненного цикла. Давайте посмотрим, как Форман добивается этого.

В этой статье мы ссылаемся на веб-интерфейс, но у Foreman также есть надежный интерфейс командной строки и API. Плагин Katello предоставляет рабочий процесс и веб-интерфейс для проекта Pulp, о которых вы можете прочитать больше в этой статье. Мы также предлагаем здесь простой рабочий процесс, но Foreman и проект Katello предлагают множество различных вариантов конфигурации, отвечающих вашим конкретным потребностям.

В этой статье предполагается, что Foreman и Katello уже установлены. Дополнительную информацию о том, как это сделать, см. в руководстве по установке Katello.

Создать продукт

Первым шагом является создание продукта в Foreman. Продукт функционирует как внутренняя метка для хранения репозиториев CentOS Stream.

  1. В веб-интерфейсе Foreman перейдите к разделу Содержимое >Продукты и нажмите Создать продукт.
  2. В поле Имя введите название продукта. Foreman автоматически заполняет поле Ярлык на основе того, что вы ввели в поле Имя , и это невозможно изменить позже.

Добавьте репозитории CentOS Stream в продукт.

Теперь, когда у вас есть продукт, вы можете использовать URL-адреса репозиториев AppStream и BaseOS и добавить их в свой новый продукт.

  1. В веб-интерфейсе Foreman перейдите в раздел Содержимое > Продукты, выберите продукт, который хотите использовать, а затем нажмите Новый репозиторий.
  2. В поле Имя введите имя репозитория; например, Centos8StreamBaseOS. Foreman автоматически заполняет поле Метка на основе того, что вы ввели в поле Имя.
  3. В списке Тип выберите тип репозитория, а затем выберите Yum.
  4. В поле URL введите URL-адрес репозитория CentOS Stream Baseos, который будет использоваться в качестве источника: http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/
  5. Выберите список Политика загрузки. По умолчанию установлено значение По требованию. Это означает, что Katello будет загружать только метаданные. Если вы хотите загрузить все пакеты, выберите Немедленно, при этом загружаются все пакеты, размер которых может занимать 20–30 ГБ.
  6. Убедитесь, что установлен флажок Зеркало при синхронизации. Этот параметр гарантирует, что содержимое, которое больше не является частью вышестоящего репозитория, будет удалено во время синхронизации.
  7. Нажмите Сохранить.

Повторите эти шаги, чтобы добавить репозитории AppStream с URL-адресами, например http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/. Вместо этого убедитесь, что вы используете ближайшее официальное зеркало CentOS.

Чтобы выполнить немедленную синхронизацию, в окне продукта нажмите Синхронизировать сейчас. Первоначальная синхронизация может занять некоторое время. Статус синхронизации можно просмотреть в разделе Содержимое > Статус синхронизации.

После завершения синхронизации вы сможете просмотреть новую операционную систему CentOS Stream в разделе Хосты > Операционная система. Не стесняйтесь редактировать имя и описание в соответствии с вашими требованиями.

Если вы планируете использовать программное обеспечение для управления конфигурацией, такое как Ansible или Puppet, Foreman автоматически создает отчет об операционной системе. Эту опцию можно отключить в меню Администрирование > Настройки > Игнорировать факты для операционной системы. Рекомендуется переименовать операционную систему, чтобы она соответствовала имени в программном обеспечении управления конфигурацией. Например, для Puppet это будет CentOS 8.

Определите среду жизненного цикла вашей инфраструктуры

Жизненный цикл приложения — это концепция, лежащая в основе функций управления контентом Foreman. Жизненный цикл приложения определяет, как конкретная система и ее программное обеспечение выглядят на определенном этапе. Например, жизненный цикл приложения может быть простым; у вас может быть только этап разработки и этап производства. Foreman предоставляет методы для контролируемой настройки каждого этапа жизненного цикла приложения в соответствии с вашими требованиями.

На этом этапе вы должны создать пути к среде жизненного цикла:

  1. В веб-интерфейсе Foreman перейдите к Содержимое >Среды жизненного цикла.
  2. Нажмите Новый путь к среде, чтобы начать новый жизненный цикл приложения.
  3. В поле Имя введите имя вашей среды.
  4. В поле Описание введите описание вашей среды.
  5. Нажмите Сохранить.
  6. Добавьте столько путей к среде, сколько вам нужно. Например, вы можете создать среды dev, test, этапную и производственную среду. Чтобы добавить эти среды, нажмите Добавить новую среду, заполните поля Имя и Описание и выберите предыдущую среду из Предыдущая среда. , чтобы вы могли объединить их в той последовательности, которую вы планируете использовать.

Создайте и опубликуйте представление контента

В Foreman представление контента — это снимок ваших репозиториев в определенный момент времени. Представления контента предоставляют механизм изоляции версий пакета в состоянии, которое вы хотите сохранить. Представления контента имеют множество настраиваемых функций, которые вы можете использовать для дальнейшей доработки. Для целей этого урока давайте будем проще.

  1. В веб-интерфейсе Foreman выберите Содержимое > Представления контента и нажмите Создать новое представление.
  2. В поле Имя введите имя представления. Форман автоматически заполняет поле Метка введенным вами именем.
  3. В поле Описание введите описание представления.
  4. Нажмите Сохранить, чтобы создать представление контента.
  5. В новом представлении контента нажмите Yum Content > Добавить репозитории в области Выбор репозитория и нажмите Добавить. Для репозиториев BaseOS и Appstream: выберите пакеты, которые хотите включить, затем нажмите Добавить репозитории.
  6. Нажмите Опубликовать новую версию и в поле Описание введите информацию о версии для регистрации изменений.
  7. Нажмите Сохранить.

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

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

Продвигайте контент в средах жизненного цикла

Если вы протестировали новые пакеты и удовлетворены тем, что все работает стабильно, вы можете перенести свое представление контента в другую среду жизненного цикла.

  1. Перейдите в раздел Контент > Просмотры контента и выберите представление контента, которое вы хотите продвигать.
  2. Откройте вкладку Версии для просмотра содержимого.
  3. Выберите версию, которую хотите продвигать, и в столбце Действия нажмите Продвигать.
  4. Выберите среду, в которой вы хотите продвигать представление контента, и нажмите Продвигать версию.
  5. Нажмите кнопку Продвигать еще раз. На этот раз выберите среду жизненного цикла, например, Тестирование, и нажмите Продвигать версию.
  6. Наконец, еще раз нажмите кнопку Продвигать. Например, выберите Рабочую среду и нажмите Продвигать версию.

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

Создайте ключ активации

Чтобы зарегистрировать сервер CentOS Stream для контента, который вы определили в определенном жизненном цикле, вам необходимо создать ключ активации. Ключ активации — это безопасный метод обмена учетными данными с сервером. При этом используется инструмент под названием subscription-manager для подписки сервера CentOS Stream на контент.

После создания ключа активации добавьте подписку CentOS Stream к ключу активации.

  1. В веб-интерфейсе Foreman перейдите в раздел Содержимое > Ключи активации и нажмите Создать ключ активации.
  2. В поле Имя введите имя ключа активации.
  3. В поле Описание введите описание ключа активации.
  4. В списке Среда выберите среду, которую хотите использовать.
  5. В списке Представление контента выберите только что созданное представление контента.
  6. Нажмите Сохранить.

Создайте хост потока CentOS из контента, управляемого Foreman.

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

Чтобы создать хост в Foreman, выберите Хосты > Создать хост.

  1. В поле Имя введите имя хоста.
  2. Перейдите на вкладки Организация и Местоположение, чтобы убедиться, что контекст предоставления автоматически установлен на текущий контекст.
  3. В списке Развернуть выберите Bare Metal.
  4. Откройте вкладку Операционная система.
  5. В списке Архитектуры выберите x86_64.
  6. В списке Операционная система выберите CentOS_Stream 8.
  7. Установите флажок Режим сборки.
  8. В разделе Выбор мультимедиа выберите Синхронизированный контент, чтобы использовать контент потока CentOS, который вы синхронизировали ранее.
  9. Убедитесь, что в списке Синхронизировано Содержимое выбран CentOS Stream.
  10. В списке Таблица разделов для этой демонстрации выберите Kickstart по умолчанию, но существует множество доступных вариантов.
  11. В поле Пароль root введите пароль root для вашего нового хоста.
  12. Перейдите на вкладку Интерфейс, нажмите Изменить и добавьте Mac-адрес.
  13. Перейдите на вкладку Параметры и убедитесь, что существует параметр, предоставляющий ключ активации. Если нет, добавьте ключ активации.
  14. Нажмите Отправить, чтобы сохранить запись хоста.

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

Если вы перейдете в раздел Хосты > Хосты контента, вы сможете увидеть полную информацию о подписках, среде жизненного цикла и представлении контента, на которые подписан ваш хост.

Этот пример представляет собой лишь небольшой обзор множества опций, которые вам доступны для управления и предоставления контента CentOS Stream в Foreman. Если вам нужна более подробная информация о том, как вы можете управлять версиями CentOS Stream, контролировать контент, к которому имеют доступ ваши серверы, а также контролировать и защищать стабильность вашей инфраструктуры, ознакомьтесь с документацией Foreman Content Management. Имея под своим контролем весь контент CentOS Stream, вы можете создавать и регистрировать потоки Centos, которые потребляют только указанный вами контент. Более подробную информацию о предоставлении см. в документации Foreman Provisioning. Если у вас есть какие-либо вопросы, отзывы или предложения, вы можете найти сообщество Foreman по адресу https://community.theforeman.org/.