Kenapa Perlu Membuat Server Lokal Repository?
Alasan utama kenapa kamu perlu membuat server repository secara lokal adalah untuk mempercepat proses update linux client ataupun server yang ada di jaringan lokal mu serta menghemat bandwidth,bandwidth mu akan lebih hemat karena yang perlu update hanya server repository lokal mu,sedangkan semua linux client di jaringan lokal mu akan mengambil update dari server repository lokal yang akan kamu buat.
Pada Tutorial ini,Kamu akan Belajar:
- Bagaimana Cara Menginstall Software Yang Diperlukan Untuk Membangun Server Repository Lokal
- Cara Memilih Repository Mana Yang akan kamu mirror ke server repository lokal mu
- Cara melakukan mirroring repository yang telah dipilih ke server repository lokal mu
- Cara setting linux client di jaringan lokal mu agar update menggunakan server repository lokal yang telah kamu buat
Persiapan Membuat Server Repository Lokal
Pada tutorial ini kamu akan membuat server repository lokal ubuntu Bionic (ubuntu 18.04 LTS),tapi kamu juga bisa mirroring repository ubuntu versi release apapun ke server repository,tapi perlu dipertimbangkan juga kebutuhan space HDD yang akan terpakai.Tapi saya hanya akan membuat server repository lokal ubuntu Bionic,karena di kantor saya menggunakan ubuntu 18.04 LTS dengan kode release Bionic Beaver untuk menghemat ruang HDD.
Pastikan kamu telah membuat container di proxmox mu untuk membuat server repository lokal,karena container lebih cepat dan hemat resource dibandingkan VM.
Kategori | Keterangan |
---|---|
System | Ubuntu 18.04 (Bionic Beaver) LTS |
Software | Apache webserver dan apt-mirror |
Disk Space | Minimal 200GB untuk repo main,security dan update |
Saya hanya akan mirroring repository ubuntu 18.04 dengan code release bionic dan hanya memilih repo utama yaitu main,security dan update.repo src,proposed dan backport tidak saya mirror karena tidak begitu berguna di tempat saya bekerja.
- Repo SRC berisi Source code
- Repo BACKPORT berisi package yang didesain agar aplikasi terbaru bisa berjalan di versi ubuntu versi lama
- Repo PROPOSED berisi package yang masih dalam masa pengujian sebelum menjadi versi stable.
5 Langkah Membuat Server Repository Lokal
1
Menginstall Apache Webserver
Kamu akan perlu menginstall HTTP server di server repository lokal yang kan kamu buat,karena saat proses update client menggunakan protocol http untuk mendownload file dari server repository.
Cukup ketikan perintah dibawah ini untuk menginstall apache webserver
# apt install apache2
Jika semua beres ,langsung masuk ke default document root directory apache /var/www/html dan buat sub folder dengan nama ubuntu disana dengan mengetikan perintah dibawah ini
# mkdir -p /var/www/html/ubuntu
kemudian rubah kepemilikan folder ke www-data agar nantinya tidak terjadi error saat proses mirroring,
# chown www-data:www-data /var/www/html/ubuntu
Pada folder /var/www/html/ubuntu inilah semua file hasil mirroring repository disimpan,untuk mirroring ubuntu 18.04 repo main,update dan security di server saya memakan 106G,ukuran ini akan lebih besar jika kamu menambahkan repository ubuntu versi lain.
2
Install apt-mirror
apt-mirror adalah package atau aplikasi yang akan kamu gunakan untuk mengkopi repository dari internet ke server lokal mu, install aplikasi apt-mirror dengan mengetikan perintah linux dibawah ini
# apt install apt-mirror
setelah aplikasi apt-mirror terinstall jangan menjalankan apt-mirror terlebih dahulu sebelum kamu memilih repository mana yang nantinya akan kamu mirror/clone/download ke server repository lokal mu.
3
Memilih Repository Yang Akan di Mirror di Server Lokal Mu
Mengkopi Script postmirrorKopikan script penting postmirror.sh yang secara default berada di /var/spool/apt-mirror/var/ ke /var/www/html/ubuntu/var/ dengna mengetikan perintah linux dibawah ini
# mkdir -p /var/www/html/ubuntu/var # cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
# chown -R www-data:www-data /var/www/html/ubuntu
Memilih Repository
Untuk memilih repository mana saja yang akan kamu mirror/clone ke server repository lokal mu kamu harus mengedit file /etc/apt/mirror.list ,tapi sebelum kamu memodifikasi file ini baiknya kamu melakukanbackup terlebih dahalu dengan mengetikan perintah linux dibawah ini
# cp /etc/apt/mirror.list /etc/apt/mirror.list.backup
Gunakan text editor favorit mu untuk mengedik file mirror.list ,saya menggunakan nano
# nano /etc/apt/mirror.list
Ikuti langkah dibawah ini untuk menkonfigurasi/memilih repository manasaja yang akan kamu mirroring ke server repository lokal mu:
- Unkomen(buang tanda pagar #) pada bagian set base_path dan rubah menjadi set base_path /var/www/html/ubuntu
- Ganti pada bagian release code ubuntu menjadi bionic ,karena kamu akan membuat repo bionic (ubuntu 18.04 LTS).dan disini kamu hanya kan mengaktifkan repository main,security dan updates.sedangkan untuk src,proposed dan backport tidak diaktifkan untuk menghemat ruang disk.
Isi file mirror.list di server saya terlihat seperti dibawah ini,saya hanya mirror ubuntu 18.04 LTS dengan kode release bionic
set base_path /var/www/html/ubuntu
set defaultarch amd64set nthreads 20set _tilde 0#########repo ubuntu 18.04 bionic#######deb http://id.archive.ubuntu.com/ubuntu bionic main restricted universe multiversedeb http://id.archive.ubuntu.com/ubuntu bionic-security main restricted universe multiversedeb http://id.archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverseclean http://id.archive.ubuntu.com/ubuntu
tekan CTRL+X ketikan Y lalu enter untuk menyimpan perubahan.
Saya hanya mirroring repo dengan arsitekutr 64bit,karena di kantorku semua menggunakan ubuntu 18.04 64bit,ini ku lakukan untuk menghemat space HDD.
Membuat Server Repository untuk Multiple Versi Release Ubuntu
Jika kamu ingin membuat repository ubuntu dengan versi ubuntu lain kamu bisa melihat code release ubuntu di https://wiki.ubuntu.com/Releases , disana kamu akan menemukan code release yang bisa kamu gunakan untuk proses mirroring.
Contoh: jika kamu ingin mirroring atau membuat server repository ubuntu 18.04LTS dan 16.04LTS (32bit dan 64bit), maka kamu akan menggunakan kode relese bionic untuk ubuntu 18.04LTS dan xenial untuk ubuntu 16.04LTS, sehingga isi file mirror.list akan terlihat seperti dibawah ini:
set base_path /var/www/html/ubuntu
set defaultarch amd64set nthreads 20set _tilde 0#########repo ubuntu 18.04 bionic#######deb [arch=i386] http://id.archive.ubuntu.com/ubuntu bionic main restricted universe multiversedeb [arch=i386] http://id.archive.ubuntu.com/ubuntu bionic-security main restricted universe multiversedeb [arch=i386] http://id.archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiversedeb [arch=amd64] http://id.archive.ubuntu.com/ubuntu bionic main restricted universe multiversedeb [arch=amd64] http://id.archive.ubuntu.com/ubuntu bionic-security main restricted universe multiversedeb [arch=amd64] http://id.archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse#########repo ubuntu 16.04 xenial#######deb [arch=i386] http://id.archive.ubuntu.com/ubuntu xenial main restricted universe multiversedeb [arch=i386] http://id.archive.ubuntu.com/ubuntu xenial-security main restricted universe multiversedeb [arch=i386] http://id.archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiversedeb [arch=amd64] http://id.archive.ubuntu.com/ubuntu xenial main restricted universe multiversedeb [arch=amd64] http://id.archive.ubuntu.com/ubuntu xenial-security main restricted universe multiversedeb [arch=amd64] http://id.archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverseclean http://id.archive.ubuntu.com/ubuntu
ingat kamu minimal harus meyertakan 3 repository utama untuk setiap ubuntu release yaitu main,security dan updates.
4
Mirroring Repository di Server Lokal Mu
Untuk memulai proses download/clone atau mirroring kamu bisa langsung mengetikan perintah linux dibawah ini untuk memulai proses download
# apt-mirror
Begitu kamu mengetikan perintah diatas,maka kamu akan mulai mendownload file dengan ukuran 100Gib ,lama proses download tergantung dari kecepatan internet yang kamu miliki.
Jika proses download macet /interupt kamu tidak usa kuatir karena begitu proses dijalankan lagi akan melanjutkan diposisi terakhir download dan tidak diulang dari awal.)
Kamu akan tau proses mirroring selesai jika script postmirror.sh dan clean.sh telah diekseskusi,yang akan ditampilkan di log screen console mu
Processing indexes: [PPP]106 GiB will be downloaded into archive.Downloading 3648 archive files using 20 threads…Begin time: Fri May 31 05:41:49 2019[20]… [19]… [18]… [17]… [16]… [15]… [14]… [13]… [12]… [11]… [10]… [9]… [8]… [7]… [6]… [5]… [4]… [3]… [2]… [1]… [0]… End time: Fri May 31 05:41:50 20193.9 MiB in 38 files and 0 directories can be freed.Run /var/www/html/ubuntu/var/clean.sh for this purpose.Running the Post Mirror script …(/var/www/html/ubuntu/var/postmirror.sh)Post Mirror script has completed. See above output for any possible errors.
5
Setting sync otomatis dengan cron
Agar server repository lokal mu selalu up to date,maka kamu harus menjalankan apt-mirror sesering mungkin, kamu bisa menggunakan aplikasi crontab untuk menjalankan apt-mirror secara otomatis seuai dengan waktu yang kamu tentukan.
- jalankan perintah # crontab -e ,untuk mengedit file konfigurasi cron
- masukan script dibawah ini dan letakan pada baris akhir config crontab 00 02 * * * /usr/bin/apt-mirrorBaris diatas artinya kamu akanmenjalankan apt-mirror setiap jam 2 pagi dini hari,jika kamu pengin lebih sering tinggal edit saya dan tambahkan beberapa baris dibawah nya sesuai format contoh diatas.
- simpan perubahan dan keluar (menggunakan vi,nano atau editor yang telah kamu set sebelumnya)
Setting Linux Client Untuk Menggunakan Server Repository Lokal
Agar linux client yang ada di jaringan lokal menggunakan server repository yang telah kamu buat,maka kamu harus mengedit file /etc/apt/sources.list disetiap client yang akan kamu arahkan update nya ke server repo lokal.
PENTING!!!
Pastikan kamu telah menkomen (menambahkan tanda pagar didepan nya #) baris yang mengarah ke repository selain lokal,atau repository yang tidak ada di server repository lokal untuk menghindari error saat update. Ingat kamu hanya mirroring repo main,security dan updates. jadi kamu harus menkomen baris selain itu misalnya baris yang mengandung src,backport,proposed ataupun lain nya.
Jika kamu mengabaikan langkah ini maka kamu akan mendapati error “Release file has not been found”
sdasdsad