Salah satu alasan mengapa Anda dapat mempertimbangkan untuk menyiapkan server repositori apt lokal adalah untuk meminimalkan bandwidth yang diperlukan jika Anda memiliki beberapa instance Ubuntu untuk diperbarui. Ambil contoh situasi di mana Anda memiliki 20 atau lebih server yang semuanya perlu diperbarui dua kali seminggu. Anda dapat menghemat banyak bandwidth karena yang perlu Anda lakukan hanyalah memperbarui semua sistem Anda melalui LAN dari server repositori lokal Anda.
Dalam panduan ini, Anda akan mempelajari cara menyiapkan server repositori apt lokal di Ubuntu 20.04 LTS.
Prasyarat
- Sistem Ubuntu 20.04 LTS
- Server Web Apache
- Minimal 170 GB ruang disk kosong di sistem file /var/www/html
- Koneksi internet stabil
Langkah 1) Buat Server Web Apache lokal
Pertama, masuk ke Ubuntu 20.04 Anda dan atur server web Apache seperti yang ditunjukkan.
$ sudo apt install -y apache2
Aktifkan layanan Apache2 sehingga akan tetap ada selama reboot . Jalankan perintah berikut
$ sudo systemctl aktifkan apache2
Direktori root dokumen default Apache terletak di jalur /var/www/html. Nanti kita akan membuat direktori repositori di jalur ini yang akan berisi paket-paket yang dibutuhkan.
Langkah 2) Buat direktori repositori paket
Selanjutnya, kita akan membuat direktori repositori lokal bernama ubuntu di jalur /var/www/html.
$ sudo mkdir -p /var/www/html/ubuntu
Setel izin yang diperlukan pada direktori yang dibuat di atas.
$ sudo chown www-data:www-data /var/www/html/ubuntu
Langkah 3) Instal apt-mirror
Langkah selanjutnya adalah menginstal paket apt-mirror, setelah menginstal paket ini kita akan mendapatkan perintah atau alat apt-mirror yang akan mengunduh dan menyinkronkan paket debian jarak jauh ke repositori lokal di server kita. Jadi untuk menginstalnya, jalankan mengikuti
$ sudo apt update$ sudo apt install -y apt-mirror
Langkah 4) Konfigurasikan repositori untuk mencerminkan atau menyinkronkan
Setelah apt-mirror terinstal maka konfigurasinya '/etc/apt/mirrror.list' dibuat secara otomatis. File ini berisi daftar repositori yang akan diunduh atau disinkronkan di folder lokal server Ubuntu kami. Dalam kasus kami, folder lokal adalah ‘/var/www/html/ubuntu/’. Sebelum melakukan perubahan pada file ini mari kita backup terlebih dahulu.
$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list-bak
Sekarang edit file menggunakan editor vi dan perbarui base_path dan repositori seperti yang ditunjukkan di bawah ini.
$ sudo vi /etc/apt/mirror.list############ config ###################set base_path / var/www/html/ubuntuset nthreads 20set _tilde 0############# end config #############deb http://archive.ubuntu.com /ubuntu fokus utama alam semesta terbatas \ multiversedeb http://archive.ubuntu.com/ubuntu fokus-keamanan utama terbatas \universe multiversedeb http://archive.ubuntu.com/ubuntu focal-updates utama terbatas \universe multiverseclean http:// archive.ubuntu.com/ubuntu
Simpan dan keluar dari file.
Jika Anda mungkin telah memperhatikan bahwa saya telah menggunakan repositori paket Ubuntu 20.04 LTS dan mengomentari repositori paket src karena saya tidak memiliki cukup ruang di sistem saya. Jika Anda ingin mengunduh atau menyinkronkan paket src juga, batalkan komentar pada baris yang dimulai dengan 'deb-src'.
Langkah 5) Mulai mirror repositori jarak jauh ke folder lokal
Sebelum memulai mirroring atau sinkronisasi, salin dulu skrip postmirror.sh ke folder /var/www/html/ubuntu/var menggunakan perintah cp di bawah ini.
$ sudo mkdir -p /var/www/html/ubuntu/var$ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var
Sekarang, saatnya untuk mulai mencerminkan paket dari repositori jarak jauh ke folder lokal sistem kami. Jalankan di bawah ini:
$ sudo apt-mirror
Perintah di atas juga dapat dimulai di latar belakang menggunakan perintah nohup di bawah ini,
$ nohup sudo apt-mirror &
Untuk memantau kemajuan pencerminan, gunakan di bawah ini,
$ tail nohup.out
Di Ubuntu 20.04 LTS, apt-mirror melakukan sinkronisasi direktori CNF dan file-filenya, jadi kita harus mengunduh dan menyalin folder dan file-filenya secara manual. Jadi untuk menghindari mengunduh direktori CNF secara manual, buat skrip shell dengan konten di bawah ini,
$ vi cnf.sh#!/bin/bashfor p in "${1:-focal}"{,-{security,updates}}\/{main,restricted,universe,multiverse};do>&2 echo "${p}"wget -q -c -r -np -R "index.html*"\ "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-amd64. xz"wget -q -c -r -np -R "index.html*"\ "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-i386.xz"selesaisimpan dan tutup skrip.
Jalankan skrip untuk mengunduh direktori CNF dan file-filenya.
$ chmod +x cnf.sh$ bash cnf.shScript ini akan membuat folder dengan nama 'archive.ubuntu.com' di direktori kerja saat ini. Salin folder ini ke folder cermin,
$ sudo cp -av archive.ubuntu.com /var/www/html/ubuntu/mirror/Catatan : Jika kita tidak menyinkronkan direktori cnf maka pada mesin klien kita akan mendapatkan kesalahan berikut, jadi untuk mengatasi kesalahan ini kita harus membuat dan menjalankan skrip di atas.
E:Gagal mengambil http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\focal/restricted/cnf/Commands-amd64 404 Tidak Ditemukan [IP:169.144.104.219 80]E :Gagal mengambil http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\focal-updates/main/cnf/Commands-amd64 404 Tidak Ditemukan [IP:169.144.104.219 80]E:Gagal untuk mengambil http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\focal-security/main/cnf/Commands-amd64 404 Tidak Ditemukan [IP:169.144.104.219 80]Menjadwalkan Sinkronisasi Repositori Otomatis
Konfigurasikan tugas cron untuk secara otomatis memperbarui repositori apt lokal kami. Disarankan untuk mengatur tugas cron ini di malam hari setiap hari.
Jalankan 'crontab -e' dan tambahkan perintah berikut untuk dijalankan setiap hari pada pukul 01:00 malam.
$ sudo crontab -e00 01 * * * /usr/bin/apt-mirrorSimpan dan tutup.
Catatan:Jika Firewall berjalan di Server Ubuntu maka izinkan port 80 menggunakan perintah berikut
$ sudo ufw izinkan 80Langkah 6) Mengakses repositori APT Lokal melalui browser web
Untuk Mengakses repositori apt yang dikonfigurasi secara lokal melalui browser web, ketik URL berikut:
http://
/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/
Langkah 7) Konfigurasikan klien Ubuntu 20.04 untuk menggunakan server repositori apt lokal
Untuk menguji dan memverifikasi apakah server repositori apt kami berfungsi dengan baik atau tidak, saya memiliki sistem Ubuntu 20.04 lts lain di mana saya akan memperbarui file /etc/apt/sources.list sehingga perintah apt menunjuk ke repositori lokal alih-alih remote.
Jadi, login ke sistem, ubah yang berikut di sources.list
http://archive.ubuntu.com/ubuntutohttp://169.144.104.219/ubuntu/mirror/archive.ubuntu.com/ubuntuBerikut '169.144.104.219' adalah Alamat IP dari server repositori apt saya, ganti alamat ip ini yang sesuai dengan lingkungan Anda.
Pastikan juga mengomentari semua repositori lain yang tidak dicerminkan di server repositori apt kami. Jadi, setelah melakukan perubahan pada file sources.list, akan terlihat seperti di bawah ini:
Sekarang Jalankan perintah 'apt update' untuk memverifikasi bahwa mesin klien mendapatkan pembaruan dari server repositori apt lokal kami,
$ sudo apt update
Sempurna, output di atas mengonfirmasi bahwa mesin klien berhasil terhubung ke repositori kami untuk mengambil paket dan pembaruan. Itu saja dari artikel ini, saya harap panduan ini membantu Anda untuk mengatur server repositori apt lokal di sistem Ubuntu 20.04.
Baca Juga :14 Contoh Perintah 'ls' yang Berguna di Linux
Cara Menerapkan Kebijakan Kata Sandi di Linux (Ubuntu / CentOS) Cara Install NFS Server di Ubuntu 20.04 (Focal Fossa)Ubuntu