Siapkan Repositori Lokal dengan 'apt-mirror' di Ubuntu dan Sistem Debian


Ketika lalu lintas dan kecepatan internet biasa saat ini diukur dalam belasan Giga dalam sekejap bahkan untuk klien Internet biasa, apa tujuan menyetel cache repositori lokal di LAN yang mungkin Anda tanyakan?

Salah satu alasannya adalah pengurangan bandwidth Internet dan kecepatan tinggi dalam menarik paket dari cache lokal. Namun, alasan utama lainnya adalah privasi. Bayangkan klien dari organisasi Anda dibatasi akses Internetnya, namun Linux mereka memerlukan pembaruan sistem rutin pada perangkat lunak dan keamanan atau hanya memerlukan paket perangkat lunak baru. Lebih jauh lagi, server yang berjalan di jaringan pribadi, berisi dan menyajikan informasi sensitif rahasia hanya untuk segmen jaringan terbatas, dan tidak boleh diekspos ke Internet publik.

Ini hanyalah beberapa alasan mengapa Anda harus membangun mirror repositori lokal di LAN Anda, mendelegasikan server edge untuk pekerjaan ini dan mengkonfigurasi klien internal untuk mengeluarkan perangkat lunak dari mirror cache-nya.

Ubuntu menyediakan paket apt-mirror untuk menyinkronkan cache lokal dengan repositori resmi Ubuntu, mirror yang dapat dikonfigurasi melalui server HTTP atau FTP untuk membagikannya paket perangkat lunak dengan klien sistem lokal.

Untuk mirror cache yang lengkap, server Anda memerlukan setidaknya 120G ruang kosong yang disediakan untuk repositori lokal.

Persyaratan

  1. Ruang kosong minimal 120G
  2. Server Proftpd diinstal dan dikonfigurasi dalam mode anonim.

Langkah 1: Konfigurasikan Server

1. Hal pertama yang mungkin ingin Anda lakukan adalah mengidentifikasi mirror Ubuntu terdekat dan tercepat di dekat lokasi Anda dengan mengunjungi halaman Ubuntu Archive Mirror dan pilih negara Anda.

Jika negara Anda menyediakan lebih banyak mirror, Anda harus mengidentifikasi alamat mirror dan melakukan beberapa pengujian berdasarkan hasil ping atau traceroute.

2. Langkah selanjutnya adalah menginstal perangkat lunak yang diperlukan untuk menyiapkan repositori mirror lokal. Instal paket apt-mirror dan proftpd dan konfigurasikan proftpd sebagai daemon sistem mandiri.

sudo apt-get install apt-mirror proftpd-basic

3. Sekarang saatnya mengonfigurasi server apt-mirror. Buka dan edit file /etc/apt/mirror.list dengan menambahkan lokasi terdekat (Langkah 1) – opsional, jika mirror default cukup cepat atau Anda tidak berada di dalamnya terburu-buru – dan pilih jalur sistem Anda di mana paket harus diunduh. Secara default apt-mirror menggunakan lokasi /var/spool/apt-mirror untuk cache lokal tetapi dalam tutorial ini kita akan menggunakan perubahan jalur dan titik sistem set direktif base_path ke lokasi /opt/apt-mirror.

sudo nano /etc/apt/mirror.list

Anda juga dapat menghapus komentar atau menambahkan daftar sumber lain sebelum arahan bersih – termasuk sumber Debian – bergantung pada versi Ubuntu yang digunakan klien Anda. Anda dapat menambahkan sumber dari 12.04, jika Anda mau, namun perlu diketahui bahwa menambahkan lebih banyak sumber memerlukan lebih banyak ruang kosong.

Untuk daftar sumber Debian kunjungi Debian Wiki atau Debian Sources List Generator.

4. Yang perlu Anda lakukan sekarang hanyalah membuat direktori path dan menjalankan perintah apt-mirror untuk menyinkronkan repositori resmi Ubuntu dengan mirror lokal kami .

sudo mkdir -p /opt/apt-mirror
sudo apt-mirror

Seperti yang Anda lihat, apt-mirror melanjutkan pengindeksan dan pengunduhan arsip yang menampilkan jumlah total paket yang diunduh dan ukurannya. Seperti yang dapat kita bayangkan, 110-120 GB cukup besar sehingga memerlukan waktu beberapa saat untuk mengunduh.

Anda dapat menjalankan perintah ls untuk melihat konten direktori.

Setelah pengunduhan awal selesai, pengunduhan berikutnya akan berukuran kecil.

5. Saat apt-mirror mengunduh paket, Anda dapat mengonfigurasi server Proftpd Anda. Hal pertama yang perlu Anda lakukan adalah membuat file konfigurasi anonim untuk proftpd dengan menjalankan perintah berikut.

sudo nano /etc/proftpd/conf.d/anonymous.conf

Kemudian tambahkan konten berikut ke file anonymous.conf dan mulai ulang layanan proftd.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
  MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

6. Langkah selanjutnya adalah menghubungkan jalur apt-mirror ke jalur proftpd dengan menjalankan bind mount dengan mengeluarkan perintah.

sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/

Untuk memverifikasinya, jalankan perintah mount tanpa parameter atau opsi.

mount

7. Langkah terakhir adalah memastikan bahwa server Proftpd secara otomatis dimulai setelah sistem reboot dan direktori mirror-cache juga secara otomatis dipasang pada jalur server ftp. Untuk mengaktifkan proftpd secara otomatis, jalankan perintah berikut.

sudo update-rc.d proftpd enable

Untuk memasang cache apt-mirror secara otomatis pada proftpd, buka dan edit file /etc/rc.local.

sudo nano /etc/rc.local

Tambahkan baris berikut sebelum direktif exit 0. Gunakan juga penundaan 5 detik sebelum mencoba melakukan pemasangan.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Jika Anda menarik paket dari repositori Debian, jalankan perintah berikut dan pastikan pengaturan yang sesuai untuk file rc.local di atas diaktifkan.

sudo mkdir /srv/ftp/debian
sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Untuk sinkronisasi apt-mirror harian Anda juga dapat membuat pekerjaan jadwal sistem untuk dijalankan pada jam 2 pagi setiap hari. Jalankan perintah crontab, pilih editor pilihan Anda lalu tambahkan sintaks baris berikut.

sudo crontab –e

Pada baris terakhir tambahkan baris berikut.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Sekarang setiap hari pada pukul 02.00 cache repositori sistem Anda akan disinkronkan dengan mirror resmi Ubuntu dan membuat file log.

Langkah 2: Konfigurasikan klien

9. Untuk mengonfigurasi klien Ubuntu lokal, edit /etc/apt/source.list di komputer klien agar mengarah ke alamat IP atau nama host Server apt-mirror – ganti protokol http dengan ftp, lalu perbarui sistem.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….

10. Untuk melihat repositori Anda sebenarnya dapat membuka browser dan mengarahkan ke alamat IP server nama domain Anda menggunakan protokol FTP.

Sistem yang sama juga berlaku untuk klien dan server Debian, satu-satunya perubahan yang diperlukan hanyalah cermin debian dan daftar sumber.

Juga jika Anda menginstal sistem Ubuntu atau Debian yang baru, sediakan mirror lokal Anda secara manual dengan protokol ftp ketika penginstal menanyakan repositori mana yang akan digunakan.

Hal hebat tentang memiliki repositori mirror lokal Anda sendiri adalah Anda selalu terkini dan klien lokal Anda tidak perlu terhubung ke Internet untuk menginstal pembaruan atau perangkat lunak.