31 Desember 2008

Backup LDAP server daily

Melihat kondisi MIS sini yang awalnya emang nggak terlalu tau Linux, gue berusaha cari ide. Gemana jika mereka operate server, akan tetep aman-aman saja resikonya. Coba bayangin nih. Mereka terbiasa bertahun-tahun pake Windows server dan Netware. Emang sih pake mail server redhat, tapi hanya untuk add user saja. Tanpa pernah delete user loh :-D Ya sejauh itu kemampuan mereka. Karena yang bikin server itu dah lama resign.

Sekarang hampir semua server dah berganti ke Ubuntu Linux 8.04 LTS. Dan gak cuman add user. Lebih komplex dari itu. Alias full kemampuan Linux kita pake. Kalo gue dah bertahun-tahun pake Linux tau resikonya jika salah jalanin perintan. Gemana dengan mereka yang masih baru? Pernah nggak bayangin jalanin perintah tapi salah tulis? And apa tuh efeknya ke sistem? :-D

Semua Ubuntu disini tersambung ke LDAP server. Juga Samba/NFS yang provide sharing folder yang sama. Akhirnya setelah cari ide, ternyata simple aja untuk kondisi ini. Gue harus slalu backup. Mereka slalu gue arahin ke penggunaan console. Jadi resiko salah perintah itu kadang-kadang terjadi. Tapi karena ada backup LDAP, kesalahan itu bisa gue atasin dengan restore aja. Juga sharing folder Samba/NFS, backup data akan penting disini.

Jadi kali ini gue akan bahas backup LDAP server. Dan next artikel gue bahas backup Samba/NFS dengan rsync. Simple banget. Tapi akan sangat berguna kalo ada hal buruk terjadi. Well... mereka itu manusia. Jadi kadang salah itu normal. Gue aja juga pernah salah tulis perintah. Apalagi yang masih baru :-D

How to backup

Semua account berada di LDAP server. Sekitar 500 user and group. Semuanya di kerjakan via console. Dan untuk membackupnya cukup simple. Oya, Ubuntu/Debian kasih utility untuk backup LDAP server. Coba aja check file /usr/share/doc/slapd/examples/slapd.backup. Cuman gue kurang cocok aja. Karena backup slalu disimpan ke directory /var/backups/slapd. Tanpa ada historynya.

Jadi gue bikin script sendiri untuk di cron tiap malem. Dan backupnya ada historynya:

/<path>/<tahun>/<bulan>/<tanggal>/<backup-filename>

Misal untuk backup LDAP tanggal 31 Desember 2008 akan disimpan disini:

/svr/backup/slapd/2008/12/31/slapd.tar.gz


Utilty untuk ngebackupnya cukup pake "slapcat" aja. Coba aja command ini di server yang running primary slapd service:

sudo slapcat

Semua outputnya adalah isi dari LDAP server. Simple kan? Sekarang giliran scriptnya:

#!/bin/bash
# Definition of backup directory and backup filename
backupdir="/svr/backup/slapd/"
filename="slapd.tar.gz"
# backup process
backupdir2="$backupdir`date +%Y`/`date +%m`/`date +%d`/"
/bin/mkdir -p $backupdir2
cd $backupdir2
/usr/sbin/slapcat -l domain.com.ldif
/bin/tar zcvf $filename domain.com.ldif
/bin/rm -f domain.com.ldif
echo "Backup SLAPD save on $backupdir2$filename"

Simpan saja ke /etc/cron.daily agar dijalankan tiap hari. Jangan lupa, permission di set ke 755.

How to restore

Untuk restorenya simple juga. Pake utility "slapadd". Nih contohnya:

sudo /etc/init.d/slapd stop
rm -f /var/lib/ldap/*
tar zxvf /svr/backup/slapd/2008/12/28/slapd.tar.gz
sudo slapadd -l domain.com.ldif
sudo /etc/init.d/slapd start


Ready deh. Ok kan?

14 komentar:

silent mengatakan...

typo yah di:
sudo slapadd -l domain.com.ldiff?

frizzy mengatakan...

Halo sobat, apa kabar?
Happy New Year 1430 H and 2009 AD.
May you have better life and better achievement.
Salam sukses selalu untukmu yaa...
Really appreciate your blog and postings.

Cheers, frizzy2008.

Lutfi mengatakan...

Thx "Silent". Dah dikurangin f nya.

Lutfi mengatakan...

Ntuk Frizzy
Semoga sukses juga ...
Juga untuk semua pembaca blog ini

Anonim mengatakan...

wah tq banget yah bos artikelnya.. sangat membantu neh.. lagi belajar2 ldap juga buat dikantor..
ngm2 saya mau tanya.. itu domain.com.ldif diganti dengan nama domain di ldap server kita yah? atau tetep aja pakai domain.com.ldif?
terima kasih sebelumnya

Lutfi mengatakan...

No problem. Cuman nama file aja. Mo pake nama file laen juga boleh. Tapi kalo LDAP servernya simpan byk domain, mending backupnya pake nama domain. Mudah ada managenya.

Panya S mengatakan...

oh gitu yah tq banget yah infonya.. mau tanya sedikit lagi neh bro luffi.. saya kan lagi kembangin ldap server dikantor..
ldap server misalkan ada di ip 192.168.0.1 trus ada 1 komputer dengan ip 192.168.0.2 untuk ftp server aja.. tp authentikasi dari ldap.

nah di komputer ftp itu sudah saya setting ldap client mengarah ke ldap server yang ip 1 tersebut.. tp kenapa yah di /homenya client itu tidak termount..

misalkan di /home ldap server ada budi, dani, adit.. sedangkan di /homenya ldap client di ip 2 tidak ada.. sehingga ftp saya masih blm dapat digunakan karena setiap connect ftp dengan menggunakan user ldap, dia bilang cannot read /home/budi misalkanya jika memasukan user budi..

terima kasih sebelumnya..

Lutfi mengatakan...

Coba pake fasilitas auto create homedir dari PAM aja.

Semua user disini pake LDAP tanpa perlu bikin home foldernya. Skali login, PAM bs deteksi, kalo blon ada homedir nya, langsung di create.

Nih contoh gue pake Ubuntu. Perhatiin yang baris tebal:

cat /etc/pam.d/common-session

session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional pam_ldap.so
session optional pam_foreground.so

Panya S mengatakan...

udah pake bos luffi.. ditambahin session requirednya.. tetep ga bisa tuh bos... tidak ada di direktori home.. heheh tp akhirnya seh gw akalin dikit pake nfs server di maping home direktorinya.. T_T

btw gw sebelmnya ada domain controller windows 2003, bisa ga diexport user2nya biar ga repot bikin2 user..masalahnya dikantor gw dah 6000an user.. bisa cape neh tangan..hhhheh
tq be4 neh bos luffi

Lutfi mengatakan...

Coba cari di google. Masa gak ada sih?

Cara laen, export username ke text file. Then pake terminal gunakan "for" command di bash

Goodluck

Anonim mengatakan...

Bang lutfi, aku mw nyanya dong.
Aku di sini make ldap untuk otentikasi mesin client linux. dan aku juga pengen mesin client windows juga bisa make account di ldap server itu, yaitu dengan membuat samba pdc dengan passdb backend ldapsam. semuanya udah bisa. tapi kendalanya adalah sinkronisasi antara userPassword dengan sambaNTPassword dan sambaLMPassword. kalo client windows merubah password, dia akan otomatis merubah juga attribute userPassword, yaitu dengan menambahkan opsi ldap passwd sync = yes di smb.conf. Masalahnya, sebaliknya bagaimana caranya agar jika client linux mengubah passwordnya, otomatis juga mengubah attribute sambaNTPassword dan sambaLMPasswordnya? maaf kalo kata2nya blibet. hehehe

Lutfi mengatakan...

Ok. Jelas maksudnya. Coba pelajari paket "libpam-smbpass".

Anonim mengatakan...

Aku juga udah mikir begitu, pake libpam-smbpass. pam-smbpass itu kan bisa dibuat untuk sinkronisasi ke samba passwordnya. bukannya kalo begitu kita juga harus install samba di setiap client? apakah ada konfigurasi lain?

Anonim mengatakan...

Owh ternyata libpam-smbpass cuman perlu samba-common, hehehe. Coba pam-ldap mendukung synkronisasi dengan password samba, mungkin bisa lebih mudah. Terimakasih yak bang Lutfi :-D.