Cara Membuat Server Repository Lokal Ubuntu untuk Kantor


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

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.

2

Memilih Repository Yang Akan di Mirror di Server Lokal Mu

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 nthreads 20
set _tilde 0
​############### UBUNTU 18.04LTS Bionic x86 ##########################################
deb-i386 http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse

############### UBUNTU 18.04LTS Bionic x64 ##########################################
deb-amd64 http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse

clean 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 nthreads 20
set _tilde 0
#########repo ubuntu 18.04 bionic#######
############### UBUNTU 18.04LTS Bionic x86 ##########################################
deb-i386 http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse

############### UBUNTU 18.04LTS Bionic x64 ##########################################
deb-amd64 http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
#########repo ubuntu 16.04 xenial#######
############### UBUNTU 16.04LTS xenial x86 ##########################################
deb-i386 http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse

############### UBUNTU 16.04LTS xenial x64 ##########################################
deb-amd64 http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu


ingat kamu minimal harus meyertakan 3 repository utama untuk setiap ubuntu release yaitu main,security dan updates.

3

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 164Gib ,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]

164 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 2019

3.9 MiB in 38 files and 0 directories can be freed.
Run /var/spool/apt-mirror/var/clean.sh for this purpose.

Running the Post Mirror script ...
(/var/spool/apt-mirror/var/postmirror.sh)

Post Mirror script has completed. See above output for any possible errors.

4

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


Membuat Symbolic Link

Default folder mirroring saat kamu mendownload repo menggunakan apt-mirror berada di /var/spool/apt-mirror , sedangkan agar file dapat diakses menggunakan http protokol harus diletakan di documentroot directory apache webserver yang berada di /var/www/html/ .

Agar folder yang diluar document root directory apache bisa diakses menggunakan http protocol maka kamu hanya perlu membuat symbolic link nya saja tanpa harus benar-benar mengkopi semua file kedalam document root directory apache.Gunakan saja perintah linux dibawah ini untuk membuat symbolic link:

# ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ /var/www/html/ubuntu

Jika kita melihat isi dari /var/www/html maka akan terlihat 1 file symbolic link yang mengarah ke /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/

[email protected]:/var/www/html# ls -la /var/www/html/
total 20
drwxr-xr-x 2 root root 4096 May 31 16:50 .
drwxr-xr-x 3 root root 4096 May 31 16:50 ..
-rw-r--r-- 1 root root 10918 May 30 09:04 index.html
lrwxrwxrwx 1 root root 55 May 31 16:50 ubuntu -> /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/


Mengakses Repository Dari Browser

Jika semua berjalan lancar seharusnya sekarang kamu sudah bisa mengakses server repository lokal ubuntu menggunakan web browser dengan mengetikan http://IP_SERVER/ubuntu di address bar browsermu.

Contoh: http://192.168.2.14/ubuntu

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-mirror
    Baris 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"

Edit File /etc/apt/sources.list di Linux Client

Backup file /etc/apt/sources.list  menggunakan perintah dibawah ini

# mv /etc/apt/source.list /etc/apt/source.list.bak 

Gunakan editor favorit mu untuk membuat dan mengedit file /etc/apt/sources.list  ,saya menggunakan nano

# nano /etc/apt/source.list 

Gunakan format dibawah ini untuk mengarahkan client ubuntumu agar menggunakan server repository lokal yang telah kamu buat sendiri

deb http://IP_SERVER_REPO_LOKAL/ubuntu bionic main restricted universe
deb http://IP_SERVER_REPO_LOKAL/ubuntu bionic-updates main restricted universe
deb http://IP_SERVER_REPO_LOKAL/ubuntu bionic-security main restricted universe multiverse

Contoh: Karena IP server repoku 192.168.2.14 maka isi dari file source.list akan terlihat seperti dibawah ini

deb http://192.168.2.14/ubuntu bionic main restricted universe
deb http://192.168.2.14/ubuntu bionic-updates main restricted universe
deb http://192.168.2.14/ubuntu bionic-security main restricted universe multiverse

tekan CTRL+X lalu ketik Y dan tekan enter untuk menyimpan.


Ubuntu Versi Release Lain

Ganti tulisan "bionic" menjadi code release terserah sesuai dengan versi ubuntu client dan repo  yang disediakan di server mu,misal isi file source.list untuk ubuntu 16.04 xenial akan terlihat seperti dibawah ini:

deb http://192.168.2.14/ubuntu xenial main restricted universe
deb http://192.168.2.14/ubuntu xenial-updates main restricted universe
deb http://192.168.2.14/ubuntu xenial-security main restricted universe multiverse


Update dan Upgrade Client Ubuntu Dari Server Lokal

Setelah kamu selesai merubah isi file source.list untuk mengarahkan update ubuntu ke server repository lokal yang telah kamu buat,maka kamu sekarang sudah bisa melakukan update dari server repo lokal dengan mengetikan perintah linux dibawah ini

# apt update

# apt upgrade -y


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.