Tutorial ini menunjukkan cara melakukan miror terhadap server backup dimana keduanya menggunakan server Fedora 10 .
Tools yang digunakan adalah rsync dan akan dilakukan cron job untuk
menjalankan perintah rsync tersebut dengan interval waktu tertentu .
rsync hanya mengupdate file yang perlu diupdate saja . Sebagai tambahan
dibutuhkan permission file untuk melakukan perubahan terhadap file yang
akan dirubah. Rsync dijalankan sebagai root , dan menggunakan protokol
ssh 22 untuk menjalankkannya .
Dengan menggunakan ssh dan login root maka diperlukan public keys
bila kondisi dimana log in yang dilakukan tidak harus melakukan entry
untuk password . Public keys tersebut disimpan di server backup dan
diserver remote .
Seharusnya bisa digunakan untuk Fedora 11 atau Centos 5 , Centos 5.2 .
Konfigurasi:
Server utama (Fedora 10): server1.example.com (server1) – IP address: 192.168.0.100
Server Mirror/backup (Fedora 10): server2.example.com (server2) – IP address: 192.168.0.101
Web Site yang akan dimirrorkan terletak di /var/www/html on server1.example.com.
rsync hanya melakukan mirroring files dan direktori saja ; kalau
ingin melakukan duplikasi database / mirror database mysql dapat dibaca
di tutorial berikut:
Cara set up mysql database repliation / replika di fedora 10 / Centos 5.2 .
1. Install rsyncinstall rsync di server1.example.com dan server2.example.com:
server1/server2:
sebagai root, lakukan :
yum install rsync
2 Create sebuah Unprivileged User di server1.example.com
Buat sebuah user disebut saja someuser di server1.example.com yang
akan digunakan oleh rsync di server2.example.com untuk melakukan mirror
direktori di /var/www/html ( someuser harus memiliki permission untuk
membaca file/direktori di /var/www/html di server1.example.com
server1:
(sebagai root!)
useradd -d /home/someuser -m -s /bin/bash someuser
Akan dicreate user someuser dengan home directory /home/someuser dan
login shell /bin/bash (sangat penting bahwa user someuser memiliki
login shell yang valid .
Berikan user someuser sebuah password:
passwd someuser
3. Test rsync
Berikutnya kita akan melakukan test rsync di server2.example.com. Sebagai root lakukan
Di server2:
rsync -avz -e ssh someuser@server1.example.com:/var/www/html/ /var/www/html/
Akan tampil seperti berikut :
[root@server2 ~]# rsync -avz -e ssh someuser@server1.example.com:/var/www/html/ /var/www/html/
The authenticity of host ’server1.example.com (192.168.0.100)’ can’t be established.
RSA key fingerprint is 96:1e:9d:39:25:40:9d:89:53:f6:71:8f:fd:79:89:18.
Are you sure you want to continue connecting (yes/no)? <– yes
Masukkan someuser password dan akan dapat dilihat di
server1.example.com /var/www/html direktori telah dimirrorkan ke
/var/www/html di server2.example.com
Dapat dilakukan pengecekan di kedua server tersebut :
server1/server2:
ketikkan :
ls -la /var/www/html
Akan terlihat bahwa seluruh file dan direktori yang sudah dimirorkan
di server2.example.com, dan file serta diretori memiliki
permissions/ownerships yang sama seperti di server1.example.com.
4 Create Keys di server2.example.com
Lakukan create private/public key di server2.example.com:
server2:
(Lakukan sebagai root!)
mkdir /root/rsync
ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync-key
Akan tampil sebagai berikut :
[root@server2 ~]# ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): <– ENTER
Enter same passphrase again: <– ENTER
Your identification has been saved in /root/rsync/mirror-rsync-key.
Your public key has been saved in /root/rsync/mirror-rsync-key.pub.
The key fingerprint is:
68:1e:9c:12:f1:f5:7f:53:d5:1d:d0:f2:dd:c2:88:f3 root@server2.example.com
The key’s randomart image is:
+–[ DSA 1024]—-+
| . . .o.=|
| o . . . .+|
| . . .. oo +|
| o o o.. ooo|
| . * S o. o. |
| + . E. . |
| . |
| |
| |
+—————–+
[root@server2 ~]#
Diperlukan tekan enter . atau proses mirror tidak akan berjalan baik .
Kemudian copy public k eke server1.example.com
server2:
(masih, sebagai root.) :
scp /root/rsync/mirror-rsync-key.pub someuser@server1.example.com:/home/someuser/
Public key mirror-rsync-key.pub seharusnya akan berada di /home/someuser on server1.example.com.
5. Konfigurasi di server1.example.com
login dengan SSH di server1.example.com sebagai someuser (non root!)…
server1:
su someuser
… and do this:
server1:
(Lakukan perintah berikut sebagai someuser!)
mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/mirror-rsync-key.pub ~/.ssh/
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat mirror-rsync-key.pub >> authorized_keys
Dengan melakukan hal tersebut, sudah dilakukan append terhadap
content dari mirror-rsync-key.pub ke file
/home/someuser/.ssh/authorized-keys. ,
home/someuser/.ssh/authorized-keys. Akan kelihatan seperti berikut :
server1:
(masih sebagai someuser!)
vi /home/someuser/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1[...]qqOyXtbUx7HOMEw== root@server2.example.com
Berikut akan diperbolehkan koneksi hanya dari server2.example.com dan
user yang terkoneksi hanya bisa diperbolehkan untuk menggunakan rsync
saja.
Tambahkan baris berikut
command=”/home/someuser/rsync/checkrsync”,from=”server2.example.com”,no-port-forwarding,no-X11-forwarding,no-pty
tepat di awal baris /home/someuser/.ssh/authorized_keys:
server1:
(masih sebagai someuser!)
vi /home/someuser/.ssh/authorized_keys
command=”/home/someuser/rsync/checkrsync”,from=”server2.example.com”,no-port-forwarding,no-X11-forwarding,no-pty
ssh-dss AAAAB3NzaC1[...]qqOyXtbUx7HOMEw== root@server2.example.com
Sanat penting untuk menggunakan FQDN seperti server2.example.com
selain menggunakan ip address yang ada , kalau tidak mirroring otomatis
tidak akan berjalan .
Buat script /home/someuser/rsync/checkrsync yang akan mereject semua command kecuali rsync saja .
server1:
(lakukan sebagai someuser!)
mkdir ~/rsync
vi ~/rsync/checkrsync
hasilnya :
#!/bin/sh
case “$SSH_ORIGINAL_COMMAND” in
*&*)
echo “Rejected”
;;
*(*)
echo “Rejected”
;;
*{*)
echo “Rejected”
;;
*;*)
echo “Rejected”
kemudian jalankan :
chmod 700 ~/rsync/checkrsync
6. Test rsync di server2.example.com
Lakukan test di server2.example.com kalau bisa digunakan mirror ke
server1.example.com tanpa harus diminta password kembali untuk password
someuser . Lakukan hal ini :
server2:
(Sebagai root!)
rsync -avz –delete –exclude=**/stats –exclude=**/error
–exclude=**/files/pictures -e “ssh -i /root/rsync/mirror-rsync-key”
someuser@server1.example.com:/var/www/html/ /var/www/html/
(Opsi –delete berarti file yang sudah di delete di
server1.example.com akan di deleted juga di server2.example.com.
untuk informasi manual lebih lanjut lihat di manual rsync.
man rsync
Akan tampak tampilan mirroring sudah berjalan
[root@server2 ~]# rsync -avz –delete –exclude=**/stats
–exclude=**/error –exclude=**/files/pictures -e “ssh -i
/root/rsync/mirror-rsync-key”
someuser@server1.example.com:/var/www/html/ /var/www/html/
receiving incremental file list
sent 62 bytes received 48 bytes 73.33 bytes/sec
total size is 20 speedup is 0.18
[root@server2 ~]#
.. tanpa harus diminta password kembali . sudah bisa mirror !
7. Membuat cron job ,
Kita akan melakukan mirroring secara otomatis, dan dibutuhkan sebuah cron job untuk itu di server2.example.com .
Jalankan , crontab –e sebagai root :
Server2:
(Sebagai root )
crontab -e
dan buat sebuah cron job seperti berikut:
*/5 * * * * /usr/bin/rsync -azq –delete –exclude=**/stats
–exclude=**/error –exclude=**/files/pictures -e “ssh -i
/root/rsync/mirror-rsync-key”
someuser@server1.example.com:/var/www/html/ /var/www/html/
Perintah itu akan menjalankan rsync setiap 5 minutes; sesuaikan sesuai kebutuhan (lihat man 5 crontab).
Bisa digunakan full path untuk menjalankan rsync (/usr/bin/rsync)
untuk memastikan dimana cron job tahu persis dimana rsync berada.
Untuk mengetahui dimana letak rsync , lakukan perintah berikut :
server2:
(Sebagai root!)
which rsync
sumber : http://nrspot.com/2009/07/06/web-server-mirror-mirroring-duplikasi-menggunakan-rsync-di-linux-fedora-10/
Web Server mirror / mirroring / duplikasi menggunakan Rsync
Web Server mirror / mirroring / duplikasi menggunakan Rsync
Reviewed by Mas Bro
on
Rating: 4.5
Labels:
Linux
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]
Mohon Aktifkan Javascript![ Enable JavaScript ]
0 comments:
Post a Comment