GNU/Linux >> Belajar Linux >  >> Debian

Kelola konten menggunakan Pulp Debian

Pulp adalah alat manajemen repositori sumber terbuka yang membantu Anda mengambil, mencerminkan, mengunggah, dan memublikasikan konten dalam organisasi Anda. Ini dapat digunakan untuk mengelola berbagai jenis konten seperti paket perangkat lunak (dari paket RPM hingga permata Ruby), serta koleksi Ansible, gambar kontainer, dan bahkan file arbitrer.

Alur kerja tipikal dimulai dengan mengambil paket perangkat lunak dari repositori yang ada (misalnya, http://mirror.centos.org/centos/7/os/x86_64/) atau menambahkan paket secara manual (untuk paket pribadi yang dibuat dalam organisasi Anda). Kemudian Pulp membantu Anda membuat kumpulan paket perangkat lunak sewenang-wenang yang dapat dikonsumsi oleh klien. Dengan itu, Anda:

  • Dapatkan kontrol atas konten yang tersedia untuk konsumen
  • Dapat menggunakan kontrol versi
  • Kurangi kebutuhan bandwidth dan penyimpanan dengan menyediakan sumber lokal yang tidak diduplikasi

Jika Anda baru mengenal Pulp, baca artikel pengantar Melanie Corr tentang cara mengelola repositori perangkat lunak Anda dengan Pulp.

Mengelola paket Debian dengan Pulp

Pulp bergantung pada plugin untuk menangani berbagai jenis konten secara memadai. Misalnya, plugin Pulp RPM memungkinkan Anda untuk mengelola paket .rpm. Dengan plugin Pulp Debian, Anda dapat mencerminkan, menyinkronkan, mengunggah, dan menerbitkan paket .deb dalam repositori APT. Plugin pulp_deb sangat penting jika Anda ingin mengelola dan menyediakan paket perangkat lunak yang dapat dikonsumsi untuk distribusi Linux seperti Debian dan Ubuntu, dan merupakan perangkat lunak sumber terbuka dan gratis yang disediakan dan dikelola oleh komunitas Pulp.

Dengan plugin Pulp Debian, Anda dapat mengelola konten Debian dengan menyinkronkan repositori jarak jauh, menyediakan antarmuka untuk mengunggah konten Anda sendiri, dan menerbitkan konten ke repositori.

Pulp mendukung beberapa tipe konten Debian yang berbeda, termasuk paket, indeks paket, File Rilis, dan banyak lagi. "Jenis konten" mengacu pada artefak atau metadata tertentu. Misalnya, unit konten jenis package mengacu pada paket .deb.

Menyinkronkan repositori jarak jauh adalah salah satu fitur utama plugin Pulp Debian, dan ini adalah salah satu cara untuk mendapatkan konten. Proses sinkronisasi menggunakan definisi jarak jauh yang berisi URL, distribusi, komponen, dan arsitektur:

  • URL adalah jalur ke repositori APT jarak jauh.
  • Distribusi adalah jalur antara dists/ direktori repositori APT dan Release yang relevan mengajukan. Ini biasanya (tetapi tidak selalu) nama kode atau rangkaian distribusi Linux berbasis Debian (buster untuk Debian 10, stretch untuk Debian 9, focal untuk Ubuntu 20.04, dan seterusnya). Menjalankan lsb_release -cs pada host Debian atau Ubuntu mana pun menunjukkan nama kode distribusi.
  • Komponen jelaskan subset repositori yang berubah-ubah (main , contrib , atau non-free untuk Debian, atau main , restricted , universe , dan multiverse untuk Ubuntu). Anda dapat menggunakan ini untuk memfilter dan mengkategorikan paket dalam repositori APT.
  • Arsitektur mengacu pada arsitektur prosesor yang dapat dijalankan oleh paket perangkat lunak, biasanya i386 , amd64 , atau arm64 . Jika paket perangkat lunak tidak bergantung pada arsitektur prosesor tertentu, arsitektur dapat disetel ke all .

Menentukan distribusi adalah wajib, sedangkan mendefinisikan komponen dan arsitektur adalah opsional. Jika tidak ditentukan, Pulp secara otomatis menyinkronkan semua paket tanpa memfilter komponen atau arsitektur. Pulp secara otomatis memverifikasi tanda tangan Penjaga Privasi GNU dari Release File, jika kunci publik GPG yang sesuai ditetapkan ke remote.

Contoh alur kerja

Sangat mudah untuk beralih dari repositori jarak jauh ke publikasi verbatim dengan REST API Pulp. Panggilan API berikut menganggap Anda menggunakan HTTPie.

Bayangkan Anda ingin menyediakan paket .deb ke host dalam organisasi Anda. Alur kerja dasar berikut memandu langkah pertama Anda dalam menggunakan Pulp dan plugin Pulp Debian.

1. Buat repositori lokal

Mulailah dengan membuat repositori lokal di Pulp dengan satu panggilan API. Anda dapat melakukannya dengan HTTPie atau perintah curl:

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

2. Buat remote

Selanjutnya, buat remote. Panggilan API ini memerlukan URL dan name arbitrer nilai. Mendefinisikan distribusi dan arsitektur adalah opsional:

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

Baik Anda mendefinisikan hanya satu atau beberapa distribusi, Pulp nantinya akan menyinkronkan paket untuk semua arsitektur, karena tidak ditentukan untuk remote ini.

3. Sinkronkan

Langkah ketiga dan terakhir untuk mengambil konten jarak jauh ke Pulp adalah menyinkronkan jarak jauh ke repositori lokal Anda. Anda melakukan ini dengan membuat panggilan ke titik akhir API sinkronisasi repositori Anda:

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

Dalam contoh perintah ini, setiap UUID mengacu pada referensi internal Pulp, ditampilkan sebagai pulp_href oleh API. Langkah ini mungkin memakan waktu, tergantung pada lingkungan Anda, ukuran repositori, dan bandwidth yang tersedia.

Jadikan konten Pulp Anda bisa dikonsumsi

Setelah memperoleh konten untuk Pulp melalui sinkronisasi, konten tersebut dapat dikonsumsi oleh klien.

1. Buat publikasi

Publikasi selalu didasarkan pada repositori Pulp. Mereka berisi pengaturan tambahan tentang cara mempublikasikan konten. Anda dapat menggunakan APT penerbit pada repositori jenis APT apa pun yang berisi paket .deb.

Panggilan API berikut membuat publikasi dalam mode verbatim. Artinya, ia menyediakan struktur dan konten repositori jarak jauh yang sama persis:

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

Ganti UUID dengan repositori yang ingin Anda terbitkan. Langkah ini mungkin memakan waktu, tergantung pada ukuran repositori.

2. Buat distribusi

Distribusi mengambil publikasi yang telah selesai dan menyajikannya melalui aplikasi konten Pulp, yang membuatnya tersedia (atau "dapat dikonsumsi") oleh pengguna Anda. Dalam konteks sistem Debian, ini berarti repositori dapat ditambahkan ke /etc/apt/sources.list dan digunakan sebagai cara untuk menginstal perangkat lunak.

Panggilan API berikut memerlukan UUID publikasi yang dibuat pada langkah pertama:

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

base_path value adalah bagian dari URL yang digunakan oleh klien saat merujuk ke repositori APT, dan namanya bisa berubah-ubah. Memanggil titik akhir API distribusi pada distribusi tertentu yang dipublikasikan akan mengembalikan URL repositori Pulp:

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

URL ini dapat dikonsumsi langsung oleh klien APT. Sekarang dapat ditambahkan ke /etc/apt/sources.list sebagai repositori yang valid.

API Pulp

Menggunakan panggilan API ini memungkinkan Anda menyinkronkan repositori APT ke instans Pulp Anda sendiri dan memublikasikannya ulang kata demi kata, tanpa menyentuh paket, metadata, atau tanda tangan apa pun. Lihat dokumentasi API dan ikhtisar fitur untuk informasi lebih lanjut dan mode publikasi lainnya.

Fleksibilitas sumber terbuka

Lebih Banyak Konten Hebat

  • Kursus online gratis:Ikhtisar teknis RHEL
  • Pelajari Perintah Linux Tingkat Lanjut
  • Unduh Lembar Cheat
  • Temukan Alternatif Sumber Terbuka
  • Baca Konten Linux Teratas
  • Lihat sumber daya sumber terbuka

Salah satu aspek penting dari Pulp dan struktur pluginnya adalah sangat fleksibel, tidak sedikit karena sifatnya yang open source. Anda dapat menjalankan Pulp sebagai layanan mandiri, tetapi Anda tidak harus melakukannya. Itu dapat diintegrasikan menjadi sesuatu yang lebih besar.

Saya bekerja di ATIX, tempat kami mulai menggunakan Pulp dan plugin Pulp Debian dalam proyek yang disebut orcharhino. Ini didasarkan pada Foreman dan menyertakan plugin Katello yang kuat untuk kemampuan manajemen konten tambahan, yang dengan sendirinya bergantung pada Pulp untuk manajemen repositori. Dengan ini, kami dapat mengelola pusat data kami dengan penerapan sistem otomatis, manajemen konfigurasi, dan manajemen patch.

Dengan kata lain, ATIX mengembangkan plugin Pulp Debian terutama dengan mempertimbangkan kasus penggunaan Katello. Baik Anda membutuhkan Katello atau Pulp atau hanya plugin Pulp tertentu, Anda dapat yakin bahwa modularitas ini dirancang.

Dengan menggunakan Pulp, Anda dapat mencerminkan repositori perangkat lunak jarak jauh, menghosting paket perangkat lunak pribadi, dan mengelola berbagai jenis konten pada satu platform.

Coba Pulp dan plugin Pulp Debian hari ini, dan jangan takut untuk bergabung dan meminta bantuan komunitas. Kami menyambut setiap dan semua masukan.


No
Debian
  1. Mereplikasi database master menggunakan MariaDB 10 di Debian 8

  2. Contoh perintah Dpkg untuk mengelola paket di Ubuntu/Debian

  3. Debian:Cara Menginstal atau Menghapus Paket DEB Menggunakan dpkg

  1. Cara Mengelola Paket NodeJS Menggunakan Npm

  2. Debian – Menggunakan Dua Tampilan Di Debian?

  3. Debian – Menggunakan Live-helper Offline?

  1. ​Cara Mengupgrade Debian 10 Buster ke Debian 11 Bullseye

  2. Cara Mendaftar Paket yang Terinstal di Debian

  3. Apt get command contoh untuk mengelola paket di Ubuntu/Debian