Tutorial Instalasi Carbonio Single Server di Ubuntu 24.04 dengan Ansible

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.

Leave a Reply

Your email address will not be published. Required fields are marked *