GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Verwalten Sie Inhalte mit Pulp Debian

Pulp ist ein Open-Source-Repository-Verwaltungstool, mit dem Sie Inhalte in Ihrer Organisation abrufen, spiegeln, hochladen und veröffentlichen können. Es kann verwendet werden, um verschiedene Arten von Inhalten wie Softwarepakete (von RPM-Paketen bis hin zu Ruby-Gems) sowie Ansible-Sammlungen, Container-Images und sogar beliebige Dateien zu verwalten.

Ein typischer Arbeitsablauf beginnt mit dem Abrufen von Softwarepaketen aus einem vorhandenen Repository (z. B. http://mirror.centos.org/centos/7/os/x86_64/) oder dem manuellen Hinzufügen von Paketen (für private Pakete, die in Ihrer Organisation erstellt wurden). Dann hilft Ihnen Pulp dabei, beliebige Sammlungen von Softwarepaketen zu erstellen, die von Clients genutzt werden können. Damit:

  • Übernehmen Sie die Kontrolle darüber, welche Inhalte Verbrauchern zur Verfügung stehen
  • Kann die Versionskontrolle verwenden
  • Reduzieren Sie den Bandbreiten- und Speicherbedarf, indem Sie eine lokale, deduplizierte Quelle bereitstellen

Wenn Sie neu bei Pulp sind, lesen Sie den Einführungsartikel von Melanie Corr zur Verwaltung Ihrer Software-Repositories mit Pulp.

Verwalten Sie Debian-Pakete mit Pulp

Pulp ist auf Plugins angewiesen, um verschiedene Arten von Inhalten angemessen zu handhaben. Mit dem Pulp-RPM-Plug-in können Sie beispielsweise .rpm-Pakete verwalten. Mit dem Pulp Debian-Plugin können Sie .deb-Pakete innerhalb von APT-Repositories spiegeln, synchronisieren, hochladen und veröffentlichen. Das pulp_deb-Plugin ist unerlässlich, wenn Sie verbrauchbare Softwarepakete für Linux-Distributionen wie Debian und Ubuntu verwalten und bereitstellen möchten, und es handelt sich um kostenlose Open-Source-Software, die von der Pulp-Community bereitgestellt und gepflegt wird.

Mit dem Pulp Debian-Plugin können Sie Debian-Inhalte verwalten, indem Sie entfernte Repositories synchronisieren, eine Schnittstelle zum Hochladen Ihrer eigenen Inhalte bereitstellen und Inhalte in Repositories veröffentlichen.

Pulp unterstützt mehrere verschiedene Debian-Inhaltstypen, darunter Pakete, Paketindizes, Release-Dateien und mehr. "Inhaltstyp" bezieht sich entweder auf ein bestimmtes Artefakt oder auf Metadaten. Zum Beispiel eine Inhaltseinheit vom Typ package bezieht sich auf ein .deb-Paket.

Das Synchronisieren eines entfernten Repositorys ist eine der Hauptfunktionen des Pulp Debian-Plugins und eine der Möglichkeiten, Inhalte zu erhalten. Der Synchronisationsprozess verwendet eine Remote-Definition, die eine URL, Distribution, Komponenten und Architekturen enthält:

  • Die URL ist der Pfad zum entfernten APT-Repository.
  • Die Verteilung ist der Pfad zwischen den dists/ Verzeichnis des APT-Repositorys und das entsprechende Release Datei. Dies ist normalerweise (aber nicht immer) der Codename oder die Suite der Debian-basierten Linux-Distribution (buster). für Debian 10 stretch für Debian 9, focal für Ubuntu 20.04 usw.). Ausführen von lsb_release -cs auf jedem Debian- oder Ubuntu-Host zeigt den Codenamen der Distribution.
  • Komponenten Beschreiben beliebiger Teilmengen von Repositories (main , contrib , oder non-free für Debian oder main , restricted , universe , und multiverse für Ubuntu). Sie können dies verwenden, um Pakete innerhalb eines APT-Repositorys zu filtern und zu kategorisieren.
  • Die Architektur bezieht sich auf die Prozessorarchitektur, auf der ein Softwarepaket ausgeführt werden kann, am häufigsten i386 , amd64 , oder arm64 . Wenn ein Softwarepaket nicht von einer bestimmten Prozessorarchitektur abhängt, kann die Architektur auf all gesetzt werden .

