GNU/Linux >> Tutoriels Linux >  >> Debian

Gérer le contenu avec Pulp Debian

Pulp est un outil de gestion de référentiel open source qui vous aide à récupérer, mettre en miroir, télécharger et publier du contenu au sein de votre organisation. Il peut être utilisé pour gérer divers types de contenu tels que des packages logiciels (des packages RPM aux gemmes Ruby), ainsi que des collections Ansible, des images de conteneurs et même des fichiers arbitraires.

Un flux de travail typique commence par la récupération de packages logiciels à partir d'un référentiel existant (par exemple, http://mirror.centos.org/centos/7/os/x86_64/) ou l'ajout manuel de packages (pour les packages privés créés au sein de votre organisation). Ensuite, Pulp vous aide à créer des collections arbitraires de packages logiciels consommables par les clients. Avec lui, vous :

  • Contrôler le contenu disponible pour les consommateurs
  • Peut utiliser le contrôle de version
  • Réduire les besoins en bande passante et en stockage en fournissant une source locale dédupliquée

Si vous débutez avec Pulp, lisez l'article d'introduction de Melanie Corr sur la façon de gérer vos dépôts de logiciels avec Pulp.

Gérer les packages Debian avec Pulp

Pulp s'appuie sur des plugins pour gérer correctement différents types de contenu. Par exemple, le plugin Pulp RPM vous permet de gérer les packages .rpm. Avec le plug-in Pulp Debian, vous pouvez mettre en miroir, synchroniser, télécharger et publier des packages .deb dans les référentiels APT. Le plugin pulp_deb est essentiel si vous souhaitez gérer et fournir des packages logiciels consommables pour les distributions Linux telles que Debian et Ubuntu, et c'est un logiciel gratuit et open source fourni et maintenu par la communauté Pulp.

Avec le plugin Pulp Debian, vous pouvez gérer le contenu Debian en synchronisant les référentiels distants, en fournissant une interface pour télécharger votre propre contenu et en publiant du contenu dans les référentiels.

Pulp prend en charge plusieurs types de contenu Debian différents, notamment les packages, les index de packages, les fichiers de publication, etc. "Type de contenu" fait référence à un artefact ou à des métadonnées spécifiques. Par exemple, une unité de contenu de type package fait référence à un package .deb.

La synchronisation d'un référentiel distant est l'une des principales fonctionnalités du plugin Pulp Debian, et c'est l'un des moyens d'obtenir du contenu. Le processus de synchronisation utilise une définition distante qui contient une URL, une distribution, des composants et des architectures :

  • L'URL est le chemin d'accès au référentiel APT distant.
  • La répartition est le chemin entre les dists/ répertoire du dépôt APT et le Release correspondant dossier. Il s'agit généralement (mais pas toujours) du nom de code ou de la suite de la distribution Linux basée sur Debian (buster pour Debian 10, stretch pour Debian 9, focal pour Ubuntu 20.04, etc.). Exécution de lsb_release -cs sur n'importe quel hôte Debian ou Ubuntu affiche le nom de code de la distribution.
  • Composants décrire des sous-ensembles arbitraires de référentiels (main , contrib , ou non-free pour Debian, ou main , restricted , universe , et multiverse pour Ubuntu). Vous pouvez l'utiliser pour filtrer et classer les packages dans un référentiel APT.
  • L'architecture fait référence à l'architecture du processeur sur laquelle un progiciel peut s'exécuter, le plus souvent i386 , amd64 , ou arm64 . Si un progiciel ne dépend pas d'une architecture de processeur spécifique, l'architecture peut être définie sur all .

La spécification d'une distribution est obligatoire, tandis que la définition des composants et des architectures est facultative. S'il n'est pas défini, Pulp synchronise automatiquement tous les packages sans filtrer les composants ou les architectures. Pulp vérifie automatiquement la signature GNU Privacy Guard de la Release Fichier, si la clé publique GPG correspondante est attribuée à la télécommande.

Un exemple de workflow

Il est facile de passer d'un référentiel distant à une publication verbatim avec l'API REST de Pulp. Les appels d'API suivants supposent que vous utilisez HTTPie.

Imaginez que vous souhaitiez fournir des packages .deb aux hôtes de votre organisation. Le flux de travail de base suivant guide vos premiers pas dans l'utilisation de Pulp et du plugin Pulp Debian.

1. Créer un dépôt local

Commencez par créer un référentiel local dans Pulp avec un seul appel d'API. Vous pouvez le faire avec HTTPie ou la commande curl :

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

2. Créer une télécommande

Ensuite, créez une télécommande. Cet appel d'API nécessite une URL et un name arbitraire valeur. La définition d'une distribution et d'une architecture est facultative :

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

Que vous définissiez une ou plusieurs distributions, Pulp synchronisera ultérieurement les packages pour toutes les architectures, car ils ne sont pas définis pour cette télécommande.

3. Synchroniser

