Wednesday, February 5, 2014

Cara Migrasi Vpopmail ke Zimbra

Berikut ini sedikit catatan pengalaman saya yang mungkin bermanfaat sewaktu memigrasikan sejumlah account email (350+) dari vpopmail ke Zimbra beberapa waktu yang lalu. Dalam catatan ini saya akan bahas secara garis besarnya aja.

Sebelumnya perlu diingat bahwa memigrasikan sebuah sistem ke sistem lain itu lebih rumit dari pada membuat sistem baru. Maka dari itu persiapkanlah jauh-jauh hari apa yang bisa dikerjakan terlebih dahulu, meskipun itu hal yang kecil (misalnya dokumentasi) sehingga dalam proses migrasi nanti berjalan smooth dan Anda tidak jatuh dalam DRY/DIE. Jangan lupa catat semua yang dilakukan agar mempermudah tracking jika ada sesuatu yang tidak berjalan.

Beberapa hal yang perlu dipersiapkan sebelum migrasi dari sistem lama adalah :
  • Daftar account dan informasi pendukung yang dibutuhkan seperti password, nama lengkap dan quota
  • Daftar mailing-list
  • Daftar alias (forward .qmail)
  • Data address book webmail (jika ada)
Kemudian pada sistem baru  sebaiknya :
  • Zimbra diinstall pada partisi yang cukup (paling) besar, lebih baik partisi /opt dipisahkan
  • Mengaktifkan clear-text login pada servis IMAP (digunakan untuk sinkronisasi mailbox)
  • Mensetting IMAP agar menerima mail dengan ukuran besar (misalnya 50MB) untuk mengantisipasi email ukuran besar dari sistem lama (zimbraMtaMaxMessageSize dan zimbraMailContentMaxSize)
Account
Data user (account) yang akan dimigrasikan bisa diambil dari vpasswd. Data tersebut meliputi account, password (yang dienkripsi), clear password (kecuali jika vpopmail dikompile dengan --disable-clear-passwd), nama lengkap dan quota. Sebagian penjelasan struktur field vpasswd adalah seperti ini (seperti yang dijelaskan oleh pak Ken Jones disini)


Dengan memanfaatkan perintah zmprov, maka account yang telah ada tersebut bisa dibuat di server baru dengan melakukan looping pada file tersebut. Contoh perintah untuk membuat asfik@domain.tld (nama lengkap Asfihani) dengan password rahasia adalah :

   zmprov ca asfik@domain.tld rahasia displayName 'Asfihani'

Password
Di Zimbra selain bisa menerima argumen clear-password pada saat membuat account, bisa dimungkinkan untuk mengganti account yang telah ada dengan cara memodifikasi atribut userPassword account ybs. Yang sudah saya coba adalah algoritma enkripsi CRYPT.  Cara ini sangat berguna untuk memigrasikan sebuah sistem lama ke sistem yang baru tanpa mengganti password user lama. Sehingga dari sisi pengguna, migrasi ini berjalan secara transparan tanpa ada proses reset password.

Quota
Informasi quota di vpopmail bisa diambil dari file vpasswd. Dengan mengubah attribut zimbraMailQuota kita dapat menerapkan quota tersebut.  Contoh untuk menerapkan quota 20MB (20971520 bytes) pada account asfik@domain.tld dengan zmprov adalah :

   zmprov ma asfik@domain.tld zimbraMailQuota 20971520

Mailbox
Data paling penting yang harus dipindahkan tentunya adalah email-email account atau kita sebut saja mailbox. Untuk memindahkan data tersebut kita manfaatkan tool imapsync yang berfungsi untuk menyalin data dari sistem lama ke sistem baru menggunakan protokol IMAP. Contoh untuk memigrasikan account asfik@domain.tld dari server lama (10.126.10.10) ke localhost (Zimbra) dengan password rahasia menggunakan imapsync adalah sebagai berikut :

imapsync --buffersize 8192000 --nosyncacls --subscribe --syncinternaldates --noauthmd5 \
--host1 10.126.10.10 --user1 asfik@domain.tld --password1 rahasia \
--host2 127.0.0.1 --user2 asfik@domain.tld --password2 rahasia

Proses ini memakan waktu cukup lama. Pengalaman saya memindahkan 350 mailbox secara sekuensial dengan ukuran total 20 GB memakan waktu +- 5 jam! Mungkin jika Anda mempunya sumber daya perangkat yang memadai hal ini bisa dicoba dilakukan secara pararel :)

Alias
Alias (atau dot-forward) di vpopmail bisa dilihat pada direktori domain ybs dengan memperhatikan file .qmail-* atau menggunakan tool qmailadmin. Contoh untuk menambahkan alias asfihani@domain.tld ke account asfik@domain.tld :

   zmprov aaa asfik@domain.tld asfihani@domain.tld

Mailing-list
Memindahkan mailing-list dari sistem vpopmail (tepatnya ezmlm) ke Zimbra memang sedikit tricky. Hal ini disebabkan karena Zimbra belum ada fitur mailing list seperti ezmlm. Memang sudah ada Distribution List yang sudah cukup untuk sekedar meneruskan email ke beberapa orang, namun fitur-fitur sebuah mailing-list seperti proteksi posting hanya dari member masih belum bisa dilakukan.

Untuk mengatasi hal ini kita gunakan GNU Mailman dengan Apache dan Postfix yang listen di port yang lain (karena port default sudah digunakan oleh Zimbra). Kemudian pada Zimbra kita buat seluruh email alias dari Mailman tersebut (admin, bounces, confirm, join, leave, owner, request, subscribe, unsubscribe) untuk diredirect ke Postfix pada port alternatif tersebut dengan cara mengubah atribut zimbraMailTransport. Kalau digambarkan flow email yang mengarah ke mailing list kira-kira seperti ini:


Untuk melihat mailing-list yang ada di sistem lama bisa menggunakan tool qmailadmin  atau beberapa perintah berikut ini yang mungkin bisa membantu:

Daftar moderator:
    $ezmlm-list DIR/mod/
Daftar member:
    $ezmlm-list DIR/
Prefix subject mailing list :
    $cat DIR/prefix
Footer (jika ada) :
    $cat DIR/text/trailer

Dimana DIR adalah direktori mailing-list,  misalnya: /home/vpopmail/domains/domain.tld/list-name

Update: jika Anda tidak ingin menginstall Postfix dan Apache tambahan bisa mengikuti tutorial ini (Thanks Mas Dudi).

Address Book
Jika sistem lama menggunakan Squirrelmail sebagai webmailnya, maka data address book masing-masing user bisa dikonversi menjadi format CSV. Di Zimbra, import address book (Contact) menerima file CSV dengan format sebagai berikut :

"First Name","Last Name","E-mail Address","E-mail Display Name"

Untuk mengimport file address book di Zimbra bisa memanfaatkan perintah zmmailbox, misalnya perintah untuk mengimport file asfik_domain_tld.csv yang berisi address book ke account asfik@domain.tld :
zmmailbox -z -m asfik@domain.tld pru /Contacts asfik_domain_tld.csv


Demikian sedikit catatan yang mungkin berguna. Tertarik melakukan migrasi atau punya pengalaman yang bisa dishare? Silakan menulis komentar dibawah ini :)

0 comments:

Post a Comment

Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]