Die Angabe einer Distribution ist obligatorisch, während die Definition von Komponenten und Architekturen optional ist. Wenn nicht definiert, synchronisiert Pulp automatisch alle Pakete, ohne nach Komponenten oder Architekturen zu filtern. Pulp verifiziert automatisch die GNU Privacy Guard-Signatur der Release Datei, falls der Fernbedienung der entsprechende öffentliche GPG-Schlüssel zugewiesen wurde.

Ein Beispiel-Workflow

Mit der REST-API von Pulp ist es einfach, von einem Remote-Repository zu einer wörtlichen Veröffentlichung zu wechseln. Die folgenden API-Aufrufe gehen davon aus, dass Sie HTTPie verwenden.

Stellen Sie sich vor, Sie möchten Hosts innerhalb Ihrer Organisation .deb-Pakete bereitstellen. Der folgende grundlegende Arbeitsablauf führt Sie zu den ersten Schritten bei der Verwendung von Pulp und dem Pulp-Debian-Plugin.

1. Erstellen Sie ein lokales Repository

Erstellen Sie zunächst mit einem einzigen API-Aufruf ein lokales Repository in Pulp. Sie können dies mit HTTPie oder dem Curl-Befehl tun:

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

2. Erstellen Sie eine Fernbedienung

Erstellen Sie als Nächstes eine Fernbedienung. Dieser API-Aufruf erfordert eine URL und einen beliebigen name Wert. Die Definition einer Distribution und Architektur ist optional:

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

Unabhängig davon, ob Sie nur eine oder mehrere Distributionen definieren, synchronisiert Pulp später Pakete für alle Architekturen, da sie für diese Remote nicht definiert sind.

3. Synchronisieren

Der dritte und letzte Schritt zum Abrufen von Remote-Inhalten in Pulp besteht darin, die Remote mit Ihrem lokalen Repository zu synchronisieren. Sie tun dies, indem Sie den Sync-API-Endpunkt Ihres Repositorys aufrufen:

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

In diesem Beispielbefehl bezieht sich jede der UUIDs auf die internen Referenzen von Pulp, die als pulp_href angezeigt werden durch die API. Dieser Schritt kann abhängig von Ihrer Umgebung, der Größe des Repositorys und der verfügbaren Bandbreite einige Zeit in Anspruch nehmen.

Machen Sie Ihren Pulp-Content konsumierbar

Nachdem Inhalte für Pulp durch Synchronisierung erworben wurden, werden sie für Clients konsumierbar.

1. Erstellen Sie eine Veröffentlichung

Veröffentlichungen basieren immer auf einem Pulp-Repository. Sie enthalten zusätzliche Einstellungen zum Veröffentlichen von Inhalten. Sie können den APT verwenden Publisher auf jedem Repository des Typs APT, das .deb-Pakete enthält.

Der folgende API-Aufruf erstellt eine Veröffentlichung im wörtlichen Modus. Das heißt, es bietet genau die gleiche Struktur und den gleichen Inhalt wie das Remote-Repository:

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

Ersetzen Sie die UUID durch das Repository, das Sie veröffentlichen möchten. Dieser Schritt kann je nach Größe des Repositorys einige Zeit in Anspruch nehmen.

2. Erstellen Sie eine Verteilung

Eine Distribution übernimmt die fertige Publikation und stellt sie über die Pulp-Content-App bereit, die sie für Ihre Benutzer verfügbar (oder „konsumierbar“) macht. Im Kontext eines Debian-Systems bedeutet dies, dass das Repository zu /etc/apt/sources.list hinzugefügt werden kann und zur Installation von Software verwendet.

