GNU/Linux >> Linux Esercitazione >  >> Debian

Gestisci i contenuti usando Pulp Debian

Pulp è uno strumento di gestione dei repository open source che ti aiuta a recuperare, eseguire il mirroring, caricare e pubblicare contenuti all'interno della tua organizzazione. Può essere utilizzato per gestire vari tipi di contenuti come pacchetti software (dai pacchetti RPM alle gemme Ruby), nonché raccolte Ansible, immagini di contenitori e persino file arbitrari.

Un flusso di lavoro tipico inizia con il recupero dei pacchetti software da un repository esistente (ad esempio, http://mirror.centos.org/centos/7/os/x86_64/) o l'aggiunta manuale di pacchetti (per i pacchetti privati ​​creati all'interno dell'organizzazione). Quindi Pulp ti aiuta a creare raccolte arbitrarie di pacchetti software che possono essere consumati dai clienti. Con esso, tu:

  • Acquisisci il controllo sui contenuti disponibili per i consumatori
  • Può usare il controllo della versione
  • Riduci la larghezza di banda e le esigenze di archiviazione fornendo una fonte locale deduplicata

Se non conosci Pulp, leggi l'articolo introduttivo di Melanie Corr su come gestire i tuoi repository software con Pulp.

Gestisci pacchetti Debian con Pulp

Pulp si affida ai plugin per gestire adeguatamente diversi tipi di contenuto. Ad esempio, il plug-in Pulp RPM consente di gestire i pacchetti .rpm. Con il plug-in Pulp Debian, puoi eseguire il mirroring, sincronizzare, caricare e pubblicare pacchetti .deb all'interno dei repository APT. Il plug-in pulp_deb è essenziale se desideri gestire e fornire pacchetti software di consumo per distribuzioni Linux come Debian e Ubuntu, ed è un software gratuito e open source fornito e mantenuto dalla comunità Pulp.

Con il plug-in Pulp Debian, puoi gestire i contenuti Debian sincronizzando repository remoti, fornendo un'interfaccia per caricare i tuoi contenuti e pubblicando contenuti nei repository.

Pulp supporta diversi tipi di contenuto Debian, inclusi pacchetti, indici di pacchetti, file di rilascio e altro. "Tipo di contenuto" si riferisce a un artefatto o metadati specifici. Ad esempio, un'unità di contenuto di tipo package fa riferimento a un pacchetto .deb.

La sincronizzazione di un repository remoto è una delle caratteristiche principali del plugin Pulp Debian ed è uno dei modi per ottenere contenuti. Il processo di sincronizzazione utilizza una definizione remota che contiene un URL, una distribuzione, componenti e architetture:

  • L'URL è il percorso del repository APT remoto.
  • La distribuzione è il percorso tra le dists/ directory del repository APT e il relativo Release file. Questo è solitamente (ma non sempre) il nome in codice o la suite della distribuzione Linux basata su Debian (buster per Debian 10, stretch per Debian 9, focal per Ubuntu 20.04 e così via). Esecuzione di lsb_release -cs su qualsiasi host Debian o Ubuntu mostra il nome in codice della distribuzione.
  • Componenti descrivi sottoinsiemi arbitrari di repository (main , contrib o non-free per Debian, o main , restricted , universe e multiverse per Ubuntu). Puoi usarlo per filtrare e classificare i pacchetti all'interno di un repository APT.
  • L'architettura si riferisce all'architettura del processore su cui può essere eseguito un pacchetto software, più comunemente i386 , amd64 o arm64 . Se un pacchetto software non dipende da un'architettura del processore specifica, l'architettura può essere impostata su all .

La specifica di una distribuzione è obbligatoria, mentre la definizione di componenti e architetture è facoltativa. Se non definito, Pulp sincronizza automaticamente tutti i pacchetti senza filtrare componenti o architetture. Pulp verifica automaticamente la firma GNU Privacy Guard del Release File, se la chiave pubblica GPG corrispondente è assegnata al telecomando.

Un esempio di flusso di lavoro

È facile passare da un repository remoto a una pubblicazione letterale con l'API REST di Pulp. Le seguenti chiamate API presuppongono che tu stia utilizzando HTTPie.

Immagina di voler fornire pacchetti .deb agli host della tua organizzazione. Il seguente flusso di lavoro di base guida i tuoi primi passi nell'utilizzo di Pulp e del plugin Pulp Debian.

1. Crea un repository locale

Inizia creando un repository locale in Pulp con una singola chiamata API. Puoi farlo con HTTPie o il comando curl:

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

2. Crea un telecomando

Quindi, crea un telecomando. Questa chiamata API richiede un URL e un name arbitrario valore. La definizione di una distribuzione e di un'architettura è facoltativa:

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

Indipendentemente dal fatto che tu definisca solo una o più distribuzioni, Pulp sincronizzerà in seguito i pacchetti per tutte le architetture, poiché non sono definiti per questo telecomando.

3. Sincronizza

Il terzo e ultimo passaggio per recuperare il contenuto remoto su Pulp è sincronizzare il telecomando con il tuo repository locale. Puoi farlo effettuando una chiamata all'endpoint API di sincronizzazione del tuo repository:

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 questo comando di esempio, ciascuno degli UUID fa riferimento ai riferimenti interni di Pulp, visualizzati come pulp_href dall'API. Questo passaggio potrebbe richiedere del tempo, a seconda dell'ambiente, delle dimensioni del repository e della larghezza di banda disponibile.

Rendi consumabili i tuoi contenuti Pulp

Dopo aver acquisito il contenuto per Pulp tramite la sincronizzazione, diventa consumabile dai client.

1. Crea una pubblicazione

Le pubblicazioni sono sempre basate su un repository Pulp. Contengono impostazioni aggiuntive su come pubblicare il contenuto. Puoi usare il APT editore su qualsiasi repository di tipo APT contenente pacchetti .deb.

La seguente chiamata API crea una pubblicazione in modalità letterale. Cioè, fornisce esattamente la stessa struttura e contenuto del repository remoto:

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

Sostituisci l'UUID con il repository che desideri pubblicare. Questo passaggio potrebbe richiedere del tempo, a seconda delle dimensioni del repository.

2. Crea una distribuzione

Una distribuzione prende la pubblicazione finita e la serve tramite l'app Pulp content, che la rende disponibile (o "consumabile") dai tuoi utenti. Nel contesto di un sistema Debian, questo significa che il repository può essere aggiunto a /etc/apt/sources.list e utilizzato come metodo per installare il software.

La seguente chiamata API richiede l'UUID della pubblicazione creata nel primo passaggio:

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

Il base_path value fa parte dell'URL utilizzato dai client quando si fa riferimento al repository APT e il nome può essere arbitrario. La chiamata all'endpoint API della distribuzione su una specifica distribuzione pubblicata restituisce l'URL del repository Pulp:

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

Questo URL è direttamente utilizzabile dai client APT. Ora può essere aggiunto a /etc/apt/sources.list come repository valido.

API Pulp

L'utilizzo di queste chiamate API ti consente di sincronizzare un repository APT con la tua istanza Pulp e di ripubblicarlo alla lettera, senza toccare i pacchetti, i metadati o le firme. Fare riferimento alla documentazione dell'API e alla panoramica delle funzionalità per ulteriori informazioni e altre modalità di pubblicazione.

Flessibilità open source

Più contenuti eccezionali

  • Corso online gratuito:panoramica tecnica di RHEL
  • Impara i comandi avanzati di Linux
  • Scarica cheat sheet
  • Trova un'alternativa Open Source
  • Leggi i migliori contenuti Linux
  • Dai un'occhiata alle risorse open source

Un aspetto importante di Pulp e della sua struttura di plugin è che è estremamente flessibile, in gran parte dovuto alla sua natura open source. Puoi eseguire Pulp come servizio autonomo, ma non è necessario. Può essere integrato in qualcosa di più grande.

Lavoro in ATIX, dove abbiamo iniziato a usare Pulp e il plugin Pulp Debian in un progetto chiamato orcharhino. È basato su Foreman e include il potente plug-in Katello per ulteriori capacità di gestione dei contenuti, che a sua volta si basa su Pulp per la gestione del repository. In questo modo, siamo stati in grado di gestire il nostro data center con l'implementazione automatizzata del sistema, la gestione della configurazione e la gestione delle patch.

In altre parole, ATIX sviluppa il plugin Pulp Debian principalmente pensando a un caso d'uso Katello. Che tu abbia bisogno di Katello o Pulp o solo di un plug-in Pulp specifico, puoi essere certo che questa modularità è in base alla progettazione.

Utilizzando Pulp, puoi eseguire il mirroring di repository software remoti, ospitare pacchetti software privati ​​e gestire diversi tipi di contenuti su un'unica piattaforma.

Prova oggi Pulp e il plugin Pulp Debian e non aver paura di unirti e chiedere aiuto alla comunità. Diamo il benvenuto a qualsiasi feedback.


No
Debian
  1. Replica di un database master usando MariaDB 10 su Debian 8

  2. Come gestire i pacchetti NodeJS usando Npm

  3. Debian:utilizzo di due display su Debian?

  4. Debian – Usare Live-helper offline?

  5. Esempi di comandi Dpkg per gestire i pacchetti in Ubuntu/Debian

Come installare e gestire i pacchetti su CentOS utilizzando RPM

Come aggiungere un repository a Debian

Come installare i pacchetti su Debian 10

Come gestire i pacchetti Python utilizzando PIP

Come gestire gli account utente in Debian 10

Installa Teamviewer su Debian 11 o 10 usando il terminale di comando