Upgrade Carbonio 26.3 ke 26.6.0 via Ansible

Hari ini Carbonio rilis versi 26.6.0, jadi langsung saya coba upgrade di server single-server saya pakai metode resmi berbasis Ansible. Prosesnya sebenarnya cukup mulus, cuma di akhir saya sempat kena masalah carbonio-tasks yang tidak jalan. Berikut catatan lengkapnya, dari kondisi awal sampai troubleshoot.

Cek Versi Awal

Sebelum mulai, saya cek dulu versi yang terpasang. Kebiasaan yang selalu saya lakukan, biar tahu titik awalnya dan bisa dibandingkan setelah upgrade.

root@mail:~# su - zextras -c "zmcontrol -v"
Carbonio Release 26.3.2
Advanced module version:

CLI versions:

zextras_version       26.3.1
zextras_commit 97dbab6a7491843684b80e95ecb2fb0d1d2442b0
zal_version           26.3.1
zal_commit     6db124701ef6e49a44951a025c432fc4f4f2bd9d

Server versions:

version               26.3.1
commit         97dbab6a7491843684b80e95ecb2fb0d1d2442b0
system_type           carbonio
product               Carbonio
zal_version           26.3.1
zal_commit     6db124701ef6e49a44951a025c432fc4f4f2bd9d

Posisi saya di 26.3.x dan target hari ini 26.6.0.

Install atau Update Collection carbonio_upgrade

Metode upgrade via Ansible dijalankan dari Control Node, bukan dari server Carbonio-nya. Pertama, pastikan collection upgrade selalu versi terbaru. Flag -U artinya install kalau belum ada, atau update ke versi terbaru kalau sudah ada.

root@ansible:~# ansible-galaxy collection install \ zxbot.carbonio_upgrade -U

Cek Inventory

Sebelum jalan, saya cek dulu file inventory. Ini file yang sama yang dipakai waktu instalasi awal, isinya daftar node dan group sesuai infrastruktur. Untuk single-server semuanya menunjuk ke satu host yang sama.

Sebelum menjalankan playbook, ada beberapa hal yang wajib kalian sadari. Ini bukan sekadar formalitas, saya sudah baca di dokumentasi resminya dan memang perlu diperhatikan:

HalKenapa penting
Playbook menghapus dependency yang tidak terpakaiTambahkan --extra-vars skip_autoremove=1 kalau tidak mau ada paket yang otomatis dibuang
Playbook update SEMUA paket dari repo yang aktifBukan cuma paket Carbonio. Nonaktifkan atau komentari repo yang tidak ingin diikutkan
Bisa di-run ulangKalau proses gagal di tengah jalan, jalankan lagi. Task yang sudah sukses akan di-skip
Legacy Chats tidak disentuhKalau masih pakai Chats lama, tidak akan dihapus, dijadikan read-only, atau dimigrasi otomatis

Poin soal “update semua paket dari repo aktif” ini yang menurut saya paling penting. Kalau ada repo pihak ketiga aktif, pastikan aman diikutkan, atau matikan dulu.

Jalankan Upgrade

Masuk ke direktori yang berisi inventory, lalu jalankan playbook upgrade.

root@ansible:~# cd single-server-deploy
root@ansible:~/single-server-deploy# ansible-playbook \ zxbot.carbonio_upgrade.carbonio_upgrade -u root -i \ inventory.yaml

Setelah itu tinggal ditunggu. Prosesnya cukup lama karena mengunduh dan memasang banyak paket, jalankan bootstrap database, lalu register ulang ke Carbonio Mesh. Sabar saja, jangan diinterupsi di tengah jalan.

Hasil

Setelah menunggu cukup lama, hasilnya sesuai harapan:

zextras@mail:~$ zmcontrol -v
Carbonio Release 26.6.0

Upgrade dari 26.3.x ke 26.6.0 berhasil.

Penutup

Upgrade via Ansible ini menurut saya cara paling nyaman untuk Carbonio, karena bootstrap database dan register Mesh sudah otomatis di dalam playbook. Yang perlu diwaspadai justru dua hal: perilaku autoremove dan update semua paket dari repo aktif.

Catatan: perintah bootstrap dan sidecar di atas berbasis dokumentasi resmi dan forum Zextras. Kalau nama service atau path di versi kalian berbeda, selalu konfirmasi ke dokumentasi resmi versi yang kalian pakai sebelum dijalankan.

Referensi

  • Upgrade Using Ansible (Carbonio Admin Guide): https://docs.zextras.com/carbonio/html/upgrade/ansible.html
  • Advanced Administration Tasks / pending-setups (Carbonio Admin Guide): https://docs.zextras.com/carbonio/html/admincli/advancedadmin.html
  • Tasks component (Carbonio CE Admin Docs): https://docs.zextras.com/carbonio-ce/html/architecture/components/component-tasks.html

Comments

Leave a Reply

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