DOKUMENTASI TUG PRAKTIKUM SISTEM SEMESTER GASAL 20 [79] Mirroring Rep Mirro Yudistira Yoga Muhammad Fu Alfandi Nurulm FAK IN T GAS BESAR M OPERASI 010 / 2011 pository Server dan Shell untuk or pada BlankOn Linux Disusun oleh: a Aji 113090129 uad 113090131 mukhlis 113090160 Asisten Penguji: KULTAS INFORMATIKA NSTITUT TEKNOLOGI TELKOM BANDUNG 2011 1 Auto
14
Embed
Mirroring Repository Server dan Shell untuk Auto Mirror pada BlankOn Linux
Informatics Engineering, Server, Linux, Shell, BlankOn Linux
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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.
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 :
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.
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,