Backup bisa berupa off-line maupun on-line.
Backup off-line dapat dilakukan secara sederhana, yaitu :
- Matikan database ldap, yaitu dengan service ldap stop
- Salin konfigurasi file, yang biasanya terletak di /etx/openldap
- Salin database ldap, yang biasanya terletak di /var/lib/ldap
- Selesai dan Jalankan kembali ldap dengan service ldap start
Backup on-line disini didefinisikan sebagai backup yang dilakukan
pada saat database ldap masih hidup. Ini dapat dilakukan dengan dua cara
, yaitu :
1. menggunakan perintah slapcat
2. menggunakan fasilitas repika
Backup dengan SLAPCAT
Cara backup dengan slapcat cukup sederhana, yaitu :
- Database LDAP msih dalam kondisi hidup
- Jalankan perintah “slapcat -v -l backup.ldif“, dimana perintah ini akan membaca seluruh database LDAP dan dituliskan ke file backup.ldif
Cara restore atau memulihkan file backup.ldif ke database LDAP yaitu :
- Konsidi database LDAP adalah mati, yaitu dengan service ldap stop
- Siapkan LDAP server baru dan pastikan data masih kosong, yaitu dengan rm /var/lib/ldap/* -rf
- Tulis backup.ldif ke database LDAP dengan slapadd, yaitu dengan perintah slapadd -l backup.ldif
- Selesai, sebelum menjalankan database LDAP, pastikan bahwa pemilik file database LDAP adalah ldap, yaitu dengan perintah chown ldap:ldap/var/lib/ldap/*
Backup dengan Replika
Berbeda dengan cara slapcat, maka dengan metode replica ini
dibutuhkab minimal dua database LDAP server, yaitu misalnya master-ldap
dan slave-ldap.
Database master-ldap adalah database
LDAP yang akan dilakukan modifikasi dan slave-ldap adalah database LDAP
untuk dibaca saja, baik itu dengan tujuan pembagian beban ataupun yang
lain.
Proses pembuatan database LDAP replika ini ada beberapa jenis, seperti slurp dan syncrepl.
Replika pada awalnya menggunakan metode slurp dan sejak versi
OpenLDAP 2.4 slurp sudah ditinggalkan. Untuk saat ini, openLDAP saya
jika di cek versinya yaitu 2.3.
Kali ini sebagai kasus adalah membuat replika dengan SLURP.
Sebagai referensi bisa dibaca www.openldap.org/doc/admin23/replication.html
Tahapan yang dilakukan yaitu:
- Siapkan master-ldap, dimana disumsikan bahwa database ini sudah dapat bekerja dengan baik sebagai server LDAP.
- Tentukan user dn untuk melakukan backup, misalnya dn: cn=replicator,dc=my-domain,dc=comdengan pasword salam, contoh file ldif yang dapat diimport ke database master-ldap yaitu:
dn: cn=replicator,dc=my-domain,dc=comcn: replicatorobjectclass: personobjectclass: shadowAccountobjectclass: topsn: replicatoruid: replicatoruserpassword: salam - Tambahkan konfigurasi di slapd.conf agar support replikasi dengan slurp, berikut adalah contoh konfigurasi dan diikuti dengan yang sudah dimodifikasi
## See slapd.conf(5) for details on configuration options.# This file should NOT be world readable.#include /etc/openldap/schema/core.schemainclude /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/inetorgperson.schemainclude /etc/openldap/schema/nis.schema# Allow LDAPv2 client connections. This is NOT the default.allow bind_v2# Do not enable referrals until AFTER you have a working directory# service AND an understanding of referrals.#referral ldap://root.openldap.orgpidfile /var/run/openldap/slapd.pidargsfile /var/run/openldap/slapd.args# Load dynamic backend modules:# modulepath /usr/lib/openldap######################################################################## ldbm and/or bdb database definitions#######################################################################database bdbsuffix ”dc=my-domain,dc=com”rootdn ”cn=Manager,dc=my-domain,dc=com”# Cleartext passwords, especially for the rootdn, should# be avoided. See slappasswd(8) and slapd.conf(5) for details.# Use of strong authentication encouraged.# rootpw secret# rootpw {crypt}ijFYNcSNctBYg# The database directory MUST exist prior to running slapd AND# should only be accessible by the slapd and slap tools.# Mode 700 recommended.directory /var/lib/ldap# Indices to maintain for this databaseindex objectClass eq,presindex ou,cn,mail,surname,givenname eq,pres,subindex uidNumber,gidNumber,loginShell eq,presindex uid,memberUid eq,pres,subindex nisMapName,nisMapEntry eq,pres,sub# Replicas of this database#replogfile /var/lib/ldap/openldap-master-replog#replica host=ldap-1.example.com:389 starttls=critical# bindmethod=sasl saslmech=GSSAPI# authcId=host/ldap-master.example.com@EXAMPLE.COM
Konfigurasi yang sudah dimodifikasi (dalam huruf tebal)
## See slapd.conf(5) for details on configuration options.# This file should NOT be world readable.#include /etc/openldap/schema/core.schemainclude /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/inetorgperson.schemainclude /etc/openldap/schema/nis.schema# Allow LDAPv2 client connections. This is NOT the default.allow bind_v2# Do not enable referrals until AFTER you have a working directory# service AND an understanding of referrals.#referral ldap://root.openldap.orgpidfile /var/run/openldap/slapd.pidargsfile /var/run/openldap/slapd.args# Load dynamic backend modules:# modulepath /usr/lib/openldap# Sample access control policy:# access to *# by self write# by users read# by anonymous auth# Beri hak user replicator agar bisa membaca (master-ldap) dan menulis (slave-ldap)access to *by dn.exact=”cn=replicator,dc=my-domain,dc=com” write# Tambahkan pembatasan menjadi unlimited untuk user replicatorlimits dn.exact=”cn=replicator,dc=my-domain,dc=com” time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited######################################################################## ldbm and/or bdb database definitions#######################################################################database bdbsuffix ”dc=my-domain,dc=com”rootdn ”cn=Manager,dc=my-domain,dc=com”# Cleartext passwords, especially for the rootdn, should# be avoided. See slappasswd(8) and slapd.conf(5) for details.# Use of strong authentication encouraged.# rootpw secret# rootpw {crypt}ijFYNcSNctBYg# The database directory MUST exist prior to running slapd AND# should only be accessible by the slapd and slap tools.# Mode 700 recommended.directory /var/lib/ldap# Indices to maintain for this databaseindex objectClass eq,presindex ou,cn,mail,surname,givenname eq,pres,subindex uidNumber,gidNumber,loginShell eq,presindex uid,memberUid eq,pres,subindex nisMapName,nisMapEntry eq,pres,sub# Replicas of this database#replogfile /var/lib/ldap/openldap-master-replog#replica host=ldap-1.example.com:389 starttls=critical# bindmethod=sasl saslmech=GSSAPI# authcId=host/ldap-master.example.com@EXAMPLE.COM# Parameter Replikareplicationinterval 300replogfile /var/lib/ldap/openldap-replica.logreplica host=slave-ldap:389 binddn=”cn=replicator,dc=my-domain,dc=com” bindmethod=simple credentials=salam
Catatan :
1. untuk melakukan replika, digunakan user replicator, yang mempunyai hak baca di master-ldap dan hak tulis di slave-ldap
2. replicationinterval adalah jeda waktu antar proses replikasi yang dilakukan secara otomatis (satuan detik)
3. replogfile adalah alamat file dari log perubahan database
master-ldap, owner dari direktori harus ldap, jika bukan dapat
menyebabkan kegagalan membuat file log ini.
4. replica adalah parameter untuk menulis perubahan ke database slave-ldap
Tahapan berikutnya yaitu :
- Backup database master-ldap dan restore ke database slave-ldap
- Ubah konfigurasi di slave-ldap, yaitu hapus bagian Parameter Replika dan ubah menjadi
# Parameter Replikaupdatedn “cn=replicator,dc=my-domain,dc=com“updateref ldap://master-ldap:389 - Jalankan database slave-ldap dan restart database master-ldap
Disini persiapan replika sudah selesai, berikutnya adalah melakukan
ujicoba perubahan datbase master-ldap yang harus dapat otomatis merubah
database slave-ldap sesuai dengan interfal yang sudah ditentukan.
- Lakukan perubahan pada master-ldap, misalnya merubah businessCategory
- Setelah perubahan dilakukan, maka di master-ldap akan dibuat logfile replika yang berisi perubahan tersebut[root@master-ldap]# tail /var/lib/ldap/openldap-replica.log
replica: slave-ldap:389time: 1359096882dn: uid=prayitna,dc=my-domain,dc=comchangetype: modifyreplace: businessCategorybusinessCategory: ADATEST-replace: entryCSNentryCSN: 20130125065442Z#000000#00#000000-replace: modifiersNamemodifiersName: cn=Manager,dc=my-domain,dc=com-replace: modifyTimestampmodifyTimestamp: 20130125065442Z-
- Tunggu beberapa saat, saat replikasi dengan slurp dilakukan pada interval yang ditentukan, maka perubahan tersebut akan dikirim ke slave-ldap dan log file akan kembali kosong.
- Cek apakah ada perubahan di slave-ldap? seharusnya sudah berubah.
0 comments:
Post a Comment