Di tutorial ini saya akan memandu kalian memasang Carbonio Single Server untuk kebutuhan basic email menggunakan Ubuntu 24.04 LTS dan Ansible Collection resmi dari Zextras. Untuk deployment Carbonio yang baru, saya sarankan pakai Ubuntu Server 24.04 LTS.
1. Persiapan Server Ubuntu
Siapkan server baru dengan Ubuntu Server 24.04 LTS. Pastikan server sudah memenuhi hal berikut:
- Hostname atau FQDN yang sudah ditentukan.
- IP address static.
- DNS record yang sudah sesuai.
- Akses internet.
- Akses SSH menggunakan user root.
- Server dalam kondisi fresh atau minimal installation.
Contoh hostname yang saya pakai di tutorial ini adalah mail.example.com.
2. Initial Setup Ubuntu
Clone dulu repository berikut:
git clone https://github.com/afatyoo/Initial-Setup-Carbonio.git
Masuk ke direktori repository:
cd Initial-Setup-Carbonio
Berikan hak akses execute pada script:
chmod +x Initial-setup-ubuntu22-24.sh
Kemudian jalankan script:
./Initial-setup-ubuntu22-24.sh
Ikuti seluruh pertanyaan yang muncul dan masukkan informasi server sesuai kebutuhan. Penting, pastikan opsi PostgreSQL tetap di install untuk menjaga kestabilan deployment email server. Tunggu proses initial setup sampai selesai.
3. Install Ansible
Setelah initial setup selesai, install Ansible pada server atau komputer yang akan dipakai sebagai Ansible Controller. Jika Ansible belum tersedia, jalankan:
apt update
apt install ansible-core -y
Verifikasi instalasi:
ansible --version
4. Install Carbonio Ansible Collection
Install Ansible Collection Carbonio dari Zextras:
ansible-galaxy collection install zxbot.carbonio_install -U
Untuk memastikan collection sudah tersedia, cek dengan:
ansible-galaxy collection list | grep carbonio
5. Membuat Inventory
Buat file inventory:
nano inventory
Untuk instalasi Carbonio Basic Mail Single Server, gunakan template berikut:
# ============================================================
# Carbonio Single Server - Basic Mail
# ============================================================
[postgresServers]
mail.example.com
[masterDirectoryServers]
mail.example.com
# ============================================================
# Custom Default Domain - Optional
# ============================================================
[masterDirectoryServers:vars]
# default_domain=example.com
[serviceDiscoverServers]
mail.example.com
[mtaServers]
mail.example.com
[proxyServers]
mail.example.com
[proxyServers:vars]
webmailHostname=mail.example.com
[applicationServers]
mail.example.com
# ============================================================
# Optional Components (kosongkan untuk Single Server Basic)
# ============================================================
[filesServers]
[docsServers]
[taskServers]
[previewServers]
[videoServers]
[workStreamServers]
[prometheusServers]
[syslogServer]
[replicaDirectoryServers]
[dbsConnectorServers]
Ganti seluruh mail.example.com dengan hostname atau FQDN server Carbonio kalian yang sebenarnya.
6. Pastikan SSH Passwordless Berfungsi
Sebelum menjalankan playbook, pastikan Ansible Controller bisa SSH ke server Carbonio tanpa meminta password. Coba dulu:
ssh root@mail.example.com
Jika SSH key belum tersedia, generate terlebih dahulu:
ssh-keygen
Kemudian salin public key ke server Carbonio:
ssh-copy-id root@mail.example.com
Lakukan pengujian kembali dan pastikan login berhasil tanpa meminta password:
ssh root@mail.example.com
7. Test Koneksi Ansible
Sebelum instalasi, lakukan test koneksi Ansible:
ansible all -u root -i inventory -m ping
Jika berhasil, output kurang lebih seperti ini:
mail.example.com | SUCCESS => {
"changed": false,
"ping": "pong"
}
Jika masih ada error SSH atau koneksi, selesaikan dulu sebelum lanjut ke instalasi.
8. Jalankan Instalasi Carbonio
Karena proses instalasi bisa berjalan cukup lama, saya sangat sarankan menjalankannya di dalam screen atau tmux supaya proses tidak berhenti kalau koneksi SSH terputus.
Install screen jika belum ada:
apt install screen -y
Buat session baru:
screen -S carbonio-install
Kemudian jalankan Carbonio Ansible Playbook:
ansible-playbook zxbot.carbonio_install.carbonio_install -u root -i inventory
Sebagai alternatif, kalian bisa pakai tmux:
apt install tmux -y
tmux new -s carbonio-install
ansible-playbook zxbot.carbonio_install.carbonio_install -u root -i inventory
Jika koneksi SSH ke server terputus, proses instalasi tetap berjalan di dalam session screen atau tmux.
9. Monitoring Proses Instalasi
Perhatikan output Ansible selama instalasi. Proses yang berhasil biasanya menghasilkan summary seperti:
PLAY RECAP
mail.example.com : ok=xx changed=xx unreachable=0 failed=0 skipped=xx
Hal utama yang perlu diperhatikan adalah unreachable=0 dan failed=0. Jika ada failed=1 atau lebih, periksa task yang gagal sebelum melanjutkan konfigurasi Carbonio.
Ringkasan Proses
Alur instalasi secara keseluruhan bisa saya gambarkan seperti ini:
Ubuntu Server 24.04 LTS
|
v
Initial Setup Ubuntu
|
v
Install PostgreSQL
|
v
Install Ansible Core
|
v
Install Zextras Carbonio Ansible Collection
|
v
Configure Inventory
|
v
Configure SSH Passwordless
|
v
Test Ansible Connection
|
v
Run Carbonio Ansible Playbook
|
v
Wait Until Installation Completed
|
v
Carbonio Single Server Ready
Ringkasan Perintah
# Clone initial setup
git clone https://github.com/afatyoo/Initial-Setup-Carbonio.git
cd Initial-Setup-Carbonio
chmod +x Initial-setup-ubuntu22-24.sh
./Initial-setup-ubuntu22-24.sh
# Install Ansible
apt update
apt install ansible-core -y
# Install Carbonio Ansible Collection
ansible-galaxy collection install zxbot.carbonio_install -U
# Test Ansible connectivity
ansible all -u root -i inventory -m ping
# Run installation
ansible-playbook zxbot.carbonio_install.carbonio_install -u root -i inventory
Catatan penting, selalu jalankan proses instalasi menggunakan screen atau tmux agar instalasi tidak terhenti apabila koneksi SSH terputus. Kalau semua langkah di atas sudah dilewati dengan unreachable dan failed bernilai nol, artinya Carbonio Single Server kalian sudah siap dipakai. Selamat mencoba.