Penggunaan Mirror Local sangat berguna untuk anda yang memiliki beberapa ubuntu server. Dengan mengelola mirror server ubuntu sendiri, maka anda akan dengan mudah melakukan update ataupun instalasi paket ubuntu pada server anda.
Ada dua cara untuk mengelola mirror lokal yaitu :
- Menggunakan Debmirror - Debmirror memungkinkan anda untuk memilih paket (dapper, edgy, edgy-security, etc) yang ingin anda mirror. Cara ini sangat berguna bagi anda yang memiliki kapasitas hardisk yang terbatas.
- Menggunakan rsync - Hal yang menjadi keunggulan dari rsync yaitu seluruh archive files akan disinkronisasikan ke server mirror lokal anda. Oleh karena seluruh files disinkronisasi, maka akan membutuhkan kapasitas hardisk minimal sebesar 800GB.
Pada tulisan ini akan dijelaskan langkah-langkah melakukan rsync archive ubuntu. .
Paket-paket yang diperlukan:
- Server ubuntu dengan kapasitas hardisk minimal 800GB
- Apache
- rsync - http://launchpad.net/rsync
- mailx (optional)
Langkah-langkahnya adalahs sebagai berikut
Sediakan ruang kosong hardisk seperlunya
Pada saat tulisan ini dikutip, besar Ubuntu Archive sekitar 680 GB. Besaran ini akan terus bertambah dari waktu ke waktu sesuai dengan perkembangan pada server repository ubuntu itu sendiri.
Besar hardisk yang harus tersedia untuk menampung Ubuntu Archive direkomendasikan minimal sebesar 800GB.
Download Paket yang diperlukan
- rsync dibutuhkan untuk membuat dan mengelola server mirror.
- mailx hanya dibutuhkan bila anda ingin membuat email script yang akan mengirimkan pesan ke email anda bila terjadi masalah.
# apt-get install rsync mailx
Memulai Mirroring Pertama Kali
Karena kita kang mengunduh archive dengan ukuran kurang lebih 600GB, maka akan membutuhkan waktu yang cukup lama.
Buat direktori ubuntu
# mkdir /media/mirror/ubuntu
Sekarang kita sudah memiliki direktori tujuan. jalankan rsync untuk mulai mengunduh. Bandwidth yang digunakan bisa dibuka bebas, atau dapat juga dibatasi.
# rsync -a --bwlimit=10M --progress --delete-after rsync://archive.ubuntu.com/ubuntu /media/mirror/ubuntu
--progress adalah parameter untuk menampilkan progres rsync.
Catatan: Meskipun sudah ditambahkan parameter --progress, rsync membutuhkan waktu agak lama untuk memunculkan progress rsync itu sendiri. Hal ini merupakan sesuatu yang normal mengingat besarnya files yang akan dimirror.
Bandwidth dalam menggunakan rsync diukur dalam Bytes, bukan bits.
Buat script untuk melakukan update secara berkala
sementara menunggu proses rsync berjalan, kita dapat membuat script untuk membuat server mirror tetap update
Perhatian : Jangan menggunakan script atau cron job, sebelum rsync pertama kali selesai dijalankan!
Buka editor ubuntu (vi, pico, or nano) dan simpan kode programnya sebagai /usr/local/bin/ubuntu-mirror-sync.sh
## Mirror Synchronization Script /usr/local/bin/ubuntu-mirror-sync.sh ## Version 1.01 Updated 13 Feb 2007 by Peter Noble ## Point our log file to somewhere and setup our admin email log=/var/log/mirrorsync.log adminmail=admin@my.domain # Set to 0 if you do not want to receive email sendemail=1 # Subject is the subject of our email subject="Ubuntu Mirror Sync Finished" ## Setup the server to mirror remote=rsync://archive.ubuntu.com/ubuntu ## Setup the local directory / Our mirror local=/media/mirror/ubuntu ## Initialize some other variables complete="false" failures=0 status=1 pid=$$ echo "`date +%x-%R` - $pid - Started Ubuntu Mirror Sync" >> $log while [[ "$complete" != "true" ]]; do if [[ $failures -gt 0 ]]; then ## Sleep for 5 minutes for sanity's sake ## The most common reason for a failure at this point ## is that the rsync server is handling too many concurrent connections. sleep 5m fi if [[ $1 == "debug" ]]; then echo "Working on attempt number $failures" rsync -a --delete-after --progress $remote $local status=$? else rsync -a --delete-after $remote $local >> $log status=$? fi if [[ $status -ne "0" ]]; then complete="false" (( failures += 1 )) else echo "`date +%x-%R` - $pid - Finished Ubuntu Mirror Sync" >> $log # Send the email if [[ -x /usr/bin/mail && "$sendemail" -eq "1" ]]; then mail -s "$subject" "$adminmail" <<OUTMAIL Summary of Ubuntu Mirror Synchronization PID: $pid Failures: $failures Finish Time: `date` Sincerely, $HOSTNAME OUTMAIL fi complete="true" fi done exit 0
Setelah rsync pertama kali selesai dilakukan, silahkan melanjutkan untuk menjalankan kode yang telah dibuat.
Catatan : Kode yang dubuat menjalankan rsync dengan menambahkan parameter --delete-after sehingga tidak menggangu user yang sedang melakukan updating ke server mirror yang telah ktia buat.
Gunukan Cron untuk Melakukan rsync secara berkala dan otomatis
Official Ubuntu Mirrors merekomendasi untuk melakukan update mirror setiap 6 jam. Tetapi hal ini tidak diwajibkan, kita dapat melakukan update mirror sebanyak satu kali dalam sehari pada waktu tengah malam disaat pengguna internet sudah sepi, sehingga bandwidth dapat terpakai dengan optimal. Berikut perintah untuk membuat Cron
# crontab -e
Masukan baris perintah dibawah ini
15 21 * * * /usr/local/bin/sync-ubuntu-mirror.sh > /dev/null 2> /dev/null
Contoh diatas menunjukan bahwa proses update mirror akan berlangsung setiap malam pada pukul 9.15 PM.
Publikasikan mirror anda pada Apache server
Ini adalah bagian yang cukup mudah. perhatikan perintah dibawah ini.
cd /var/www/ ln /media/mirror/ubuntu -s
perintah diatas akan menghasilkan direktori ubuntu sudah dapat diakses melalui website repository yang kita buat. Contohnya repo.unpatti.ac.id/ubuntu
Update repository Komputer anda
Bila kita ingin menggunakan mirror server yang sudah kita buat, maka ubah sources list apt sebagai berikut :
#nano /etc/apt/sources.list
Setelah itu masukan baris-baris perintah dibawah ini
Setelah itu masukan baris-baris perintah dibawah ini
deb http://repo.unpatti.ac.id/ubuntu/ feisty main restricted deb-src http://repo.unpatti.ac.id/ubuntu/ feisty main restricted deb http://repo.unpatti.ac.id/ubuntu/ feisty-updates main restricted deb-src http://repo.unpatti.ac.id/ubuntu/ feisty-updates main restricted
unutk mencobanya silahkan gunakan perintah dibawah ini
# apt-get update
0 komentar:
Posting Komentar