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

Мы предоставляем услуги удаленного администрирования серверов

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

Поделиться

Pulp — это инструмент управления репозиторием с открытым исходным кодом, который помогает извлекать, зеркалировать, выгружать и публиковать контент в вашей организации. Его можно использовать для управления различными типами контента, такими как пакеты программного обеспечения (от пакетов RPM до драгоценных камней Ruby), а также коллекции Ansible, образы контейнеров и даже произвольные файлы.

Типичный рабочий процесс начинается с загрузки пакетов программного обеспечения из существующего репозитория (например, http://mirror.centos.org/centos/7/os/x86_64/ ) или добавления пакетов вручную (для частных пакетов, созданных в вашей организации). Затем Pulp помогает вам создавать произвольные коллекции пакетов программного обеспечения, которые потребляются клиентами. С его помощью вы:

  • Получите контроль над тем, какой контент доступен для потребителей
  • Может использовать контроль версий
  • Уменьшите потребности в полосе пропускания и хранилище, предоставив локальный дедуплицированный источник

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

Pulp полагается на плагины для адекватной обработки различных типов контента. Например, плагин Pulp RPM позволяет управлять пакетами .rpm. С помощью подключаемого модуля Pulp Debian вы можете зеркалировать, синхронизировать, загружать и публиковать пакеты .deb в репозиториях APT. Плагин pulp_deb необходим, если вы хотите управлять и предоставлять расходные пакеты программного обеспечения для таких дистрибутивов Linux, как Debian и Ubuntu, и это бесплатное программное обеспечение с открытым исходным кодом, предоставляемое и поддерживаемое сообществом Pulp.

С помощью подключаемого модуля Pulp Debian вы можете управлять контентом Debian, синхронизируя удаленные репозитории, предоставляя интерфейс для загрузки собственного контента и публикуя контент в репозитории.

Pulp поддерживает несколько различных типов содержимого Debian , включая пакеты, индексы пакетов, файлы выпуска и многое другое. «Тип содержимого» относится либо к конкретному артефакту, либо к метаданным. Например, блок содержимого типа packageотносится к пакету .deb.

Синхронизация удаленного репозитория — одна из основных функций плагина Pulp Debian и один из способов получения контента. В процессе синхронизации используетсяудаленное определение, которое содержит URL-адрес, распределение , компоненты и архитектуры:

  • URL путь к удаленному APT репозитории.
  • Распределение путь между dists/директорией APT репозитория и соответствующим Releaseфайлом. Обычно (но не всегда) это кодовое имя или набор дистрибутива Linux busterна основе Debian ( для Debian 10, stretchдля Debian 9, focalдля Ubuntu 20.04 и т. Д.). При запуске lsb_release -csна любом хосте Debian или Ubuntu отображается кодовое имя дистрибутива.
  • Компоненты описывают произвольные подмножества хранилищ ( maincontribили non-freeдля Debian, или mainrestricteduniverseи multiverseдля Ubuntu). Вы можете использовать это для фильтрации и категоризации пакетов в репозитории APT.
  • Архитектура относится к архитектуре процессора пакет программного обеспечения может работать на, чаще всего i386amd64или arm64. Если программный пакет не зависит от конкретной архитектуры процессора, для архитектуры может быть установлено значение all.

Указание дистрибутива обязательно, а определение компонентов и архитектур — необязательно. Если не определено, Pulp автоматически синхронизирует все пакеты без фильтрации компонентов или архитектур. Pulp автоматически проверяет подпись GNU Privacy GuardRelease Файла, если соответствующий открытый ключ GPG назначен удаленному устройству.

Пример рабочего процесса

С помощью REST API Pulp легко перейти от удаленного репозитория к дословной публикации . Следующие вызовы API предполагают, что вы используете HTTPie .

Представьте, что вы хотите предоставить пакеты .deb хостам в вашей организации. Следующий базовый рабочий процесс направляет ваши первые шаги в использовании Pulp и плагина Pulp Debian.

1. Создайте локальный репозиторий

Начните с создания локального репозитория в Pulp с помощью одного вызова API. Вы можете сделать это с помощью HTTPie или команды curl :

http post http://<hostname>:24817/pulp/api/v3/repositories/deb/apt/ name=<name_of_your_repository>

2. Создайте удаленный

Далее создайте пульт. Для этого вызова API требуется URL-адрес и произвольное nameзначение. Определение распределения и архитектуры необязательно:

http post http://<hostname>:24817/pulp/api/v3/remotes/deb/apt/ name="nginx.org"  
url="http://nginx.org/packages/debian" distributions="buster"

Независимо от того, определяете ли вы только один или несколько дистрибутивов, Pulp позже синхронизирует пакеты для всех архитектур, поскольку они не определены для этого пульта.

3. Синхронизировать

Третий и последний шаг для получения удаленного контента в Pulp — это синхронизировать удаленный компьютер с вашим локальным репозиторием. Вы делаете это, вызывая конечную точку API синхронизации вашего репозитория:

http post http://<hostname>:24817/pulp/api/v3/repositories/deb/apt/<uuid_repository>/sync/ 
remote=http://<hostname>:24817/pulp/api/v3/remotes/deb/apt/<uuid_remote>/

В этом примере команды каждый из UUID ссылается на внутренние ссылки Pulp, отображаемые как pulp_hrefAPI. Этот шаг может занять некоторое время в зависимости от вашей среды, размера репозитория и доступной пропускной способности.

Сделайте содержимое вашей

Pulp расходным материалом

После получения контента для Pulp посредством синхронизации он становится потребляемым клиентами.

1. Создайте публикацию

Публикации всегда основаны на репозитории Pulp. Они содержат дополнительные настройки того, как публиковать контент. Вы можете использовать APTиздателя в любом репозитории типа APT, содержащем пакеты .deb.

Следующий вызов API создает публикацию в дословном режиме. То есть он обеспечивает точно такую ​​же структуру и содержимое удаленного репозитория:

http post http://<hostname>:24817/pulp/api/v3/publications/deb/verbatim/ 
repository=/pulp/api/v3/repositories/deb/apt/<uuid_repository>/

Замените UUID репозиторием, который вы хотите опубликовать. Этот шаг может занять некоторое время в зависимости от размера репозитория.

2. Создайте раздачу

Распространение берет готовую публикацию и обслуживает ее через приложение содержимого Pulp, которое делает ее доступной (или «потребляемой») для ваших пользователей. В контексте системы Debian это означает, что репозиторий может быть добавлен /etc/apt/sources.listи использован как способ установки программного обеспечения.

Для следующего вызова API требуется UUID публикации, созданной на первом шаге:

http post http://<hostname>:24817/pulp/api/v3/distributions/deb/apt/ name="name_of_the_distribution" 
 base_path="base_path_of_the_distribution" 
 publication=http://<hostname>:24817/pulp/api/v3/publications/deb/verbatim/<uuid_publication>/

base_pathЗначение является частью URL , используемых клиентами при ссылке на APT хранилища, и имя может быть произвольным. Вызов конечной точки API дистрибутива в конкретном опубликованном дистрибутиве возвращает URL-адрес репозитория Pulp:

http get http://<hostname>:24817/pulp/api/v3/distributions/deb/apt/<uuid_distribution>/

Этот URL-адрес напрямую используется клиентами APT. Теперь его можно добавить /etc/apt/sources.listв качестве действительного репозитория.

Pulp API

Использование этих вызовов API позволяет синхронизировать репозиторий APT с вашим собственным экземпляром Pulp и дословно переиздать его, не затрагивая пакеты, какие-либо метаданные или подписи. Обратитесь к документации API и обзору функций для получения дополнительной информации и других способов публикации.

Гибкость открытого исходного кода

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

ATIX разрабатывает плагин Pulp Debian в первую очередь с учетом варианта использования Katello. Независимо от того, нужен ли вам Katello или Pulp или просто конкретный плагин Pulp, вы можете быть уверены, что эта модульность заложена изначально.

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

 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte