Perkenalan

Perkenalan

Artikel ini di adalah kelanjutan logis dari artikel PXE kami, karena setelah membaca ini Anda akan dapat jaringan boot dan benar -benar menginstal distribusi pilihan Anda. Tetapi ada penggunaan lain untuk membuat repositori Anda sendiri. Misalnya, bandwidth. Jika Anda mengelola jaringan dan semua sistem (atau beberapa) menjalankan distribusi yang sama, lebih mudah bagi Anda untuk hanya rsync bersama dengan cermin di dekatnya dan melayani pembaruan sendiri. Selanjutnya, mungkin Anda memiliki beberapa paket yang dibuat oleh Anda yang tidak akan diterima oleh distro Anda di pohon utama, tetapi pengguna menganggapnya berguna. Dapatkan nama domain, atur server web dan begitulah. Kami tidak akan merinci pengaturan server web di sini, hanya tugas instalasi dasar dan pengaturan dasar repositori untuk sistem fedora atau debian. Oleh karena itu Anda diharapkan memiliki perangkat keras yang diperlukan (server dan peralatan jaringan yang diperlukan, tergantung pada situasinya) dan beberapa pengetahuan tentang Linux dan server web. Jadi ayo mulai.

CATATAN:Artikel ini dipindahkan dari domain linuxcareer kami sebelumnya.com.

Membuat repositori di sistem fedora

Menginstal alat

Fedora memiliki alat yang dipanggil CreateRepo yang menyederhanakan tugas yang ada. Jadi, yang perlu kami instal adalah itu dan httpd sebagai server web:

 # yum instal createRepo httpd 

Menyiapkan repositori

Sekarang, setelah menyiapkan server web Anda, kami akan berasumsi bahwa direktori root adalah AR /var /www. Kami harus membuat direktori yang diperlukan dalam hal yang terorganisir (jangan ragu untuk menyesuaikan dengan rasa jika perlu atau hanya mengikuti tata letak resmi):

 # CD/var/www/html # mkdir -p fedora/15/x86_64/basis # mkdir fedora/15/x86_64/pembaruan 

Itu saja untuk saat ini. Yang harus kami lakukan adalah RSYNC ke folder yang dibuat dan pastikan kami memiliki banyak ruang yang tersedia:

 # rsync -avrt rsync: // ftp.heanet.yaitu/pub/fedora/linux/rilis/15/semuanya \/x86_64/os/paket//var/www/html/fedora/15/x86_64/basis 

Sekarang gunakan CreateRepo untuk folder dasar:

 # CreateRepo/var/www/html/fedora/15/x86_64/basis 

Ini wajib, karena akan membuat direktori repodata yang dibutuhkan Yum saat menggunakan repositori Anda. Sekarang mari kita ulangi langkah yang sama seperti di atas, tetapi kali ini kita akan mendapatkan pembaruan:

 # rsync -avrt rsync: // ftp.heanet.yaitu/pub/fedora/linux/\ pembaruan/15/x86_64//var/www/html/fedora/15/x86_64/pembaruan 

Pada akhirnya, kami sarankan Anda memeriksa apakah httpd diatur untuk memulai boot dan juga menggunakan cron untuk mendapatkan pembaruan secara teratur:

 # Systemctl Aktifkan httpd.Layanan # crontab -e 

Ingatlah bahwa perintah rsync yang akan ditambahkan adalah yang kedua, yang terkait dengan pembaruan dan bahwa Systemctl hanya tersedia di fedora 15 atau lebih. Gunakan NTSYSV atau CHKConfig pada sistem fedora yang lebih tua.

Pengaturan Klien

Anda harus memberi tahu mesin yang akan mendapatkan pembaruan dari server Anda di mana menemukannya, jadi kami mulai dengan membuat .File repo:

# Ini akan menjadi dasar.Repo [base -lan] name = fedora $ rilis - $ basearch failovermethod = prioritas baseUrl = http: // 192.168.1.2/fedora/$ rilis/$ basa/basis diaktifkan = 1 # Pastikan Anda menonaktifkan resmi .file repo dengan enabled = 0 gpgcheck = 0 # Ini akan menjadi pembaruan-lan.Repo [pembaruan -lan] Nama = Fedora $ Releasever - $ Basearch - Pembaruan FailOverMethod = Prioritas BaseUrl = http: // 192.168.1.2/fedora/$ rilis/$ basa penelitian/pembaruan gpgcheck = 0 

Sekarang, lakukan saja

 # pembaruan yum 

dan Anda siap untuk pergi.

Penandatanganan paket

