Найти в Дзене
Записки сисадмина

Резервное копирование. Bacula. Настройка сервера с нуля.

Оглавление

Немного вводной воды

Если ты - системный администратор, тебе знакомо, насколько важны резервные копии всего и вся. Если ты не боишься трудностей, тебе нужно open sourse решение и консоль тебя уже давно не пугает, твой выбор - Bacula

Bacula — это мощное решение для резервного копирования, восстановления и проверки данных, разработанное с учетом работы в сетевых средах. Bacula максимально гибкая в настройке и поддерживает практически все актуальные операционные системы

-2

Окружение Bacula состоит из 4 составляющих:

BD — Bacula Director
SD — Bacula Storage daemons
FD — Bacula File daemon
BAT – bacula admin tools

Начинаем подготовку нашего сервера

Обновляем и устанавливаем необходимые пакеты:

yum update –y
sudo yum install nano bind-utils net-tools ntpdate lsof wget epel-release

Меняем имя сервера

sudo nano /etc/hostname

Синхронизируем c сервером времени

ntpdate ntp-02.example.com

Создаем новый файл webmin.repo в директории /etc/yum.repos.d

nano /etc/yum.repos.d/webmin.repo

В открывшееся пустом файле добавляем:

[Webmin]

name=Webmin Distribution Neutral

#baseurl=http://download.webmin.com/download/yum

mirrorlist=http://download.webmin.com/download/yum/mirrorlist

gpgkey=http://www.webmin.com/jcameron-key.asc

enabled=1

Добавляем ключ и устанавливаем webmin, также необходимо создать корректные DNS записи.

rpm —import http://www.webmin.com/jcameron-key.asc
yum check-update
yum -y install webmin perl-Digest-MD5
systemctl start webmin
systemctl enable webmin

Webmin будет доступен по адресу https://ipipipip:10000

Устанавливаем репозиторий бакулы

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
rpm -ivh epel-release-7-6.noarch.rpm
nano /etc/yum.repos.d/epel-bacula7.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

Проверяем доступные бакула пакеты

yum list bacula*

Устанавливаем бакулу и сопровождение

yum -y install mariadb mariadb-server bacula-director-mysql bacula-console bacula-client bacula-storage-mysql mysql-server mysql-devel
systemctl start mariadb
systemctl enable mariadb

Устанавливаем mysql, обязательно создав пароль для рута, который будет использоваться для входа в webmin
mysql_secure_installation

В моем случае сервер висел на айпи 192.168.1.202 с именем bareos.fb. Во избежание багов, стоит добавить эту запись в /etc/hosts сервера.

Заходим по адресу https://сервер_бакулы:10000

-3

Ищем Mysql

-4

Создаем базу

-5
  • Задаем ей имя и кодировку
-6
  • В User Permissions создаем пользователя базы данных и выдаем ему все права
-7
  • В Database Permissions выбираем “Create new database permissions”, выдаем все права, кроме Grant Privileges
-8
  • Создаем таблицы:

1. На сервере выполняем команду:
/usr/libexec/bacula/make_mysql_tables -u bacula-dbuser -p

2. Останавливаем все сервисы
systemctl stop bacula-dir
systemctl stop bacula-fd
systemctl stop bacula-sd

3. Переключаем Bacula использовать MySQL
su -c ‘alternatives —config libbaccats.so’

This should show you the following:
There are 3 programs which provide ‘libbaccats.so’.
Selection Command
———————————————–
1 /usr/lib64/libbaccats-mysql.so
2 /usr/lib64/libbaccats-sqlite3.so
*+ 3 /usr/lib64/libbaccats-postgresql.so

4. Выбираем первый пункт

Настраиваем bacula director

  • Открываем файл /etc/bacula/bacula-dir.conf и приводим его к следующему виду.

Где Name - Имя, которое сервер будет транслировать всем клиентам, а Password - пароль для него.

-9
  • Спускаемся ниже, в пункте dbuser и dbpassword прописываем то, что указывали при создании пользователя базы данных в Webmin
-10
  • Правим файл /etc/bacula/bconsole.conf, в пункте Password указываем пароль директора.
  • После перезапуска сервиса bacula-dir, заходим в Webmin -> System -> Bacula Backup System и видим следующее:
-11

Настраиваем bacula storage

  • В файле /etc/bacula/bacula-dir.conf меняем только пароли
-12
-13
  • Изменяем конфиг /etc/bacula/bacula-sd.conf
-14
  • Изменяем конфиг /etc/bacula/bacula-fd.conf
-15

На этом моменте настройка сервера окончена.

Проверяем то, что мы написали:

bacula-dir -tc /etc/bacula/bacula-dir.conf
bacula-sd -tc /etc/bacula/bacula-sd.conf
bacula-fd -tc /etc/bacula/bacula-fd.conf

Перезапускаем все компоненты Bacula и посмотрим логи и в webmin

systemctl restart bacula-dir
systemctl restart bacula-sd
systemctl restart bacula-fd

Проверим статус нашего единственного клиента (file daemon на самом сервере)

bconsole
*status client

Вывод должен быть примерно таким:

Connecting to Client bacula-fd at localhost:9102
bacula-fd Version: 7.0.5 (28 July 2014) x86_64-redhat-linux-gnu redhat Enterprise release
Daemon started 25-се-2018 12:44. Jobs: run=0 running=0.
Heap: heap=139,264 smbytes=147,190 max_bytes=147,337 bufs=62 max_bufs=63
Sizes: boffset_t=8 size_t=8 debug=0 trace=0 mode=0,0 bwlimit=0kB/s
Running Jobs:
Director connected at: 25-се-2018 16:26
No Jobs running. ====
Terminated Jobs:

Настройка клиента.

  • Устанавливаем только клиента бакулы:
yum install bacula-client
  • Стартуем и добавляем его в автозагрузку
systemctl start bacula-fd
systemctl enable bacula-fd
  • Открываем 9102 порт на фаерволле клиента, чтобы сервер мог до него достучаться.
  • Правим конфиг /etc/bacula/bacula-fd.conf, указываем имя и пароль те, которые прописывали в конфиге bacula-dir на сервере:
-16
  • Настройка окончена, уходим с клиента и забываем про него