Der folgende API-Aufruf benötigt die UUID der im ersten Schritt erstellten Publikation:

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

Der base_path value ist Teil der URL, die von Clients verwendet wird, wenn sie auf das APT-Repository verweisen, und der Name kann beliebig sein. Das Aufrufen des API-Endpunkts der Distribution auf einer bestimmten veröffentlichten Distribution gibt die URL des Pulp-Repositorys zurück:

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

Diese URL kann direkt von APT-Clients genutzt werden. Es kann jetzt zu /etc/apt/sources.list hinzugefügt werden als gültiges Repository.

Pulp-API

Mit diesen API-Aufrufen können Sie ein APT-Repository mit Ihrer eigenen Pulp-Instanz synchronisieren und es wörtlich neu veröffentlichen, ohne die Pakete, Metadaten oder Signaturen zu berühren. Weitere Informationen und andere Veröffentlichungsmodi finden Sie in der API-Dokumentation und Funktionsübersicht.

Open-Source-Flexibilität

Weitere tolle Inhalte

  • Kostenloser Online-Kurs:Technischer RHEL-Überblick
  • Erfahren Sie fortgeschrittene Linux-Befehle
  • Spickzettel herunterladen
  • Finden Sie eine Open-Source-Alternative
  • Lesen Sie Top-Linux-Inhalte
  • Schauen Sie sich Open-Source-Ressourcen an

Ein wichtiger Aspekt von Pulp und seiner Plugin-Struktur ist, dass es nicht zuletzt aufgrund seiner Open-Source-Natur äußerst flexibel ist. Sie können Pulp als eigenständigen Dienst ausführen, müssen dies aber nicht. Es kann in etwas Größeres integriert werden.

Ich arbeite bei ATIX, wo wir begonnen haben, Pulp und das Pulp-Debian-Plugin in einem Projekt namens orcharhino zu verwenden. Es basiert auf Foreman und enthält das leistungsstarke Katello-Plug-in für zusätzliche Content-Management-Funktionen, das selbst für die Repository-Verwaltung auf Pulp angewiesen ist. Dadurch konnten wir unser Rechenzentrum mit automatisierter Systembereitstellung, Konfigurationsverwaltung und Patchverwaltung verwalten.

Mit anderen Worten, ATIX entwickelt das Pulp-Debian-Plug-In hauptsächlich für einen Katello-Anwendungsfall. Egal, ob Sie Katello oder Pulp oder nur ein bestimmtes Pulp-Plug-in benötigen, Sie können sicher sein, dass diese Modularität beabsichtigt ist.

Mit Pulp können Sie Remote-Software-Repositories spiegeln, private Softwarepakete hosten und verschiedene Arten von Inhalten auf einer Plattform verwalten.

Probieren Sie Pulp und das Pulp-Debian-Plug-In noch heute aus und scheuen Sie sich nicht, der Community beizutreten und sie um Hilfe zu bitten. Wir freuen uns über jedes Feedback.


No
Debian
  1. Replizieren einer Master-Datenbank mit MariaDB 10 auf Debian 8

  2. So verwalten Sie NodeJS-Pakete mit Npm

  3. Debian – Verwenden von zwei Displays unter Debian?

  4. Debian – Live-Helper offline verwenden?

  5. Apt get-Befehlsbeispiele zum Verwalten von Paketen unter Ubuntu/Debian

So installieren und verwalten Sie Pakete auf CentOS mit RPM

Wie man ein Repository zu Debian hinzufügt

So installieren Sie Pakete unter Debian 10

So verwalten Sie Python-Pakete mit PIP

So verwalten Sie Benutzerkonten in Debian 10

Installieren Sie Teamviewer unter Debian 11 oder 10 über das Befehlsterminal