La troisième et dernière étape pour récupérer du contenu distant dans Pulp consiste à synchroniser la télécommande avec votre référentiel local. Pour ce faire, appelez le point de terminaison de l'API de synchronisation de votre référentiel :

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>/

Dans cet exemple de commande, chacun des UUID fait référence aux références internes de Pulp, affichées sous la forme pulp_href par l'API. Cette étape peut prendre un certain temps, en fonction de votre environnement, de la taille du référentiel et de la bande passante disponible.

Rendre votre contenu Pulp consommable

Après avoir acquis du contenu pour Pulp via la synchronisation, il devient consommable par les clients.

1. Créer une publication

Les publications sont toujours basées sur un référentiel Pulp. Ils contiennent des paramètres supplémentaires sur la façon de publier du contenu. Vous pouvez utiliser le APT publisher sur n'importe quel dépôt de type APT contenant des packages .deb.

L'appel d'API suivant crée une publication en mode verbatim. Autrement dit, il fournit exactement la même structure et le même contenu que le référentiel distant :

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

Remplacez l'UUID par le référentiel que vous souhaitez publier. Cette étape peut prendre un certain temps, selon la taille du dépôt.

2. Créer une diffusion

Une distribution prend la publication terminée et la diffuse via l'application de contenu Pulp, qui la rend disponible (ou "consommable") par vos utilisateurs. Dans le contexte d'un système Debian, cela signifie que le référentiel peut être ajouté à /etc/apt/sources.list et utilisé comme moyen d'installer des logiciels.

L'appel d'API suivant nécessite l'UUID de la publication créée à la première étape :

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>/

Le base_path La valeur fait partie de l'URL utilisée par les clients lorsqu'ils se réfèrent au référentiel APT, et le nom peut être arbitraire. L'appel du point de terminaison API de la distribution sur une distribution publiée spécifique renvoie l'URL du référentiel Pulp :

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

Cette URL est directement consommable par les clients APT. Il peut maintenant être ajouté à /etc/apt/sources.list comme référentiel valide.

API Pulp

L'utilisation de ces appels d'API vous permet de synchroniser un référentiel APT avec votre propre instance Pulp et de le republier textuellement, sans toucher aux packages, aux métadonnées ou aux signatures. Reportez-vous à la documentation de l'API et à la présentation des fonctionnalités pour plus d'informations et d'autres modes de publication.

Flexibilité open source

Plus de contenu de qualité

  • Cours en ligne gratuit :Présentation technique de RHEL
  • Apprenez les commandes avancées de Linux
  • Télécharger les aide-mémoire
  • Trouvez une alternative open source
  • Lire le meilleur contenu Linux
  • Découvrez les ressources open source

Un aspect important de Pulp et de sa structure de plug-in est qu'il est extrêmement flexible, en grande partie en raison de sa nature open source. Vous pouvez exécuter Pulp en tant que service autonome, mais vous n'êtes pas obligé de le faire. Il peut être intégré dans quelque chose de plus grand.

Je travaille chez ATIX, où nous avons commencé à utiliser Pulp et le plugin Pulp Debian dans un projet appelé orcharhino. Il est basé sur Foreman et inclut le puissant plug-in Katello pour des capacités de gestion de contenu supplémentaires, qui s'appuie lui-même sur Pulp pour la gestion du référentiel. Grâce à cela, nous avons pu gérer notre centre de données grâce au déploiement automatisé du système, à la gestion de la configuration et à la gestion des correctifs.

En d'autres termes, ATIX développe le plugin Pulp Debian principalement avec un cas d'utilisation Katello à l'esprit. Que vous ayez besoin de Katello ou de Pulp ou simplement d'un plugin Pulp spécifique, vous pouvez être assuré que cette modularité est inhérente à la conception.

À l'aide de Pulp, vous pouvez mettre en miroir des référentiels de logiciels distants, héberger des packages de logiciels privés et gérer différents types de contenu sur une seule plate-forme.

Essayez Pulp et le plugin Pulp Debian dès aujourd'hui, et n'ayez pas peur de rejoindre et de demander de l'aide à la communauté. Nous apprécions tous les commentaires.


No
Debian
  1. Répliquer une base de données maître à l'aide de MariaDB 10 sur Debian 8

  2. Comment gérer les packages NodeJS à l'aide de Npm

  3. Debian – Utiliser deux écrans sur Debian ?

  4. Debian – Utiliser Live-helper hors ligne ?

  5. Apt obtenir des exemples de commandes pour gérer les packages sur Ubuntu/Debian

Comment installer et gérer des packages sur CentOS à l'aide de RPM

Comment ajouter un référentiel à Debian

Comment installer des paquets sur Debian 10

Comment gérer les packages Python à l'aide de PIP

Comment gérer les comptes d'utilisateurs dans Debian 10

Installez Teamviewer sur Debian 11 ou 10 à l'aide du terminal de commande