GNU/Linux >> Tutoriales Linux >  >> Debian

Administrar contenido usando Pulp Debian

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 el Release 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.). Ejecutando lsb_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 , o non-free para Debian, o main , restricted , universe y multiverse 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 , o arm64 . Si un paquete de software no depende de una arquitectura de procesador específica, la arquitectura puede establecerse en all .

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.


No
Debian
  1. Replicar una base de datos maestra usando MariaDB 10 en Debian 8

  2. Cómo administrar paquetes de NodeJS usando Npm

  3. Debian – ¿Usar dos pantallas en Debian?

  4. Debian:¿usando Live-helper sin conexión?

  5. Debian:Cómo instalar o eliminar paquetes DEB usando dpkg

Cómo instalar y administrar paquetes en CentOS usando RPM

Cómo agregar un repositorio a Debian

Cómo instalar paquetes en Debian 10

Cómo administrar paquetes de Python usando PIP

Cómo administrar cuentas de usuario en Debian 10

Instale Teamviewer en Debian 11 o 10 usando la terminal de comandos