Episode ini memandu instalasi Bacula 15.0.4 di Debian/Ubuntu dan RHEL, pembuatan database catalog PostgreSQL, serta konfigurasi minimal bacula-dir.conf, bacula-sd.conf, dan bacula-fd.conf. Kalian juga memvalidasi konfigurasi dengan bacula-dir -t dan menjalankan tiga daemon untuk pertama kali.

Setelah memahami arsitektur di episode 2, saatnya aksi nyata: memasang Bacula 15.0.4 dan menyalakan tiga daemon. Kunci episode ini adalah kebiasaan yang akan menemani kalian sepanjang karier — selalu validasi konfigurasi sebelum me-restart daemon. Kesalahan satu titik koma membuat daemon gagal start; validasi itu murah, downtime backup tidak.
sudo apt update
sudo apt install bacula bacula-director-pgsql bacula-storage-pgsql bacula-common-pgsql bacula-fd
bacula-dir --versionPaket bacula adalah meta-package; varian *-pgsql menandakan integrasi PostgreSQL (gunakan *-mysql untuk MySQL).
Gunakan DNF: sudo dnf install bacula-director-pgsql bacula-storage-pgsql bacula-fd bacula-console. Sesuaikan nama paket dengan repositori kalian.
Catalog menyimpan metadata. Untuk production kita memakai PostgreSQL — buat user, database, lalu isi skemanya. Simpan password database ini, karena resource Catalog {} di bacula-dir.conf membutuhkannya:
sudo -u postgres psql -c "CREATE USER bacula WITH PASSWORD 'password-katalog';"
sudo -u postgres psql -c "CREATE DATABASE bacula OWNER bacula;"
sudo -u postgres psql -f /usr/share/bacula-director/create_postgresql_database -d baculaFile Daemon mendefinisikan dirinya dan siapa (Director) yang boleh terhubung:
Director {
Name = bacula-dir
Password = "rahasia-fd"
}
FileDaemon {
Name = client-fd
FDAddress = 0.0.0.0
FDPort = 9103
}Storage Daemon mendefinisikan dirinya, Director yang boleh memakainya, dan satu Device:
Storage {
Name = bacula-sd
SDAddress = 0.0.0.0
SDPort = 9102
}
Director {
Name = bacula-dir
Password = "rahasia-sd"
}
Device {
Name = FileStorage
MediaType = File
Archive Device = /var/lib/bacula/storage
LabelMedia = yes
Random Access = yes
AutomaticMount = yes
RemovableMedia = no
AlwaysOpen = no
}MediaType = File berarti media berupa direktori di disk; Bacula membuat file volume di /var/lib/bacula/storage.
File paling penting — memuat resource Director, Catalog, Storage, Pool, Schedule, FileSet, Client, dan Job:
Director {
Name = bacula-dir
Password = "rahasia-dir"
DirAddress = 0.0.0.0
DirPort = 9101
}
Catalog {
Name = MyCatalog
dbname = "bacula"
user = "bacula"
password = "password-katalog"
}
Storage {
Name = FileStorage
Address = 127.0.0.1
SDPort = 9102
Password = "rahasia-sd"
Device = "FileStorage"
MediaType = File
}
Pool {
Name = FilePool
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 30 days
}
Schedule {
Name = WeeklyCycle
Run = Full 1st sun at 22:00
Run = Incremental mon-sat at 22:00
}
FileSet {
Name = "Set Dasar"
Include {
Options { signature = MD5 }
File = /var/www
}
}
Client {
Name = client-fd
Address = 127.0.0.1
FDPort = 9103
Password = "rahasia-fd"
}
Job {
Name = "Backup Web"
Type = Backup
Client = client-fd
FileSet = "Set Dasar"
Schedule = WeeklyCycle
Storage = FileStorage
Pool = FilePool
}Warning
Password di ketiga file harus cocok silang: rahasia-sd di bacula-dir.conf sama dengan password Director di bacula-sd.conf, dan rahasia-fd sama dengan password Director di bacula-fd.conf. Satu saja berbeda, semua job gagal dengan Authorization problem.
sudo bacula-dir -t
sudo bacula-sd -t
sudo bacula-fd -t
sudo systemctl enable --now bacula-director bacula-storage bacula-fd
systemctl status bacula-director bacula-storage bacula-fdKetiganya harus active (running). Jika gagal, baca journalctl -u bacula-director --no-pager | tail -20. Jangan pernah me-restart daemon setelah mengubah konfigurasi tanpa bacula-dir -t dulu.
Inti yang harus dibawa pulang:
bacula-* sesuai varian database (pgsql/mysql) dan distribusi.bacula-dir -t, bacula-sd -t, bacula-fd -t sebelum start.Di episode 4 selanjutnya kita akan menggunakan bconsole untuk kontrol job — perintah interaktif status, list, run, restore, dan cancel, autentikasi bconsole ke Director, serta menjalankan job backup pertama dan melihat hasilnya lewat list jobs. Inilah konsol yang akan menjadi alat harian kalian!