Category: Pribadi

  • Cara Snapshot dan Rollback LVM Thin /opt

    Cara Snapshot dan Rollback LVM Thin /opt

    Hari ini saya melakukan percobaan snapshot dan rollback lvm thin yang sebelumnya pernah saya buat. Panduan ini melanjutkan penggunaan thin LV vgthin/opt yang sudah terpasang di /opt melalui fstab. Pengujian dilakukan pada VM lab dengan file penanda dan seluruh aplikasi Carbonio. Jalankan sebagai root.

    Rollback mengembalikan seluruh isi /opt, sehingga perubahan setelah snapshot akan hilang. Snapshot ikut terhapus setelah merge. Snapshot ini tidak mencakup database atau konfigurasi Carbonio yang berada di luar /opt.

    1. Siapkan pengujian

    Periksa mount dan kapasitas pool:

    findmnt --mountpoint /opt
    lvs vgthin

    Pastikan /opt berasal dari vgthin/opt dan Data%/Meta% pada pool belum mendekati penuh.

    Saya juga memasang Carbonio pada Ubuntu 24.04 pada lvmthin /opt untuk menguji pada aplikasi sebenarnya, hentikan service terlebih dahulu selama pengujian:

    systemctl stop carbonio.target

    Layanan lain yang memakai /opt juga harus dihentikan. VM tetap berjalan.

    2. Buat snapshot

    Buat file penanda, lepas filesystem agar snapshot diambil dalam keadaan bersih, lalu buat snapshot:

    mkdir -p /opt/lvmthin-uji
    printf 'sebelum snapshot\n' > /opt/lvmthin-uji/status.txt
    cd /
    umount /opt
    lvcreate --snapshot -n opt-snap-uji vgthin/opt
    mount /opt

    Jika umount gagal, jangan lanjutkan. Gunakan fuser -vm /opt untuk menemukan proses yang masih mengaksesnya. Hentikan proses tersebut dengan benar; jangan paksa unmount.

    Thin snapshot memakai pool yang sama, jadi tidak perlu opsi ukuran -L atau -V. Gunakan nama snapshot yang belum ada.

    3. Ubah file untuk simulasi

    printf 'sesudah snapshot\n' > /opt/lvmthin-uji/status.txt
    cat /opt/lvmthin-uji/status.txt

    File sekarang berisi sesudah snapshot. Layanan aplikasi tetap dihentikan sampai pengujian selesai.

    4. Rollback ke snapshot

    Pastikan snapshot belum di-mount di tempat lain, lalu jalankan:

    cd /
    umount /opt
    lvchange -an vgthin/opt
    lvconvert --mergethin vgthin/opt-snap-uji

    Lanjutkan hanya jika unmount, deaktivasi LV, dan merge berhasil. Jika merge tertunda karena LV masih terbuka, selesaikan akses/mount yang tersisa sebelum melanjutkan.

    Aktifkan LV dan pasang kembali:

    lvchange -ay vgthin/opt
    mount /opt
    cat /opt/lvmthin-uji/status.txt
    lvs vgthin

    File harus kembali berisi sebelum snapshot dan opt-snap-uji sudah tidak ada. Jika Carbonio tadi dihentikan, setelah mount berhasil hidupkan kembali:

    systemctl start carbonio.target

    Uji ini membuktikan rollback filesystem. Pemulihan Carbonio secara utuh memerlukan penyelarasan data aplikasi di luar /opt.

  • Memahami LVM Thin Provisioning

    Memahami LVM Thin Provisioning

    Hari ini saya ditugaskan untuk mencoba LVM Thin. Sembari saya oprek dan testing, saya mencari tahu dulu cara kerjanya secara sederhana, terutama perbedaan antara ukuran volume yang terlihat dan ruang disk yang benar-benar dipakai.

    Dasar LVM

    LVM adalah cara Linux mengelola ruang penyimpanan. Ada tiga istilah yang perlu dikenali:

    IstilahArtinya
    PV (physical volume)Disk atau partisi yang disiapkan untuk LVM.
    VG (volume group)Tempat mengumpulkan ruang dari PV.
    LV (logical volume)Volume yang dibuat dari ruang VG.

    Urutannya adalah PV → VG → LV. Pada LVM Thin, ada satu bagian tambahan bernama thin pool. Pool ini dibuat dari ruang VG dan menjadi tempat thin volume mengambil ruang untuk menyimpan data.

    Apa bedanya dengan LV biasa?

    LV biasaLVM Thin
    Ruang sebesar ukuran LV disediakan saat LV dibuat.Thin volume memiliki ukuran yang terlihat oleh sistem, tetapi ruang di pool dipakai saat data ditulis.
    Ruang untuk LV diambil langsung dari VG.Ruang untuk thin volume diambil dari thin pool.

    Ukuran yang terlihat pada thin volume disebut ukuran virtual. Jadi, ketika sebuah thin volume terlihat memiliki kapasitas tertentu, belum tentu sebanyak itu ruang fisik di thin pool sudah terpakai.

    Hal yang sempat membuat saya bingung adalah thin pool dan thin volume memakai ruang pada tahap yang berbeda. Thin pool mengambil ruang dari VG saat dibuat. Setelah itu, thin volume memakai ruang di dalam pool saat data ditulis. Karena itulah ruang kosong pada VG tidak sama dengan ruang kosong di thin pool.

    Kesimpulan

    Sejauh yang saya pahami, LVM Thin memungkinkan volume dibuat tanpa langsung memakai seluruh ukuran virtualnya sebagai ruang penyimpanan data. Ruang fisik tetap memiliki batas, jadi ukuran volume yang terlihat perlu dibedakan dari ruang yang tersedia di thin pool. Ini dasar yang ingin saya pahami sebelum melanjutkan praktik.

  • Cicak di Dinding

    Cicak di Dinding

    Waktu kecil kita semua hafal lagu cicak yang merayap pelan di dinding, lalu datang nyamuk dan langsung disambar. Lagu sederhana, tapi kalau direnungkan lagi sebagai orang dewasa, ada satu hal yang menarik.

    Cicak tidak bisa terbang. Gerakannya lambat, cuma merayap, menempel di dinding. Sementara mangsanya, nyamuk, punya sayap dan bisa terbang bebas. Secara logika, harusnya cicak kesulitan. Tapi kenyataannya cicak tetap kenyang. Nyamuk yang lincah itu tetap saja masuk ke mulutnya.

    Buat saya, ini gambaran yang pas soal rezeki. Yang sudah jadi bagian kita akan sampai juga dengan caranya sendiri, sekalipun lewat jalan yang tidak masuk akal. Kita sering merasa kalah saing, merasa orang lain lebih cepat dan lebih lincah, lalu khawatir bagian kita keduluan diambil. Padahal cicak menunjukkan sebaliknya.

    Tapi bukan berarti diam saja. Cicak tetap merayap, tetap mengincar, tetap menyergap di waktu yang tepat. Ia tidak menganga menunggu nyamuk jatuh sendiri. Artinya, percaya rezeki sudah ada bagiannya bukan alasan untuk malas. Diamnya cicak di dinding itu juga bentuk usaha, bukan pasrah total.

    Jadi lain kali kalau kalian lihat cicak menempel di dinding, ingat lagi pelajaran sederhananya. Yang tidak bisa terbang tetap bisa makan yang bersayap. Tugas kita cuma satu: terus berusaha di posisi masing-masing.

  • Percobaan SSO dengan Authentik di Proxmox dan Hubungkan ke Nested Proxmox

    Percobaan SSO dengan Authentik di Proxmox dan Hubungkan ke Nested Proxmox

    Hari ini saya coba pasang Authentik sebagai Identity Provider (IdP) di homelab, lalu saya hubungkan ke nested Proxmox untuk testing. Tulisan ini rangkuman singkat dari instalasi sampai konfigurasi login OIDC-nya. Saya pakai metode LXC di Proxmox, bukan VM, karena lebih ringan untuk lab.

    Yang saya siapkan

    • LXC Debian, unprivileged, fitur nesting aktif
    • Spek: 2 core, 4 GB RAM, disk 20 GB
    • Nested Proxmox sebagai target testing login SSO

    1. Buat LXC atau VM

    2. Install Docker di dalam LXC

    apt update && apt install -y curl
    curl -fsSL https://get.docker.com | sh
    docker compose version

    3. Deploy Authentik

    mkdir -p /opt/authentik && cd /opt/authentik
    wget https://docs.goauthentik.io/compose.yml
    
    echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
    echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
    
    docker compose pull
    docker compose up -d

    Catatan: jangan ubah atau mount /etc/timezone dan /etc/localtime di kontainer Authentik. Authentik jalan dengan timezone internal UTC, kalau diubah bisa merusak autentikasi OAuth dan SAML.

    4. Setup awal Authentik

    Buka http://IP-LXC:9000/if/flow/initial-setup/, lalu set password untuk user akadmin.

    5. Buat Application dan Provider untuk Proxmox

    Di admin interface, Applications > Applications > Create with provider:

    FieldNilai
    Application nameProxmox
    Provider typeOAuth2/OpenID Connect
    Redirect URIStrict, Authorization, https://IP-PVE:8006
    Signing keypilih yang tersedia
    Encryptionnonaktif
    Subject modeBased on the User’s Email

    Setelah submit, catat Client ID, Client Secret, dan slug aplikasi. Issuer URL-nya jadi http://IP-LXC:9000/application/o/<slug>/.

    6. Tambah realm OIDC di nested Proxmox

    Datacenter > Permissions > Realms > Add > Realm:

    FieldNilai
    Issuer URLhttp://IP-LXC:9000/application/o/<slug>/
    Realmauthentik
    Client ID(dari Authentik)
    Client Key(client secret dari Authentik)
    Username claimusername
    Autocreate usersaktif

    Atau lewat CLI:

    pveum realm add authentik --type openid \
      --issuer-url http://IP-LXC:9000/application/o/<slug>/ \
      --client-id <client_id> --client-key <client_secret> \
      --username-claim username --autocreate 1

    7. Beri hak akses user

    User hasil autocreate muncul tanpa role. Tambahkan lewat Datacenter > Permissions > Add > User Permission, path /, role Administrator saja untuk lab, misal akadmin@authentik.

    8. Tes login

    Logout dari Proxmox, di layar login pilih Realm > authentik, lalu login pakai akun Authentik. Kalau berhasil, Proxmox bikin user baru otomatis dan saya tinggal pakai sesuai role yang sudah diberikan.

    Penutup

    Authentik di LXC ini cukup ringan untuk lab, dan integrasi OIDC ke Proxmox tidak butuh banyak field. Bagian yang paling sering bikin gagal biasanya cuma dua, Issuer URL yang tidak persis sama, dan redirect URI yang tidak match dengan alamat Proxmox-nya.

  • Pengalaman Pertama Kunjungan Klien

    Pengalaman Pertama Kunjungan Klien

    Semua orang pasti pernah mengalami yang namanya pengalaman pertama, dalam hal apa pun. Entah itu pertama kali masuk sekolah, pertama kali bawa motor sendiri, atau pertama kali mulai kerja. Rasanya biasanya mirip-mirip, campuran antara gugup, penasaran, dan sedikit takut salah. Tapi justru dari momen pertama itulah biasanya kita belajar paling banyak.

    Nah, hari ini saya juga baru saja mengalami salah satu pengalaman pertama yang menurut saya cukup berkesan. Untuk pertama kalinya saya diberi kesempatan ikut kunjungan klien bersama tim, dan kebetulan lokasi yang kami tuju juga bukan klien sembarangan, clue tempatnya adalah “Istana”, jadi rasanya campur aduk (senang iya, gugup iya, semangat pun iya).

    Pagi-pagi sekitar jam delapan kurang, saya sudah sampai di markas bareng Pak Arif dan Mas Ridwan. Kami menyiapkan berkas-berkas yang perlu dibawa dulu, memastikan semuanya lengkap, lalu berangkat naik Grab menuju lokasi.

    Sesampainya di sana, suasananya langsung terasa berbeda. Kami masuk lewat pos penjagaan, dan ternyata pemeriksaannya cukup ketat, mirip seperti yang biasa kalau masuk bandara. Setelah itu kami diminta mengisi data identitas dan menukarnya dengan tanda pengenal tamu. Yang bikin saya cukup kaget, untuk bisa sampai ke ruangan yang dituju, kami harus menukar tanda pengenal tamu itu sampai tiga kali. Baru kali ini saya merasakan prosedur masuk suatu tempat seketat itu.

    Jujur saja, di awal saya cukup gugup. Maklum, ini pengalaman pertama dan saya belum terbiasa dengan situasi seperti ini. Tapi justru karena itu, saya jadi lebih fokus memperhatikan bagaimana para senior bekerja. Saya mengamati cara mereka berkomunikasi dengan klien, bagaimana menyampaikan materi dengan tenang, dan bagaimana menjawab pertanyaan secara teknis tanpa terlihat kaku. Buat saya, ini ilmu yang nggak bisa didapat cuma dari teori.

    Setelah pemaparan materi selesai, kami berpisah. Pak Arif harus kembali dulu untuk mengantarkan dokumen yang sempat tertinggal, sementara saya dan Mas Ridwan memutuskan mencari makan. Kami memilih daerah Summarecon Bekasi karena lokasinya dekat dengan markas dan pilihan tempat makannya banyak. Selesai makan, kami sempatkan ngopi sambil ngobrol santai soal pekerjaan dan menulis artikel ini, baru setelah itu kembali ke markas.

    Kalau ditanya gimana rasanya, saya senang sekali. Rasa gugup di awal tadi rasanya terbayar dengan pengalaman yang menurut saya tak tergantikan. Bisa melihat langsung bagaimana kunjungan klien berjalan, dari persiapan sampai pemaparan, adalah pelajaran berharga yang bakal saya ingat selalu.

  • Level-Level dalam System Administrator (Sysadmin)

    Level-Level dalam System Administrator (Sysadmin)

    Saya coba memetakan jenjang kemampuan sysadmin, dari yang baru mulai sampai yang jadi rujukan orang lain. Awalnya cuma catatan pribadi, tapi ternyata berguna buat melihat saya sendiri ada di mana dan apa yang masih kurang. Model lima level di bawah disusun dengan brainstorming dengan AI, tapi polanya sejalan dengan beberapa referensi karier sysadmin yang saya cantumkan di bagian akhir.

    Urutannya penting. Tiap level mengasumsikan level di bawahnya sudah solid, jadi tidak bisa loncat.

    Lima level sysadmin

    LevelNamaBisa apaIndikator lulus
    L0OperatorMenjalankan command yang diberikan, baca status servicePaham filesystem, proses, permission, systemd dasar
    L1AdministratorMengelola satu server sendirian dari awal sampai akhirPasang, konfigurasi, amankan satu service produksi tanpa dipandu
    L2Senior AdminTroubleshoot masalah tak terduga, kelola banyak serverBisa baca log dan menemukan root cause tanpa menebak
    L3ArchitectMendesain topologi multi-server, HA, dan disaster recoveryBisa menjelaskan trade-off tiap keputusan desain
    L4SpecialistAhli mendalam di satu domain plus otomasi penuhOrang lain yang bertanya ke kalian saat mereka mentok

    Beberapa catatan singkat untuk tiap lompatan:

    • L0 ke L1. Bedanya bukan jumlah command yang dihafal, tapi kemandirian. Di L1 kalian bisa dilepas mengurus satu server tanpa panik.
    • L1 ke L2. Ini lompatan terpenting. Troubleshooting jadi kemampuan utama, bukan lagi sekadar menjalankan instruksi. Masalah yang kelihatannya di satu layer kadang akarnya di layer lain, dan di L2 kalian mulai bisa membedakannya.
    • L2 ke L3. Berhenti cuma menjalankan dan memperbaiki, mulai mendesain. Yang membedakan: bisa menjelaskan kenapa memilih desain tertentu, bukan cuma tahu cara menjalankannya.
    • L3 ke L4. Spesialisasi mendalam plus otomasi sampai operasional harian minim sentuhan manual.

    Di mana saya sekarang

    Saya rasa posisi saya ada di L1. Kerjaan harian saya banyak soal Zimbra, Carbonio, dan Proxmox, dan sebagian besar waktu habis buat troubleshooting. Untuk arah L3, saya sudah pegang cluster Proxmox tiga node dengan Ceph di homelab, tapi masih banyak keputusan desain yang perlu saya pertajam alasannya, bukan cuma karena ini yang biasa dipakai.

    Kenapa ini penting

    Satu hal yang makin terasa sambil menjalani kerja sehari-hari: gampang terjebak merasa sudah jago hanya karena hafal banyak command. Padahal command itu cuma alat, bukan tujuan. Yang benar-benar membedakan level adalah seberapa dalam paham kenapa sesuatu bisa bekerja, dan seberapa berani mulai mendesain, bukan sekadar menjalankan.

    Buat yang juga pegang infrastruktur, coba taruh diri di salah satu level tadi. Tidak usah kaget kalau fondasinya ternyata masih ada yang bolong walau sehari-hari sudah ngurus sistem yang rumit. Saya pun begitu, baru ketahuan waktu balik mengecek ulang dasar-dasar sistem.

    Sumber

    Model di atas susunan saya sendiri, tapi konsep jenjang sysadmin dari operasional sampai arsitek ini umum dibahas. Beberapa referensi yang sejalan:

  • Belajar Sysadmin dengan Bantuan AI

    Bulan ini saya kebetulan menjalani dua hal sekaligus: membuat panduan belajar sysadmin untuk diri sendiri, dan mengikuti training AI yang diselenggarakan perusahaan. Dua hal yang awalnya terasa tidak berhubungan, tapi ternyata saling mengisi.


    Masalahnya bukan kurang materi

    Kalau kalian bekerja di bidang infrastruktur, pasti tahu rasanya: materi belajar melimpah, tapi arah belajarnya yang tidak jelas. Tutorial bertebaran di mana-mana, dokumentasi resmi panjang, forum penuh jawaban yang kadang kontradiktif. Yang susah bukan menemukan konten, tapi menyusun urutan belajar yang masuk akal untuk situasi kerja nyata.

    Saya sendiri sehari-hari mengelola Zimbra, Carbonio, Proxmox, dan beberapa layanan terkait. Sudah cukup lama berkutat di sana. Tapi saya sadar ada juga celah, teori yang saya lewati karena sibuk troubleshooting, konsep yang saya pakai tanpa benar-benar memahami dasarnya.

    Dari situlah ide membuat panduan belajar sendiri muncul.


    AI sebagai partner menyusun, bukan sekadar menjawab

    Yang saya lakukan bukan meminta AI menulis panduan untuk saya. Saya sudah punya konteks kerja, sudah punya pengalaman di lapangan, dan tahu celah apa yang ingin saya tutup. Yang saya butuhkan adalah partner untuk menyusun semua itu jadi struktur yang kohesif.

    Hasilnya adalah sepuluh file Markdown yang mencakup Linux fundamental, jaringan dan DNS, mail server, Zimbra dan Carbonio, Proxmox, otomasi dengan Ansible, security dan monitoring, strategi backup, plus roadmap proyek dari level dasar sampai level arsitek. Ditambah satu cheatsheet command untuk referensi cepat saat kerja.

    Prosesnya tidak instan. Saya harus menjelaskan konteks pekerjaan saya, menyebutkan celah yang ingin diisi, dan memberikan arah yang cukup spesifik supaya outputnya relevan, bukan panduan generik yang bisa ditemukan di mana saja. Saya perlu berpikir dulu sebelum mengetik, bukan sekadar mengetik lalu berpikir.

    Dan di situlah training AI di kantor jadi terasa nyambung.


    Prompt engineering itu pada dasarnya berpikir lebih keras sebelum bertanya

    Training yang saya ikuti berfokus pada produktivitas: cara memakai AI tools secara efektif, termasuk dasar-dasar prompt engineering. Intinya sederhana: kualitas output sangat bergantung pada kualitas input. AI tidak membaca pikiran. Kalau pertanyaannya kabur, jawabannya juga akan kabur.

    Itu bukan prinsip baru sebetulnya. Kalau kalian pernah membuka tiket support yang baik, atau menulis runbook yang jelas, kalian sudah mempraktikkan hal yang sama. AI hanya memperlihatkannya dengan lebih eksplisit, karena feedback-nya langsung.

    Yang berubah setelah training itu bukan kemampuan teknis saya. Yang berubah adalah cara saya memulai percakapan dengan AI: lebih dulu merumuskan masalah, menyebutkan konteks, menentukan output yang diinginkan, baru mengetik. Hasilnya memang berbeda.


    Yang tidak bisa digantikan AI

    Ada satu hal yang menjadi jelas selama proses ini: AI tidak bisa menggantikan pengalaman lapangan sebagai fondasi.

    Panduan yang saya buat terasa relevan dan tidak generik justru karena saya bisa mengevaluasi setiap bagiannya dari pengalaman nyata. Saat AI memberikan penjelasan tentang Ceph device class misalnya, saya tahu apakah itu sudah cukup detail atau perlu diperdalam, karena saya pernah mengonfigurasinya langsung. Tanpa konteks itu, hasilnya mungkin tetap panjang tapi tidak akan berguna untuk situasi kerja saya.

    AI mempercepat penyusunan. Pengalaman yang menentukan arahnya.


    Apa yang bisa kalian coba

    Kalau kalian juga sedang belajar di bidang teknis dan ingin mencoba pendekatan serupa, beberapa hal yang saya pelajari dari prosesnya:

    Mulai dari apa yang sudah kalian tahu, bukan dari nol. AI bekerja jauh lebih baik sebagai partner diskusi untuk orang yang sudah punya konteks, dibandingkan sebagai guru untuk yang benar-benar asing dengan topiknya.

    Tentukan output sebelum bertanya. Bukan “jelaskan Proxmox”, tapi “saya sedang menyusun materi latihan untuk tim yang sudah familiar Linux tapi belum pernah pegang Proxmox, apa urutan konsep yang paling masuk akal?”

    Evaluasi hasilnya. Jangan langsung percaya setiap detail, terutama untuk hal-hal yang sangat spesifik versi seperti command Carbonio atau nama unit systemd. Verifikasi ke dokumentasi resmi.


    Panduan sysadmin yang saya buat itu pada akhirnya bukan produk akhir. Ia adalah kerangka belajar yang akan saya isi dan perbarui seiring pengalaman bertambah. AI membantu saya membangunnya lebih cepat dari yang saya bayangkan, tapi arahnya tetap saya yang tentukan.

    Dan mungkin itu cara yang paling jujur untuk memakai AI: bukan sebagai pengganti berpikir, tapi sebagai alat yang membuat berpikir jadi lebih produktif.

  • Review Disway: Aplikasi Tahu Sumedang dari Sudut Pandang IT

    Review Disway: Aplikasi Tahu Sumedang dari Sudut Pandang IT

    Pagi ini saya membaca artikel Bapak Dahlan Iskan di Disway berjudul “Tahu Digigit”. Isinya tentang aplikasi layanan publik milik Pemerintah Kabupaten Sumedang yang namanya Tahu Sumedang. Logonya pun unik, yaitu tahu yang sudah digigit di pojoknya. Sebuah plesetan visual dari logo Apple yang ikonik (apel krowak, tahu krowak).

    Aplikasi tersebut merupakan portal layanan publik untuk warga Kabupaten Sumedang, jadi saya belum tau bagaimana isinya. Tapi membaca deskripsi Pak Dahlan, ada banyak hal yang menurut saya menarik untuk dicatat dari sudut pandang yang setiap hari berurusan dengan infrastruktur IT dan sistem internal. Tulisan ini bukan review berdasarkan pengalaman langsung, melainkan refleksi setelah membaca laporan tersebut, sekaligus beberapa pertanyaan yang muncul di kepala saya sebagai praktisi.

    Yang Menarik dari Aplikasi Tahu Sumedang

    Dari tulisan Pak Dahlan, ada beberapa hal yang langsung saya catat sebagai sesuatu yang jarang saya temukan di aplikasi pemerintahan daerah.

    Pertama, kedalaman datanya. Disebutkan ada 29 menu di dashboard, mulai dari kas daerah, pendidikan, kesehatan, sampai Makan Bergizi Gratis (MBG). Yang menarik bukan jumlah menunya, tapi rincian sampai level paling bawah. Kas daerah bisa ditelusuri sampai uang masuk dan keluar hari itu, dipakai untuk belanja apa saja. Menu pendidikan menampilkan bangunan sekolah yang rusak berat lengkap dengan titik koordinatnya. Dari pengalaman saya melihat banyak aplikasi dashboard pemerintahan yang biasanya berhenti di angka agregat tahunan, level kedalaman seperti ini cukup di luar kebiasaan.

    Kedua, mekanisme verifikasi MBG. Setiap dapur SPPG wajib mengunggah foto makanan hari itu. Pihak sekolah juga wajib mengunggah foto makanan yang sebenarnya diterima anak-anak. Dengan begitu, ada dua sumber data yang bisa dibandingkan secara real-time, bukan oleh auditor, tapi oleh siapa saja yang mau melihat. Ini desain sistem yang menarik: alih-alih membangun tim audit yang mahal, mereka memanfaatkan dua pihak yang sudah ada dalam proses dan membuatnya saling cross-check secara natural. Dalam dunia software engineering, prinsip ini mirip dengan trust but verify, dan diimplementasikan dengan baik.

    Ketiga, model dokumen via barcode. Akta lahir dan kartu keluarga disajikan dalam bentuk barcode yang bisa di-scan dan disimpan di HP. Mau cetak fisik, bisa cetak sendiri. Pemkab tidak lagi jadi gatekeeper yang harus didatangi setiap kali warga butuh dokumen. Untuk kabupaten dengan wilayah luas, model seperti ini secara teori bisa memangkas banyak sekali biaya operasional kantor dinas dan waktu warga.

    Keempat, klaim bahwa aplikasi ini boleh ditiru. Dalam tulisan disebutkan sudah lebih dari 200 kabupaten yang datang belajar ke Sumedang. Kalau betul boleh disalin secara bebas, apakah itu open source, atau setidaknya open spec, ini hal yang penting. Tradisi membagi karya antar pemerintah daerah masih jarang di Indonesia, lebih sering yang terjadi adalah masing-masing membangun aplikasi sendiri dari nol dengan vendor masing-masing.

    Beberapa Pertanyaan yang Muncul

    Setelah selesai membaca, justru pertanyaan-pertanyaan inilah yang lebih dominan di kepala saya. Bukan karena saya skeptis, tapi karena pengalaman saya mengurus berbagai sistem mengajarkan satu hal: sistem yang kelihatan ideal di permukaan biasanya menyimpan banyak detail yang tidak terlihat.

    Soal privasi data. Dalam tulisan disebutkan, “tersaji informasi hari itu siapa lahir, nama bayinya siapa.” Saya berhenti agak lama di kalimat ini. Apakah maksudnya nama bayi yang baru lahir benar-benar bisa dilihat publik secara real-time? Kalau ya, ini bertentangan dengan prinsip pelindungan data pribadi. Mungkin saja yang dimaksud adalah notifikasi internal untuk keperluan administrasi, dan dokumen barcode hanya bisa di-scan oleh pemilik atau pihak yang berwenang. Tapi tulisan Pak Dahlan tidak menjelaskan batas akses ini.

    Soal infrastruktur dan keberlanjutan. Aplikasi sebesar ini, dengan unggahan foto MBG harian dari ratusan sekolah, dashboard real-time, dan integrasi data dari banyak dinas, pasti membutuhkan infrastruktur backend yang cukup serius. Servernya di mana? Berapa biaya operasional bulanannya? Siapa yang mengelola? Apakah dikerjakan oleh tim internal Diskominfo Sumedang atau di-outsource ke vendor? Ini pertanyaan yang menentukan apakah aplikasi ini benar-benar bisa ditiru oleh kabupaten lain dengan kapasitas IT yang berbeda-beda.

    Soal digital divide. Klaim bahwa aplikasi ini “diawasi langsung seluruh rakyat secara real time” mengasumsikan akses HP dan internet yang merata di Sumedang. Padahal Sumedang punya wilayah pegunungan dan pedesaan yang belum tentu punya sinyal stabil. Mungkin di sinilah ruang perbaikan ke depan: bagaimana fitur dashboard juga bisa diakses oleh warga yang tidak memiliki smartphone, misalnya lewat layar publik di kantor kecamatan atau balai desa.

    Apa yang Bisa Saya Ambil dari Sini

    Terlepas dari pertanyaan-pertanyaan di atas, yang menurut saya wajar untuk diajukan terhadap sistem apa pun yang baru saya kenal, saya pikir ide dasar Tahu Sumedang patut diapresiasi.

    Aplikasi Tahu Sumedang menarik untuk dipelajari minimal pada level desain. Bagaimana mereka mengintegrasikan data antar dinas? Bagaimana otorisasi diatur? Bagaimana skalabilitasnya? Kalau benar aplikasi ini terbuka untuk ditiru, mudah-mudahan ada saluran resmi untuk mempelajari arsitekturnya, bukan sekadar tampilan dashboard-nya saja.

    Sumber tulisan: Dahlan Iskan, “Tahu Digigit”, Disway, 13 Mei 2026.

  • Training Carbonio C1: Pengalaman Belajar Mail Server lewat Training Resmi Zextras

    Training Carbonio C1: Pengalaman Belajar Mail Server lewat Training Resmi Zextras

    Perjalananku di Dunia Mail Server

    Hari ini jadi hari yang cukup berkesan buat saya. Resmi memulai training Carbonio C1 secara online lewat platform resmi Zextras, difasilitasi oleh tempat magang saya, PT Aktiva Kreasi Investama dan PT Excellent Infotama Kreasindo. Sebagai pemagang yang masih banyak belajar di dunia IT enterprise, kesempatan akses ke training resmi seperti ini rasanya benar-benar berharga, apalagi materinya disusun langsung oleh pengembang produknya sendiri.

    Sebelumnya saya cuma kenal Carbonio sebatas nama yang lewat di telinga saja. Sekarang akhirnya bisa belajar langsung dari sumber resminya, dengan materi yang sudah dirancang sistematis di platform learning Zextras. Rasanya seperti membuka pintu ke ruangan baru di dunia infrastruktur email yang selama ini cuma saya lihat dari luar, tahu pintunya ada, tapi belum pernah benar-benar masuk dan lihat isinya.

    Insight Baru

    Sebelumnya saya memang pernah mencoba instalasi Zimbra juga, tapi belum sampai mendalam dan belum sempat mempelajari fundamentalnya secara penuh. Nah, lewat training Carbonio C1 ini saya merasa akhirnya bisa membongkar proses yang selama ini terjadi “di balik layar”, dari pengiriman sampai penerimaan email, lengkap dengan komponen-komponen yang ada di Carbonio saling terhubung satu sama lain.

    Yang paling bikin saya terkesan adalah bagaimana Carbonio mengintegrasikan banyak layanan sekaligus, mulai dari SMTP untuk pengiriman, IMAP/POP untuk akses klien, LDAP untuk autentikasi, database untuk penyimpanan, plus anti-spam dan antivirus yang butuh ketelitian tinggi dalam konfigurasinya. Ternyata “kirim email” itu jauh dari proses sederhana, ada banyak lapisan dan dependensi yang harus jalan bareng tanpa hambatan.

    Solusi yang Relevan dengan Kebutuhan Sekarang

    Carbonio menarik perhatian saya karena hadir sebagai solusi open-source yang cukup kompetitif buat dijadikan alternatif dari produk proprietary di luar sana. Fitur kolaborasi, integrasi dengan layanan lain, dan kemampuan scaling-nya jadi nilai plus, terutama buat organisasi yang ingin kontrol penuh atas data mereka tanpa harus bergantung sepenuhnya ke vendor besar.

    Selain itu, saya juga jadi lebih paham konsep-konsep yang sebelumnya cuma sering saya dengar sekilas, seperti MX record, konfigurasi DNS, certificate management, sampai pertimbangan security pada layer email. Hal-hal yang dulu kelihatan abstrak, sekarang mulai kebayang bentuknya.

    Excitement dan Planning

    Baru hari pertama, tapi excitement-nya sudah terasa banget. Memahami cara kerja mail server dari sisi dalam rasanya seperti unlock layer baru dari pengetahuan IT. Ini bukan sekadar soal “mengirim email”, tapi soal mengelola infrastruktur komunikasi yang krusial buat sebuah organisasi.

    Saya semangat untuk lanjut menggali lebih dalam, mulai dari konfigurasi, deployment, sampai maintenance harian. Buat siapa pun yang pengen punya kontrol lebih atas infrastruktur email tanpa harus terkunci di ekosistem vendor tertentu, Carbonio C1 kayaknya layak banget masuk daftar untuk dieksplorasi.

    Terima kasih buat Aktiva dan Excellent yang sudah memfasilitasi akses ke training ini, dan tentu saja Zextras yang sudah menyediakan platform learning resmi dengan materi yang terstruktur. Akses ke resource pembelajaran selengkap ini buat pemagang nggak selalu datang. Training masih berlanjut, dan apa yang saya dapat hari ini sudah cukup jadi fondasi yang solid. Saya akan share progress-nya di postingan berikutnya. Stay tuned!

  • Clone VM ke Storage Ceph via GUI Proxmox

    Clone VM ke Storage Ceph via GUI Proxmox

    Saya sedang membangun belajar Proxmox dengan Ceph untuk memahami konsep Hyper-Converged Infrastructure (HCI). Salah satu hal yang saya uji adalah bagaimana memindahkan VM dari storage lokal ke shared storage, dalam hal ini Ceph, dengan cara yang aman.

    Alih-alih langsung memindahkan disk (move), saya memilih metode clone. Pendekatan ini lebih aman karena VM asli tetap utuh, sehingga jika terjadi kesalahan, saya masih memiliki backup yang bisa digunakan.


    Teori Singkat

    Sebelum masuk ke langkah praktis, saya memahami dulu konsep dasarnya.

    VM yang berada di storage lokal seperti local-lvm hanya bisa diakses oleh satu node. Artinya, jika saya ingin melakukan live migration ke node lain, disk tersebut tidak bisa diakses oleh node tujuan.

    Sebaliknya, Ceph adalah shared storage. Semua node dalam cluster dapat mengakses disk yang sama. Inilah yang memungkinkan live migration tanpa perlu memindahkan disk secara fisik.

    Dengan kata lain:

    • Storage lokal = terbatas pada satu node
    • Ceph = bisa diakses semua node

    Kondisi Awal

    Saya memiliki VM dengan detail berikut:

    VM ID: 100
    Node: rafi1
    Storage: local-lvm
    OS: Alpine Linux

    VM ini masih berada di storage lokal, sehingga belum bisa digunakan untuk live migration.


    Langkah 1 — Clone VM melalui GUI

    Saya membuka Proxmox Web UI, lalu memilih VM yang ingin di-clone, yaitu VM 100. Setelah itu saya klik tombol Clone.

    Di form yang muncul, saya mengisi beberapa parameter:

    • Node: rafi1
    • VM ID: 105
    • Name: alphine-ceph
    • Target Storage: ceph-data tipe RBD
    • Mode: Full Clone

    Klik VM yang ingin diclone -> Klik More -> Pilih Clone

    Pilih Target Storage

    Pilih Ceph

    Pemilihan storage di sini sangat penting. Jika salah memilih, hasil clone tetap akan berada di storage lama. Saya juga memilih Full Clone agar disk benar-benar disalin ke Ceph, bukan sekadar referensi.


    Langkah 2 — Proses Clone

    Setelah menekan tombol Clone, saya melihat proses berjalan di bagian task Proxmox.

    • Baris pertama menunjukkan bahwa proses cloning dimulai dari disk sumber
    • Baris kedua menandakan disk baru berhasil dibuat
    • Baris ketiga menunjukkan proses transfer data ke Ceph beserta kecepatannya

    Dari sini saya bisa memastikan bahwa data benar-benar disalin, bukan dipindahkan.


    Langkah 3 — Verifikasi

    Meskipun saya menggunakan GUI, saya tetap melakukan verifikasi untuk memastikan semuanya benar. Pilih di hardware VM yang sudah dibuat tadi

    Ini menunjukkan bahwa disk VM sudah berada di Ceph. Ini adalah indikator paling penting bahwa proses clone berhasil sesuai tujuan.


    Langkah 4 — Menjalankan VM Clone

    Setelah memastikan konfigurasi benar, saya menjalankan VM hasil clone.

    Saya kemudian melakukan pengujian sederhana:

    • Ping ke IP VM berhasil
    • SSH ke VM juga berjalan normal

    Dari sini saya bisa menyimpulkan bahwa hasil clone tidak mengalami kerusakan dan siap digunakan.


    Insight dari Pengujian

    Dari pengalaman ini, saya memahami bahwa penggunaan Ceph benar-benar mengubah cara kerja migration.

    Pada storage lokal:

    • Disk harus ikut dipindahkan
    • Proses lebih lama
    • Berpotensi downtime

    Pada Ceph:

    • Disk tetap di tempat
    • Hanya memory yang dipindahkan
    • Hampir tidak ada downtime

    Ini menjelaskan mengapa Ceph sering digunakan di lingkungan production.


    Kendala yang Ditemui

    Selama pengujian, ada beberapa masalah yang sempat muncul:

    • Storage Ceph tidak muncul di GUI
      Ternyata saya belum menambahkan RBD ke Proxmox
    • Clone gagal
      Biasanya karena pool belum benar atau konfigurasi Ceph belum lengkap
    • Migration gagal
      Terjadi jika disk masih berada di storage lokal

    Semua masalah ini pada akhirnya berkaitan dengan satu hal: memastikan storage benar-benar shared.


    Kesimpulan

    Dari pengalaman saya, clone VM ke Ceph melalui GUI adalah metode yang sangat efektif dan aman. Prosesnya cukup sederhana, tetapi dampaknya besar karena memungkinkan penggunaan fitur lanjutan seperti live migration.

    Beberapa poin penting yang saya pelajari:

    • Selalu gunakan clone untuk percobaan awal
    • Pastikan memilih target storage yang benar
    • Gunakan Full Clone agar disk benar-benar berada di Ceph
    • Verifikasi hasil menggunakan CLI
    • Uji migration untuk memastikan semuanya berjalan sesuai harapan

    Penutup

    Langkah ini menjadi fondasi penting dalam memahami arsitektur Proxmox dengan Ceph. Setelah berhasil di tahap ini, saya merasa lebih siap untuk melanjutkan ke tahap berikutnya seperti High Availability dan desain infrastruktur yang lebih kompleks.

    Pengalaman ini juga menunjukkan bahwa memahami konsep di balik sistem jauh lebih penting daripada sekadar menjalankan perintah.