Seperti yang ditunjukkan oleh salah satu pembaca kami, orang harus mengetahui masalah keamanan saat memasang paket. Perangkat lunak dapat diunduh dari server yang dikompromikan dan mungkin mengandung executable berbahaya. YUM (dan apt, zypper dan sistem manajemen paket lainnya) mengatasi masalah ini dengan menggunakan kunci GPG. Kami berbicara tentang mencerminkan repositori fedora. Paket-paket ini sudah ditandatangani, dan kunci dapat ditemukan di/etc/pki/rpm-gpg. Jika Anda pernah menggunakan repo fedora resmi sebagai klien sebelum mengaktifkan repositori lokal Anda, direktori itu sudah berisi kunci yang diperlukan. Jika tidak, kunci dapat diunduh dari getfedora.org/kunci/. Sekarang, kita harus mengubah kita .repo file untuk mengaktifkan gpgcheck dan memberi tahu yum di mana kunci berada.

# Ini adalah satu-satunya baris yang perlu diubah gpgcheck = 1 gpgkey = file: /// etc/pki/rpm-gpg/rpm-gpg-key-fedora 

Jika Anda menggunakan repositori paket khusus lokal, Yum akan mengeluh bahwa paket khusus Anda tidak ditandatangani. Anda dapat menggunakan bendera yum -nogpgcheck jika Anda adalah pemelihara cermin/repositori dan Anda hanya melayani paket ke organisasi Anda, atau, cara yang aman, menandatangani paket khusus juga. Ini karena server yang memegang repositori kustom/lokal juga dapat dikompromikan. Jadi Anda harus membuat tombol GPG di server dan menggunakan RPM untuk menandatangani paket khusus:

$ gpg --gen-key $ gpg-list-sigs

Seperti yang Anda lihat, UserID ada dalam kasus kami "Karier Linux". Sekarang untuk membuat kunci publik:

 $ gpg --mor -export "userid"> my.kunci.mengajukan.ASC $ GPG -KEYSERVER PGP.mit.edu --ding-key "userid" 

Tentu saja, userid Anda akan berbeda, jadi ubah info yang sesuai. Perhatikan bahwa pada fedora 16, di mana kami menguji ini, yang dapat dieksekusi bernama GPG2 bukan GPG.

Kita hanya perlu membuat a .File RPMMACROS di direktori home pengguna yang akan menandatangani paket, dan meletakkan yang berikut di sana:

%_Signature gpg %_gpg_name userid %_gpgbin/usr/bin/gpg2 

Perintah untuk menandatangani paket, sekarang semuanya sudah ditetapkan, akan

 $ rpm --addsign name_of_package.RPM

Sekarang klien yang mengunduh dari repo khusus Anda akan menggunakan 'RPM -Import $ key' untuk dapat mengunduh paket khusus tersebut.

Membuat repositori di sistem debian

Menginstal

Karena struktur repositori Debian lebih berbelit -belit, Anda akan melihat bahwa itu membutuhkan sedikit lebih banyak pekerjaan di sisi server, tetapi lebih sedikit di sisi klien. Setiap saat, akan ada tiga bagian: stabil, pengujian dan tidak stabil (tidak termasuk eksperimental) yang masing-masing memiliki tiga komponen tergantung pada bagaimana paket dilisensikan: utama, kontribi dan tidak bebas. Ini adalah keputusan Anda untuk membuat bagian dari distribusi yang ingin dicerminkan, tetapi tugas kami untuk memperingatkan Anda: Debian memiliki lebih banyak paket untuk ditawarkan daripada Fedora, sehingga persyaratan ruang disk akan tumbuh secara signifikan. Ada banyak alat yang dapat Anda gunakan untuk membuat repositori khusus dengan paket khusus Anda sendiri, tetapi kami akan tetap berpegang pada paket resmi untuk saat ini. Jadi, kami akan mendapatkan kembali pengaturan kami untuk artikel PXE dan membuat repo lokal untuk instalasi. Kami akan membutuhkan server web, jadi mari kita instal:

 # aptitude instal apache2 

Pastikan Apache dikonfigurasi dan dimulai sebelum Anda melanjutkan.

Pengaturan Server

Direktori root default, seperti di fedora, IS /var /www, jadi mari kita membuat direktori Debian di sana:

 # mkdir/var/www/debian 

Orang -orang Debian merekomendasikan ftpsync, kumpulan skrip perl yang dimaksudkan untuk membantu Anda mendapatkan apa yang Anda butuhkan ke cermin lokal Anda. Minat khusus adalah --mengecualikan Opsi, karena Anda tidak ingin mendapatkan semua isi arsip Debian (hanya AMD64, hanya utama dan kontribi, hanya memeras, tanpa CD, dll.). Jika Anda ingin membuat repositori untuk digunakan setelah instalasi, arahkan saja/etc/apt/sumber Anda.Daftar ke direktori yang memicu paket (Anda sudah memiliki model yang berfungsi di sana) dan itu saja. Misalnya:

 Deb http: // 192.168.1.2/Debian Squeeze Main Contrib 

