Pulp es una herramienta de administración de repositorios de código abierto que lo ayuda a buscar, duplicar, cargar y publicar contenido dentro de su organización. Se puede usar para administrar varios tipos de contenido, como paquetes de software (desde paquetes RPM hasta gemas de Ruby), así como colecciones de Ansible, imágenes de contenedores e incluso archivos arbitrarios.
Un flujo de trabajo típico comienza con la obtención de paquetes de software de un repositorio existente (por ejemplo, http://mirror.centos.org/centos/7/os/x86_64/) o agregando paquetes manualmente (para paquetes privados creados dentro de su organización). Luego, Pulp lo ayuda a realizar colecciones arbitrarias de paquetes de software que los clientes pueden consumir. Con él, usted:
- Obtenga control sobre qué contenido está disponible para los consumidores
- Puede usar el control de versiones
- Reduzca las necesidades de ancho de banda y almacenamiento proporcionando una fuente local sin duplicados
Si es nuevo en Pulp, lea el artículo introductorio de Melanie Corr sobre cómo administrar sus repositorios de software con Pulp.
Administrar paquetes de Debian con Pulp
Pulp se basa en complementos para manejar adecuadamente diferentes tipos de contenido. Por ejemplo, el complemento Pulp RPM le permite administrar paquetes .rpm. Con el complemento Pulp Debian, puede duplicar, sincronizar, cargar y publicar paquetes .deb dentro de los repositorios APT. El complemento pulp_deb es esencial si desea administrar y proporcionar paquetes de software consumibles para distribuciones de Linux como Debian y Ubuntu, y es un software gratuito y de código abierto proporcionado y mantenido por la comunidad de Pulp.
Con el complemento Pulp Debian, puede administrar el contenido de Debian al sincronizar repositorios remotos, proporcionar una interfaz para cargar su propio contenido y publicar contenido en los repositorios.
Pulp admite varios tipos diferentes de contenido de Debian, incluidos paquetes, índices de paquetes, archivos de versión y más. "Tipo de contenido" se refiere a un artefacto o metadatos específicos. Por ejemplo, una unidad de contenido de tipo package
se refiere a un paquete .deb.
La sincronización de un repositorio remoto es una de las características principales del complemento Pulp Debian, y es una de las formas de obtener contenido. El proceso de sincronización utiliza una definición remota que contiene una URL, distribución, componentes y arquitecturas:
- La URL es la ruta al repositorio APT remoto.
- La distribución es la ruta entre las
dists/
directorio del repositorio APT y elRelease
relevante expediente. Este suele ser (pero no siempre) el nombre en clave o el conjunto de la distribución de Linux basada en Debian (buster
para Debian 10,stretch
para Debian 9,focal
para Ubuntu 20.04, etc.). Ejecutandolsb_release -cs
en cualquier servidor Debian o Ubuntu muestra el nombre en clave de la distribución. - Componentes describir subconjuntos arbitrarios de repositorios (
main
,contrib
, onon-free
para Debian, omain
,restricted
,universe
ymultiverse
para Ubuntu). Puede usar esto para filtrar y categorizar paquetes dentro de un repositorio APT. - La arquitectura se refiere a la arquitectura del procesador en la que se puede ejecutar un paquete de software, más comúnmente
i386
,amd64
, oarm64
. Si un paquete de software no depende de una arquitectura de procesador específica, la arquitectura puede establecerse enall
.
La especificación de una distribución es obligatoria, mientras que la definición de componentes y arquitecturas es opcional. Si no está definido, Pulp sincroniza automáticamente todos los paquetes sin filtrar por componentes o arquitecturas. Pulp verifica automáticamente la firma GNU Privacy Guard de la Release
Archivo, en caso de que se asigne la clave pública GPG correspondiente al control remoto.
Un flujo de trabajo de ejemplo
Es fácil pasar de un repositorio remoto a una publicación textual con la API REST de Pulp. Las siguientes llamadas a la API asumen que está utilizando HTTPie.
Imagine que desea proporcionar paquetes .deb a los hosts dentro de su organización. El siguiente flujo de trabajo básico guía sus primeros pasos en el uso de Pulp y el complemento Pulp Debian.
1. Crear un repositorio local
Comience por crear un repositorio local en Pulp con una sola llamada a la API. Puedes hacer esto con HTTPie o con el comando curl:
http post http://<hostname>:24817/pulp/api/v3/repositories/deb/apt/ name=<name_of_your_repository>
2. Crear un control remoto
A continuación, cree un control remoto. Esta llamada API requiere una URL y un name
arbitrario valor. Definir una distribución y arquitectura es opcional:
http post http://<hostname>:24817/pulp/api/v3/remotes/deb/apt/ name="nginx.org" url="http://nginx.org/packages/debian" distributions="buster"
Ya sea que defina solo una o varias distribuciones, Pulp sincronizará más adelante los paquetes para todas las arquitecturas, ya que no están definidos para este control remoto.
3. Sincronizar
El tercer y último paso para obtener contenido remoto en Pulp es sincronizar el control remoto con su repositorio local. Para ello, realice una llamada al extremo de la API de sincronización de su repositorio:
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>/
En este comando de muestra, cada uno de los UUID hace referencia a las referencias internas de Pulp, que se muestran como pulp_href
por la API. Este paso puede llevar algún tiempo, según su entorno, el tamaño del repositorio y el ancho de banda disponible.
Haga que su contenido de Pulp sea consumible
Después de adquirir contenido para Pulp a través de la sincronización, los clientes pueden consumirlo.
1. Crear una publicación
Las publicaciones siempre se basan en un repositorio Pulp. Contienen configuraciones adicionales sobre cómo publicar contenido. Puedes usar el APT
editor en cualquier repositorio del tipo APT que contenga paquetes .deb.
La siguiente llamada a la API crea una publicación en modo textual. Es decir, proporciona exactamente la misma estructura y contenido del repositorio remoto:
http post http://<hostname>:24817/pulp/api/v3/publications/deb/verbatim/ repository=/pulp/api/v3/repositories/deb/apt/<uuid_repository>/
Reemplace el UUID con el repositorio que desea publicar. Este paso puede llevar algún tiempo, según el tamaño del repositorio.
2. Crear una distribución
Una distribución toma la publicación terminada y la sirve a través de la aplicación de contenido Pulp, que la pone a disposición (o "consumible") para sus usuarios. En el contexto de un sistema Debian, esto significa que el repositorio se puede agregar a /etc/apt/sources.list
y se usa como una forma de instalar software.
La siguiente llamada a la API requiere el UUID de la publicación creada en el primer paso:
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>/
La base_path
El valor es parte de la URL utilizada por los clientes cuando se refieren al repositorio de APT y el nombre puede ser arbitrario. Llamar al extremo de la API de la distribución en una distribución publicada específica devuelve la URL del repositorio de Pulp:
http get http://<hostname>:24817/pulp/api/v3/distributions/deb/apt/<uuid_distribution>/
Esta URL es consumible directamente por los clientes de APT. Ahora se puede agregar a /etc/apt/sources.list
como repositorio válido.
API de pulpa
El uso de estas llamadas API le permite sincronizar un repositorio APT con su propia instancia de Pulp y volver a publicarlo palabra por palabra, sin tocar los paquetes, los metadatos o las firmas. Consulte la documentación de la API y la descripción general de las funciones para obtener más información y otros modos de publicación.
Flexibilidad de código abierto
Más contenido excelente
- Curso en línea gratuito:Descripción general técnica de RHEL
- Aprender comandos avanzados de Linux
- Descargar hojas de trucos
- Encuentre una alternativa de código abierto
- Lea el contenido principal de Linux
- Consulte los recursos de código abierto
Un aspecto importante de Pulp y su estructura de complementos es que es extremadamente flexible, en gran parte debido a su naturaleza de código abierto. Puede ejecutar Pulp como un servicio independiente, pero no es necesario. Se puede integrar en algo más grande.
Trabajo en ATIX, donde comenzamos a usar Pulp y el complemento Pulp Debian en un proyecto llamado orcharhino. Se basa en Foreman e incluye el poderoso complemento Katello para capacidades adicionales de administración de contenido, que a su vez depende de Pulp para la administración del repositorio. Con esto, hemos podido administrar nuestro centro de datos con la implementación automatizada del sistema, la administración de la configuración y la administración de parches.
En otras palabras, ATIX desarrolla el complemento Pulp Debian principalmente con un caso de uso de Katello en mente. Ya sea que necesite Katello o Pulp o simplemente un complemento de Pulp específico, puede estar seguro de que esta modularidad es por diseño.
Con Pulp, puede duplicar repositorios de software remotos, alojar paquetes de software privados y administrar diferentes tipos de contenido en una plataforma.
Pruebe Pulp y el complemento Pulp Debian hoy, y no tenga miedo de unirse y pedir ayuda a la comunidad. Damos la bienvenida a todos y cada uno de los comentarios.