step by step bacula 7 configuration in centos 7
Bacula : Bacula is a open source backup utility that allows you to create and restore a backup with network support.
Component :
DIRECTOR – Bacula Director : responsible for backup and restore operation
SD – Storage Daemon : responsible for read and write on storage device
Catalog : service that maintain database of file that are backup.
Console : that is a command line interface
FD – File Daemon : Run the file daemon component by the client that provide bacula
server access for backup
IP and HOST
Directore - Hostname – lokesh-bacula-server.com | IP - 172.17.20.100
Storage Daemon (SD) - Hostname – lokesh-bacula-server.com | IP - 172.17.20.100
File Daemon (FD ) / Client
Hostname – ms-client.com | IP – 172.17.20.150
Hostname – hs-client.com | IP – 172.17.20.140
Package :
- Server Side
1 MySQL or PostgreSQL
2 Bacula-director
3 Bacula-storage
4 Bacula-console
B. Client Side
5 Bacula-client
Step 1:
Installation and configuration of MySQL/PostgreSQL ….Click Here
Step 2:
Install Bacula Package by Epel-Bacula7 Repo :
Install epel-bacula7 package OR create file in /etc/yum.repo.d/
Vi /etc/yum.repo.d/bacula.repo
[epel-bacula7]
name=Bacula backports from rawhide
baseurl=http://repos.fedorapeople.org/repos/slaanesh/bacula7/epel-$releasever/$basearch/
enabled=1
skip_if_unavailable=1
gpgkey=http://repos.fedorapeople.org/repos/slaanesh/bacula7/RPM-GPG-KEY-slaanesh
gpgcheck=1
[epel-bacula7-source]
name=Bacula backports from rawhide - Source
baseurl=http://repos.fedorapeople.org/repos/slaanesh/bacula7/epel-$releasever/SRPMS
enabled=0
skip_if_unavailable=1
gpgkey=http://repos.fedorapeople.org/repos/slaanesh/bacula7/RPM-GPG-KEY-slaanesh
gpgcheck=1
Step 3:
Install Bacula packages
# yum install bacula-*
Step 4:
bacula Console configuration
# vi /etc/bacula/bconsole.conf
Director {
Name = lokesh-bacula-server.com-dir # set director name
DIRport = 9101 # director port
address = 172.17.20.100 # director IP address
Password = "server32" # Director Password
}
Step 5:
Bacula Storage Configuration
Storage {
Name = lokesh-bacula-storage.com-sd # Set Storage Name
SDPort = 9103 # port
WorkingDirectory = "/var/spool/bacula"
Pid Directory = "/var/run"
Maximum Concurrent Jobs = 20
SDAddress = 172.17.20.100 # Storage Server IP
}
Director {
Name = lokesh-bacula-server.com-dir # Director Name : you configure previews in bconsole.conf
Password = "server32" # password for Storage daemon
}
Autochanger {
Name = NAS-Server # choose name of autochange
Device = NAS # Device name
Changer Command = ""
Changer Device = /dev/null
}
Device {
Name = NAS # Device name
Media Type = File
Archive Device = /backup/nas # Backup Path server
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
Maximum Concurrent Jobs = 5
}
Messages {
Name = Standard
director = centos-bacula-server-dir = all # set Director
}
Check configuration file
# bacula-sd -tc /etc/bacula/bacula-sd.conf
########### Director Section ##############
Director {
Name = lokesh-bacula-server.com-dir # should be Same on bconsole.conf
DIRport = 9101 # should be Same on bconsole.conf
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/spool/bacula"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 20
Password = "server32" # should be Same on bconsole.conf
Messages = Daemon
DirAddress = 172.17.20.100 # should be Same on bconsole.conf
}
##### Sunday Full backup, Wed Differential and other day Inctemental ###
Schedule {
Name = "SundayCycle"
Run = Level=Full sun at 1:00
Run = Level=Differential wed at 2:00
Run = Level=Incremental mon tue thu fri sat at 1:00
Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 23:05
Run = Differential 2nd-5th sun at 23:05
Run = Incremental mon-sat at 23:05
}
# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
Name = "WeeklyCycleAfterBackup"
Run = Full sun-sat at 23:10
}
######## Storage Section ###################
Storage {
Name = Centos-Bacula-NAS # Choose Name according to you
Address = 172.17.20.100 # Match on bacula-sd.conf
SDPort = 9103 # Match on bacula-sd.conf
Password = "server2" # Match on bacula-sd.conf
Device = NAS-Server # Autochange name
Media Type = File
Maximum Concurrent Jobs = 10 # run up to 10 jobs a the same time
}
########### Catalog Section #################
Set MySQL Database , User and Password for Catalog
Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "bacula"; dbpassword = " "
}
Step 6:
Go to the end Add Line at the end of file for Remote Client Configuration
@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} \;"
Save And Exit
Step 7:
Client Configuration :
Create A Conf.d Directory
# mkdir /etc/bacula/conf.d
Create Remote Client File :
# vi /etc/bacula/conf.d/md-client.com
Client 1:
# Md Client Information
Client {:
Name = md-client.com-fd #Client Name : will be match on bacula-fd.conf on client side
Address = 172.17.20.140 #Client IP
FDPort = 9102 #Port
Catalog = MyCatalog
Password = "server32" # Password : will be match on bacula-fd.conf on client side
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}
##Job For Backup ##
JobDefs {
Name = "md-client-job"
Type = Backup
Level = Differential
Client = md-client.com-fd # Client name :will be match on bacula-fd.conf on client side
FileSet = "md-client-fileset"
Schedule = "SundayCycle" # schedule : see in bacula-dir.conf
Storage = Centos-Bacula-NAS
Messages = Standard
Pool = md-client-pool
Priority = 10
Write Bootstrap = "/var/spool/bacula/%c.bsr"
}
Job {
Name = "md-client-Backup"
Client = md-client.com-fd # Client name : will be match on bacula-fd.conf on client side
JobDefs = "md-client-job"
}
##Job For Restore ##
Job {
Name = "md-client-Restore"
Type = Restore
Client= md-client.com-fd # Client name : will be match on bacula-fd.conf on client side
FileSet= "md-client-fileset"
Storage = Centos-Bacula-NAS
Pool = md-client-pool
Messages = Standard
Where = /restore # Restore Directory
}
## File set : Select Directory for Backup ##
FileSet {
Name = "md-client-fileset"
Include {
Options {
signature = MD5
compression = GZIP
}
File = /var/www/html/
File = /etc
}
## Exclude ##
Exclude {
File = /var/spool/bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
File = /backup
}
}
## Pool Configuration ##
Pool {
Name = md-client-pool # pool name
Pool Type = Backup
Recycle = yes
Label Format = md-client-backup-file- # set volume label format
AutoPrune = yes
Volume Retention = 180 days
Maximum Volume Bytes = 50G
Maximum Volumes = 100
}
save and exit file
Client 2:
# vi /etc/bacula/conf.d/hs-client.conf
# HS Client Information #
Client {
Name = hs-client.com-fd #Client Name : will be match on bacula-fd.conf on client side
Address = 172.17.20.140 #Client IP or Best option is fully qualified domain name
FDPort = 9102 #Port
Catalog = MyCatalog
Password = "server32" # Password : will be match on bacula-fd.conf on client side
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}
##Job For Backup ##
JobDefs {
Name = "hs-client-job"
Type = Backup
Level = Differential
Client = hs-client.com-fd # Client name :will be match on bacula-fd.conf on client side
FileSet = "hs-client-fileset"
Schedule = "SundayCycle" # schedule : see in bacula-dir.conf
Storage = Centos-Bacula-NAS
Messages = Standard
Pool = hs-client-pool
Priority = 10
Write Bootstrap = "/var/spool/bacula/%c.bsr"
}
Job {
Name = "hs-client-Backup"
Client = hs-client.com-fd # Client name : will be match on bacula-fd.conf on client side
JobDefs = "hs-client-job"
}
## Job For Restore ##
Job {
Name = "hs-client-Restore"
Type = Restore
Client= hs-client.com-fd # Client name : will be match on bacula-fd.conf on client side
FileSet= "hs-client-fileset"
Storage = Centos-Bacula-NAS
Pool = hs-client-pool
Messages = Standard
Where = /restore # Restore Directory
}
# File set : Select Directory for Backup #
FileSet {
Name = "hs-client-fileset"
Include {
Options {
signature = MD5
compression = GZIP
}
File = /var/www/html/
File = /etc
}
Exclude {
File = /var/spool/bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
File = /backup
}
}
## Pool Configuration ##
Pool {
Name = hs-client-pool # pool name
Pool Type = Backup
Recycle = yes
Label Format = hs-client-backup-file- # set volume label format
AutoPrune = yes
Volume Retention = 180 days
Maximum Volume Bytes = 50G
Maximum Volumes = 100
}
Bacula 7 Configuration
Bacula Client Configuration..
Leave a Comment