Tapi mari kita lihat secara detail apa yang perlu Anda unduh jika Anda tidak suka menggunakan ftpsync. Debian (dan Ubuntu, dan mungkin Debian-Derivatives lainnya) memiliki paket bernama Apt-utils, yang menawarkan, antara lain, apt-ftparchive program yang akan kami gunakan untuk repositori khusus kami. Jadi…

 # aptitude instal apt-utils 

Akan mendapatkan alat yang diperlukan diinstal pada sistem Anda. Kami sudah memiliki direktori dasar yang dibuat di server web kami, jadi kami akan membutuhkan subdirektori yang disesuaikan untuk kebutuhan kami:

 # CD/var/www/debian # mkdir -p pool/main # mkdir pool/contrib # mkdir -p distres/squeeze/main/biner -amd64 # mkdir -p distres/squeeze/contrib/biner -amd64 # mkdir .cache 

Sekarang kita memiliki struktur direktori, mari kita buat file konfigurasi yang diperlukan untuk membantu menemukan dan mengindeks perangkat lunak kami. Harap dicatat bahwa Anda dapat menggunakan pengaturan ini untuk mencerminkan paket resmi Debian atau membuat repositori dengan paket Anda sendiri, karena langkah -langkahnya sama.

File pertama dari keduanya yang perlu kita buat (keduanya akan tinggal di/var/www/debian) bernama APT-RELEASE.conf.

 # CD/var/www/debian # $ editor APT-RELEASE.conf 

Isi, terkait dengan kebutuhan kita seperti yang ditunjukkan di atas, akan seperti ini:

APT :: ftparchive :: Release :: codename "Squeeze"; Apt :: ftparchive :: rilis :: origin "linuxcareer.com "; apt :: ftparchive :: release :: components" Main contrib "; apt :: ftparchive :: rilis :: label" LinuxCareer.com debian repo "; apt :: ftparchive :: rilis :: arsitektur" amd64 "; apt :: ftparchive :: rilis :: suite" squeeze "; 

Anda juga dapat menggunakan apt-ftparchive untuk menghasilkan file konfigurasi berdasarkan argumen baris perintah. Gunakan pendekatan apa pun yang Anda sukai.

File konfigurasi kedua bernama apt-ftparchive.conf dan isinya akan terlihat seperti ini:

 Dir archivedir "."; Cachedir"./.cache ";; default packages :: compress". gzip bzip2 "; konten :: kompres". gzip bzip2 ";; treedefault bincachedb" Paket-$ (bagian)-$ (arch).db "; direktori" pool/$ (bagian) "; paket" $ (dist)/$ (bagian)/biner-$ (arch)/paket "; konten" $ (dist)/konten-$ (arch) "; ; Pohon "distrs/squeeze" bagian "kontribi utama"; arsitektur "amd64"; 

Seperti yang Anda lihat, sintaksnya sangat jelas tentang kedua file.

Demi contoh, kami sekarang akan mengunduh .Deb dari Debian Mirror untuk mengilustrasikan ide kami dengan benar.

 # CD/var/www/debian/pool/main # wget -c ftp: // ftp.heanet.yaitu/cermin/ftp.Debian.org/debian/pool/main/\ p/patch/patch_2.6.1.85-423D-3_AMD64.Deb 

Sekarang mari kita buat konten (ini harus diulang setiap kali Anda menambahkan atau menghapus paket).

 # CD/var/www/debian # apt-ftparchive menghasilkan apt-ftparchive.conf # apt-ftparchive -c apt-release.rilis conf. Dists/Squeeze> \ Dists/Squeeze/Rilis 

Tindakan ini melakukan apa yang disebut "membangun repositori". Sekarang, seperti yang diperintahkan di atas, tambahkan baris ke sumber Anda.Daftar dan Anda dapat memiliki akses ke repositori perangkat lunak Anda. Jika Anda perlu menjadi cermin debian dan masih tidak suka ftpsync, gunakan rsync dengan direktori jarak jauh bernama pool/$ bagian dan ambilkan kopi atau sesuatu. Juga, gunakan cermin, jangan berlebihan FTP.Debian.org, tolong.

Penandatanganan paket

