DOKUMENTASI TUGAS BESAR
PRAKTIKUM SISTEM OPERASI SEMESTER GASAL 2010
[79] Mirroring Repository Server dan Shell untuk Auto
Mirror pada BlankOn Linux
Yudistira Yoga Aji
Muhammad Fuad
Alfandi Nurulmukhlis
FAKULTAS INFORMATIKA INSTITUT TEKNOLOGI TELKOM BANDUNG
DOKUMENTASI TUGAS BESAR
PRAKTIKUM SISTEM OPERASI
SEMESTER GASAL 2010 / 2011
Mirroring Repository Server dan Shell untuk Auto
Mirror pada BlankOn Linux
Disusun oleh:
Yudistira Yoga Aji 113090129
Muhammad Fuad 113090131
Alfandi Nurulmukhlis 113090160
Asisten Penguji:
FAKULTAS INFORMATIKA INSTITUT TEKNOLOGI TELKOM BANDUNG
2011
1
Mirroring Repository Server dan Shell untuk Auto
2
LEMBAR PENGESAHAN
Tugas Besar dengan judul : Mirroring Repository Server dan Shell untuk Auto Mirror pada BlankOn
Linux
Telah Disetujui Menjadi
Tugas Besar Praktikum Sistem Operasi
Program S1 Teknik Informatika
Institut Teknologi Telkom
Bandung, 13 Desember 2011
Menyetujui,
Asisten Praktikum Sistem Operasi
Zulkarnain Wahyu
113070049
3
ABSTRAKSI
Pada umumnya tugas ini dibuat untuk memenuhi tugas besar praktikum sisop
dengan judul “Mirroring Repositoru Server dan Shell untuk Auto Mirror pada BlankOn
Linux”
Repositori lokal dapat dibangun dalam rangka menghemat penggunaan
bandwidth karena proses pengambilan berkas-berkas paket dari mirror hanya perlu
dilakukan satu kali sedangkan selanjutnya cukup mengakses repositori lokal saja.
BlankOn Linux merupakan salah satu distro Linux yang berisikan perangkat
lunak (software) yang dapat digunakan untuk keperluan desktop, laptop, dan
workstation. Dengan dipadukan oleh berbagai pernak-pernik khas indonesia, distro ini
sangat cocok digunakan untuk pengguna komputer di Indonesia.
Shell Script adalah sekumpulan perintah yang disimpan pada sebuah file pada
Sistem Operasi Linux. Ekstensi file dari Shell Script adalah .sh tetapi tanpa menyertakan
ekstensi file tersebut tetap dapat dikenali sebagai Shell Script. Di Sistem Operasi Linux
terdapat banyk pilihan Script Shell yang dapat digunakan tetapi yang menjadi default
dan banyak digunakan adalah Bourne Again Shell (bash). Shell script juga menyediakan
beberapa fitur seperti percabangan, perulangan dan variable layaknya bahasa
pemrograman. Untuk menulis Shell Script dapat menggunakan Editor Teks apa saja
(contoh: nano, vi, gedit). Sebuah Shell Script dieksekusi melalui Command Line Sistem
Operasi.
Keyword : Repositori lokal,BlankOn,Shell Script,Mirroring Repository Server.
4
DAFTAR ISI
JUDUL.......……………………………………………….…...………...….........…..1
LEMBAR PENGESAHAN ………….......……………………………….…............2
ABSTRAKSI ....………………………………………………………….….............3
DAFTAR ISI………………………………………………………………...............4
BAB I PENDAHULUAN….............……………………..............................………1
1.1 Latar Belakang.............................................……….................5
1.2 Tujuan.….......................………………………….….............5
1.3 Rumusan Masalah …..........…...…………………..................5
1.4 Batasan Masalah ….....…………………………......…..........5
BAB II ISI…..........…………………...........………………………......……….........6
2.1 Analisis dan Desain...............................…………....…….......6
2.1.1 Komponen Sistem...........................................................6
2.1.2 Kelebihan dan Kekurangan Komponen Sistem..............6
2.2 Implementasi dan Pengujian....................... ............................7
2.2.1 Deskripsi Sistem.............................................................7
2.2.2 Implementasi...................................................................7
2.2.3 Pengujian.......................................................................13
2.2.4 Kendala dan Penyelesaian.............................................14
BAB III PENUTUP......................…………………………....……………...15
3.1 Kesimpulan dan Saran..…………….....................................15
3.2 Daftar Pustaka........................................................................15
5
BAB I
PENDAHULUAN
1.1. Latar Belakang
Ubuntu merupakan sistem operasi yang sangat dinamis, terutama yang berkaitan dengan
update aplikasi-aplikasi yang ter-install. Kita dapat dengan mudah meng-update sistem kita
hanya dengan mengetik dua baris perintah di Terminal yaitu “sudo apt-get update” dan
“sudo apt-get upgrade”. Mirror yang ideal tentu saja perpaduan antara mirror yang cepat
dan mirror yang baik. Lakukan pencarian mirror yang cepat dengan “Software Sources”
kemudian lihat statusnya pada situs di atas apakah “up to date” atau paling tidak “one day
behind”. Sedangkan di indonesia, biasanya menggunakan mirror dari “University of
Indonesia” alias UI yang lumayan cepat dan memiliki status “one day behind” untuk
Ubuntu 11.04 Natty Narwhal (mirror UI melakukan sinkronisasi paling tidak sekali dalam
sehari). Untuk selanjutnya, silakan cari sendiri mirror yang nyaman untuk kalian.
Repositori merupakan tempat penyimpanan aplikasi-aplikasi yang telah diatur
sedemikian rupa dan tersedia untuk dapat kita akses melalui internet. Untuk yang tidak
memiliki akses internet jangan khawatir, karena repository ini tidak hanya dapat diakses
melalui internet saja, melainkan juga menggunakan repository alternatif lewat distribusi
pada media lain seperti DVD, atau kita juga dapat membuat repositroy secara lokal sehingga
apabila suatu saat kita membutuhkanya, tidak perlu repot untuk memasukkan satu per satu
DVD yang diperlukan.
1.2. Tujuan
Repositori adalah portal yang menyimpan aplikasi-aplikasi yang bisa di pakai di
ubuntu. Bisa juga untuk mempercepat download. Dan fungsi mirror seperti :
• Load balancing, karena dengan mirror repositroy, server utama tidak akan
terbebani karena akses tidak hanya melalui satu server saja, melainkan
beberapa server.
• Sharing sumber daya, tidak akan ada sumber daya atau source yang terbuang
percuma karena, begitu ada source yang tidak sedang diakses, maka dapat
diakses oleh mirror ini.
• Memperbesar kemungkinan tersedianya sumber daya atau source, jika suatu
saat ada site yang mati, maka kita bisa mencoba ke site lainya karena antara
satu site dengan site lainya memiliki sifat terdesentralisasi
1.3. Rumusan Masalah
1. Apa fungsi mirror repository ?
2. Apa itu shell untuk auto mirror pada BlankOn Linux ?
3. Bagaimana cara membuat mirror repository dan shell untuk auto mirror pada BlankOn
Linux ?
4. Bagaimana mengimplementasikan mirror repository ?
1.4. Batasan Masalah
1. Tidak boleh memakai .deb harus menggunakan .tar.gz
2. Tidak boleh memakai server xampp, tetapi menggunakan ningx atau apache
3. Downloadnya automatis, jadi aplikasi akan update sendiri
6
BAB II
ISI
2.1 Analisis dan Desain
2.1.1 Komponen Sistem
Kami menggunakan Sistem Operasi Unix distro Ubuntu Feisty-Fawn. Kami
menggunakan Apache untuk web server dan rsync untuk sinkronisasi antara dua server
(mirroring) antara dua server, dan kami menggunakan dua PC sebagai server dan client.
Crontab juga kami gunakan untu auto mirror penjadwalan pada tubes kami.
2.1.2 Kelebihan dan Kekurangan Komponen system
Kelebihan dari Ubuntu diantaranya :
a. Merupakan Sistem Operasi yang Open Source, maka gratis baik sebagai user
maupun developer.
b. Lebih aman karena virus, trojan ataupun malware sulit hidup di lingkungan
Linux
c. Ubuntu tidak membutuhkan hardware dengan spesifikasi yang tinggi.
d. Ubuntu update akan dilakukan tidak hanya pada sistem operasinya tetapi pada
seluruh aplikasi yang diinstall menggunakan repository.
Kekurangan dari Ubuntu diantaranya :
a. Tidak semudah dan semutakhir suse
b. Tidak sestabil debian dan slackware
c. Apabila terjadi kerusakan, sulit diperbaiki. Sehingga lebih baik dilakukan install
ulang.
d. Untuk menjalankan aplikasi tambahan (hiburan) harus install sendiri, tetapi
aplikasi tersebut tidak familiar seperti aplikasi pada Windows.
Kelebihan dari Apache :
a. Lebih mudah untuk dicari karena sudah populer.
b. Lebih mudah digunakan karena tutorial pemakaianya mudah dicari di mana saja.
c. Fleksibilitas tinggi karena lebih pasti hasilnya.
d. Sudah disediakan di Ubuntu melalui httpd.
Kekurangan Apache diantaranya :
a. Caranya cukup rumit karena ada yang lebih mudah dengan menggunakan
LAMPP/XAMPP.
b. Sering diabaikan oleh user karena proses yang cukup rumit.
Kelebihan dari rsync diantaranya :
a. Installasi lebih mudah karena sudah di support di Ubuntu.
b. Mudah dalam penggunaanya karena rsync sudah populer dan mudah dicari di
mana saja.
c. mendukung penyalinan link, device, owner, grup, dan permisi.
d. Option exclude dan exclude-from serupa dengan GNU tar
7
e. sebuah mode CVS exclude untuk mengabaikan file-file yang sama yang akan
diabaikan oleh CVS
f. dapat menggunakan sembarang remote shell transparan, termasuk rsh atau ssh
g. tidak membutuhkan root privilege
h. pipelining transfer file untuk meminimalkan biaya latency
i. dukungan bagi server rsync anonymous atau authenticated
Kekurangan dari rsync diantaranya :
a. Lebih mudah dengan menggunakan DVD repo.
b. Tidak bisa di pakai di windows yang merupakan Sistem Operasi yang populer.
2.2 Implementasi dan Pengujian
2.2.1 Deskripsi Sistem
Aplikasi yang kami buat memiliki fungsionalitas utama sebagai berikut :
1. Load balancing, karena dengan mirror repositroy, server utama tidak akan terbebani karena akses tidak hanya melalui satu server saja, melainkan beberapa server.
2. Sharing sumber daya, tidak akan ada sumber daya atau source yang terbuang percuma karena, begitu ada source yang tidak sedang diakses, maka dapat diakses oleh mirror ini.
3. Memperbesar kemungkinan tersedianya sumber daya atau source , jika suatu saat ada site yang mati, maka kita bisa mencoba ke site lainya karena antara satu site dengan site lainya memiliki sifat terdesentralisasi.
4. Mempercepat download. 5. Automatic download. 6. Memudahkan dalam penginstallan aplikasi/software beserta package-package-
nya. 7. Mengurangi lalu lintas data. 8. Mempercepat akses ke situs, karena adanya mirror. 9. Meringankan beban komputer karena akses ke mirror akan lebih ringan.
2.2.2 Implementasi
2.2.2.1 Web Server
Bicara web server, tentu yang diijinkan di tubes kali ini hanya apache dan nginx.
Tapi yang kami gunakan adalah apache php mysql phpmyadmin :
Ketikan perintah :
8
$sudo apt-get install mysql-server
$sudo apt-get install libapache2-mod-php5
$sudo apt-get install apache2 php5 php5-mysql phpmyadmin
9
Setelah sudah jalan, sekarang tinggal folder web di /var/www dipindah ke home, dan :
1. Masuk dulu ke folder /var
2. Ketik perintah sudo ln –s /home/alfandi
3. Ubah nama foldernya dengan perintah sudo mv alfandi www
Beres deh nginstall web servernya.
2.2.2.2 Rsync
Bicara Repository Mirror tentu saja bicara hubungan antara PC yaitu server dan
client, dalam hal ini kami menggunakan Rsync (Remote Syncronization) yang akan
menghubungkan kedua PC. Pada bagian ini akan membahas bagaimana melakukan
proses mirroring website dari main server ke client website, ini digunakan untuk
mendistribusikan website dari server ke client, sehingga proses pembuatan website
hanya dilakukan di satu sisi saja yakni server, untuk website pada client cukup dengan
memirrorkan website dari server ke client sehingga website pada main server sama
dengan website pada client. Dengan menggunakan rsync maka proses mirroring tidak
akan mengirim semua data yang ada pada server ke client melainkan hanya data yang
berubah atau data baru saja yang akan dimirrorkan, sehingga proses bisa efisien dan
cepat. Untuk proses keamanan saat mirroring maka digunakanlah ssh yang lebih aman,
sehingga tidak perlu membuka port baru untuk rsync namun hanya perlu membuka port
ssh yakni port 22. Tetapi kita harus memasukan username dan password ketika akan
melakukan ssh, sehingga memerlukan interaksi manusia yang tentu saja akan sedikit
merepotkan. Namun ada cara untuk mengatasi masalah tersebut yakni dengan auto login
pada saat melakukan koneksi ssh dengan menggunakan publik keys. Kita membuat
‘key’ pada client yang kemudian ‘key’ tersebut disimpan pada server, sehingga ketika
client melakukan ssh ke server tidak perlu lagi memasukan password. Persyaratan
sebelum melakukan mirroring yakni ssh pada server haurs terinstall dahulu dan bisa
dijalankan. Jika belum terinstall maka lakukan intalassi pada server dan client
melakukan ssh ke server tidak perlu lagi memasukan password. Persyaratan sebelum
melakukan mirroring yakni ssh pada server harus terinstall dahulu dan bisa dijalankan.
Jika belum terinstall maka lakukan installasi pada server dan client.
1. Install rsync
Langkah pertama yang perlu dilakukan adalah menginstall rsync pada
server dan client.
apt-get install rsync
2. Test rsync
Proses test dilakukan pada client dengan login sebagai root dan menjalankan perintah : rsync -avz -e ssh server.com:/var/www/ /var/www/ maka akan keluar :
The authenticity of host ‘server.com (192.168.0.100)’ can’t be established.
RSA key fingerprint is 32:e5:79:8e:5f:5a:25:a9:f1:0d:ef:be:5b:a6:a6:23. Are you sure you want to continue connecting (yes/no)? ketikan yes Kemudian masukan password root maka proses mirroring akan berlangsung dengan memirrorkan isi folder /var/www/ pada server ke /var/www/ pada client. Untuk memeriksa keberhasilan proses mirror maka dapat diperiksa file pada server dan client jika sama maka proses mirroring telah berhasil.
10
3. Auto Login ssh
Pada client Jalankan perintah ssh-keygen -t rsa client:~# ssh-keygen -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ae:cd:84:c8:28:67:fa:29:d8:c5:e8:ce:12:d8:84:ae
client:~# Setiap pertanyaan tekan aja tombol enter, demikian pula dengan pertanyaan
passphrase enter saja(kosong). Disini secara default letak file publik keynya di folder .ssh Salin file id_rsa.pub ke server client:~# scp .ssh/id_rsa.pub root@server:~ root@server’s password: id_rsa.pub 100% 393 0.4KB/s 00:00
Pada server buka file konfigurasi ssh yakni /etc/ssh/sshd_config, pastikan bahwa ada baris yang seperti dibawah ini (yang laen tidak perlu diedit) RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys2 Masih pada server salin id_rsa.pub ke file authorized_key2 cat id_rsa.pub >> .ssh/authorized_keys2
Kembali ke client dan lakukan ssh ke server, jika ssh sudah berjalan tanpa
memasukan password lagi maka auto login ssh anda sudah berjalan.
4. Test rsync
Lakukan kembali test pada client dengan login sebagai root dan
menjalankan perintah :
rsync -avz -e ssh server.com:/var/www/ /var/www/
2.2.2.3 Crontab perintah rsync
Untuk crontab perintah rsync gunakan perintah :
rsync -avz -e ssh server.com:/var/www/ /var/www/
2.2.2.4 Instalasi rsync dengan tar.gz
Rsync adalah adalah sebuah program kecil yang berfungsi hampir sama
dengan rcp, namun memiliki fitur tambahan yang lebih banyak dan
menggunakan protokol rsync remote update untuk mempercepat transfer file
bila file tujuan sudah ada.
Alih-alih membuat sebuah skrip sesi FTP atau berbagai bentuk skrip
transfer file lainnya, rsync hanya menyalinkan perbedaan file-file saja,
mengkompresinya dan mengirimkannya menggunakan ssh jika anda ingin
keamanan.
Rsync dapat diinstal dari RPM atau dari tarball, dalam hal ini kami
menggunakan versi RPM. Setelah mendownloadnya kemudian install :
$sudo rpm –ivh rsync-2.4.6-1.i386.rpm
Sedangkan jika menggunakan tarball, setelah mendownloadnya
silahkan lakukan langkah berikut :
11
Pindah ke direktori rsync :
Cd rsync-2.4.6
Menjalankan skrip ./configure kemudian build rsync dengan cara :
Make
Jika ingin menginstalasi rsync ke sistem, maka lakukan perintah :
$sudo make install
2.2.2.5 Membuat server rsync
Untuk membuat sebuah server rsync ada dua langkah utama yang harus anda
lakukan pada mesin yang ingin anda jadikan sebagai server rsync :
Menjalankan rsync dalam mode daemon, dengan memberikan perintah rsync --
daemon pada perintah baris.
Menset file konfigurasi /etc/rsyncd.conf
rsyncd.conf adalah sebuah file konfigurasi rsync ketika dijalankan dengan
option --daemon. Saat itulah rsync menjadi rsync server yang listening ke TCP
port 873. File rsyncd.conf mengendalikan otentikasi, akses, pencatatan dan
modul yang tersedia.
Format File Konfigurasi
File konfigurasi ini terdiri dari modul dan parameter. Modul dimulai dengan
nama modul dalam tanda kurung siku dan berlanjut terus hingga awal modul
berikutnya. Modul berisikan parameter dalam bentuk "name = value".
Hanya tanda sama dengan pertama yang signifikan. Whitespace sebelum dan
setelah tanda sama dengan pertama diabaikan.
Baris yang dimulai dengan tanda "#" akan diabaikan.
Nilai yang dapat diberikan mengikuti tanda sama dengan di parameter berupa
string (tidak dibutuhkan quote) atau boolean, yang mungkin dapat diberikan
sebagai yes/no, 0/1, true/false.
Option Global
Parameter pertama dalam file, sebelum header modul, adalah parameter-
parameter global.
motd file
Option "motd file" memungkinkan anda untuk menspesifikasikan "pesan hari
ini" yang akan ditampilkan ke client setiap kali koneksi. Defaultnya adalah tidak
ada file motd.
log file
12
Option "log file" memberi tahu daemon rsync untuk mencatat pesan-pesan ke
file alih-alih menggunakan syslog.
pid file
Option "pid file" memberitahu daemon rsync untuk mencatat id prosesnya ke
file tersebut.
syslog facility
Option "syslog facility" memungkinkan anda menspesifikasikan nama fasilitas
syslog yang akan digunakan ketika mencatat pesan-pesan ke server rsync. Anda
dapat menggunakan sembarang nama fasilitas syslog standar yang didefinisikan
pada sistem anda. Nama-nama umum tersebut antara lain auth, authpriv, cron,
daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0, local1,
local2, local3, local4, local5, local6 dan local7. Bakunya adalah daemon.
socket options
Option ini dapat menyediakan beragam kegembiraan bagi orang-orang yang
suka mengotak-atik sistem mereka. Anda dapat menset segala macam option
soket yang mungkin dapat mempercepat transfer atau memperlambatnya.
Silakan baca man page untuk sistem call setsockopt() untuk rincinya. Bakunya
tidak ada option soket khusus yang diset.
Contoh File Konfigurasi
Sebuah contoh file rsyncd.conf sederhana yang memungkinkan rsync anonim ke
sebuah area ftp di /home/ftp adalah sebagai berikut :
[ftp]
path = /home/ftp
comment = ftp export area
Contoh yang lebih kompleks adalah :
uid = nobody
gid = nobody
use chroot = no
max connections = 4
syslog facility = local5
pid file = /etc/rsyncd.pid
13
[ftp]
path = /var/ftp/pub
comment = whole ftp area (approx 6.1 GB)
[sambaftp]
path = /var/ftp/pub/samba
comment = Samba ftp area (approx 300 MB)
[rsyncftp]
path = /var/ftp/pub/rsync
comment = rsync ftp area (approx 6 MB)
[sambawww]
path = /public_html/samba
comment = Samba WWW pages (approx 240 MB)
[cvs]
path = /data/cvs
comment = CVS repository (requires authentication)
auth users = osamu, lader
secrets file = /etc/rsyncd.secrets
File /etc/rsyncd.secrets akan tampak sebagai berikut :
osamu:mypass
lader:mypass
2.2.3 Pengujian
Dalam pengujian, kami menguji pada auto mirror crontab pada ubuntu dan
pengujian membuka browser untuk mengecek mirror pada client.
2.3 Kendala penyelesaian
Dalam menggunakan rsync, dibutuhkan 2 PC, dan PC tersebut harus kami install
ubuntu, hal tersebut cukup merepotkan kami karena media dan tools yang kami punya cukup
terbatas seperti laptop dengan spec pas-pasan, dan langkah dalam membuat repository dengan
menggunakan rsync karena kami belum familiar.
14
BAB III
PENUTUP
j. Kesimpulan
Apache merupakan web server yang dapat membantu kita dalam menggunakan aktifitas
yang berhubungan dengan server. Rsync digunakan untu membuat mirror repository antara
server dan client dan crontab agar penjadwalan auto update.
k. Saran
Agar menggunakan LAMPP supaya lebih mudah, tetapi hal itu merupakan batasan
dalam tugas kami kali ini sehingga kami menggunakan Apache dan rsync untuk repositori
mirror nya.
3.3 Daftar Pustaka
http://awangga.wordpress.com/2008/11/02/membangun-web-server/
http://vanfier.wordpress.com/2007/08/06/mirror-your-web-site-with-rsync/
http://habi3.blogspot.com/2007/05/berbagai-jenis-tutorial-rsync.html
• Pembimbing tubes, serta teman – teman yang sentantiasa membantu kami dalam pengerjaan tubes ini.