Jika Anda ingin menggunakan gambar CD/DVD/Blu-ray untuk melayani konten kepada klien Anda, file rilis pada gambar media optik tidak ditandatangani secara default. Tetapi jika Anda melayani dengan rsync'ing konten cermin, kemungkinan Anda tidak perlu melakukan apa pun. Jika Anda memiliki repositori khusus, inilah cara melakukannya. Pertama, seperti dalam contoh fedora, menghasilkan kunci GPG:

 $ gpg --gen-key 

Sekarang, karena bug #639204 di Debsign (pembaruan terakhir Agustus ini), tampaknya kita harus mengambil rute alternatif. Karena paket Debian pada dasarnya hanyalah arsip AR, kami akan menggunakan cara tingkat bawah untuk menandatangani paket kami:

 $ ar x package_name.Deb $ Cat Debian-Binary Control.ter.data GZ.ter.GZ> Tempfile $ GPG -ABS -O _GPGORIGIN TEMPFILE $ AR RC PACKET_NAME.Deb _gpgorigin Kontrol biner Debian.ter.data GZ.ter.GZ 

Jadi, yang kami lakukan di sini adalah mengekstrak .file deb dengan AR, gabungkan kontennya ke file sementara (ingat pesanan), tanda tangani file itu kemudian komposisi ulang .Deb ke 'negara aslinya. Sekarang kita perlu mengekspor kunci GPG (seperti yang Anda lihat, prosesnya tidak berbeda dari yang diterapkan pada fedora).

 $ GPG -Export -a> Mydebsign.ASC 

Sekarang mari kita ekstrak kunci untuk penggunaan lebih lanjut:

 $ gpg --print 

Ingat empat grup terakhir di sidik jari kunci (seperti yang terlihat di bawah), karena itu akan menjadi ID kunci, yang akan kami gunakan nanti.

Di mesin klien, pastikan Anda memiliki Debsig-Verify Installed, maka Anda dapat membuat tempat untuk kunci:

 # mkdir/usr/share/debsig/keyrings/$ key_id 

Seperti yang dapat Anda lihat di tangkapan layar, Contoh Kunci Contoh kami adalah 8760C540B4FC5C21. Sekarang mari kita impor kunci:

 # gpg ---no-default-keyring --keyring \/usr/share/debsig/keyrings/$ key_id/debsign.GPG --Import Mydebsign.ASC 

Sekarang, inilah bagian yang sulit: kami akan membutuhkan file kebijakan untuk kunci. Bahasa yang digunakan adalah XML, tetapi tidak perlu khawatir: in/usr/share/doc/debisg-verifikasi/contoh Anda akan menemukan file bernama generik.pol yang dapat disalin di suatu tempat untuk diedit dan diganti namanya. Contoh file seperti itu bisa terlihat seperti:

 xmlns = "http: // www.Debian.org/debsig/1.0/">  Nama = "Linux Career" Deskripsi = "Paket yang Ditawarkan oleh Karier Linux"/>   Type = "asal" file = "debsign.GPG "/>   Minoptional = "0">  Type = "asal" file = "debsign.GPG "/>  

Apa yang Anda lihat di atas hanyalah bagian penting dari file kebijakan. Setelah memeriksa dengan contoh dan membuat perubahan yang diperlukan, simpan file ini ke/etc/debsig/kebijakan/$ key_id/$ policy_name.Pol. Setelah langkah ini, jika Anda mengikuti langkah-langkah dengan benar, Anda dapat menggunakan Debsig-Verifikasi dengan nama paket sebagai argumen untuk memeriksa paket yang diunduh. Terima kasih kepada Purplefloyd untuk artikelnya yang bermanfaat tentang ini.

Pengaturan Klien

Jadi, mari kita mulai mesin klien kami, pastikan itu diatur untuk boot dari jaringan dan, ketika Anda diminta untuk memilih cermin, pilih "Masukkan informasi secara manual". Masukkan IP server Anda, lalu lokasi relatif ke /var /www (debian, dalam kasus kami) dan Anda harus siap menginstal.

Kesimpulan

Seseorang tidak pernah bisa cukup menekankan pentingnya menyimpan bandwidth, bahkan di jaringan kecil. Tentu saja ada keuntungan lain dari pendekatan cermin lokal, seperti melayani perangkat lunak khusus untuk perusahaan Anda (tambalan khusus yang diterapkan atau hanya perubahan yang sesuai dengan kebutuhan perusahaan dengan lebih baik) atau melayani perangkat lunak Anda yang dikemas untuk distribusi favorit Anda.

Tutorial Linux Terkait:

  • Cara mengkonfigurasi raspberry pi sebagai server boot pxe
  • Cermin Ubuntu
  • Contoh RSYNC di Linux
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara mencetak pohon direktori menggunakan linux
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Menguasai loop skrip bash
  • Ubuntu 20.04 Panduan