Установка Bareos на FreeBSD

Материал из Bas Wiki
Перейти к навигации Перейти к поиску

Bareos[1] — кроссплатформенное клиент-серверное программное обеспечение, позволяющее управлять резервным копированием, восстановлением, и проверкой данных по сети для компьютеров и операционных систем различных типов. В 2010 году активные контрибьюторы в проекте Bacula, не согласные с политикой развития проекта, форкнули OpenSource-часть в новый проект Bareos. В частности, претензии были связаны с тем, что создатели Bacula направили свои усилия на закрытие исходного кода, внося изменения только в "закрытую" часть проекта, перестали принимать в проект сторонние патчи, и даже начали сокращать функционал "свободной" версии пакета.


К сожалению, в сети толковых инструкций я не нашёл. В официальной документации раздела с установкой на FreeBSD нет, а "из коробки" оно не заводится, хотя и не всё так плохо.[2].

Установка

При установке Bareos через pkg серверная часть будет работать на PostgreSQL. Меня это не устраивало, т.к. на сервере уже был MySQL. Попытки подсовывать нужные sql-файлы и библиотеки я отбросил, т.к. для этого требовалось много телодвижений для копирования и скачивания из разных мест. Проблема решалась старой доброй системой портов.

# cd /usr/ports/sysutils/bareos-server
# make config install

В данной установке я выбрал все опции, кроме changer'а, т.к. у меня нет ленточных накопителей. Ниже я поменял используемую БД на MySQL.

Остальные компоненты системы не требуют изменений в процесс установки, поэтому я использую pkg:

# pkg install bareos-client bareos-webui

Настройка

База данных

  1. Создаём базу данных bareos:
    mysql> CREATE DATABASE bareos;
  2. Создаём пользователя bareos c паролем bareos и назначаем ему права на базу данных bareos:
    mysql> GRANT ALL ON bareos.* TO bareos@localhost IDENTIFIED BY 'bareos';
    mysql> FLUSH PRIVILEGES;
  3. Импортируем дамп:
    $ mysql -ubareos -pbareos bareos < /usr/local/lib/bareos/scripts/ddl/creates/mysql.sql

Конфиги

Добавляем в /etc/rc.conf:

bareos_dir_enable="YES"
bareos_fd_enable="YES"
bareos_sd_enable="YES"

В одной из новых версий Bareos изменили логику работы конфигов. Теперь это не один большой файл, а куча мелких, разделённых на папки. Проблема в том, что по умолчанию Bareos пытается искать именно старый добрый файл и не стартует. Для исправления этой проблемы мы добавляем в /etc/rc.conf следующие директивы:

bareos_dir_config="/usr/local/etc/bareos"
bareos_fd_config="/usr/local/etc/bareos"
bareos_sd_config="/usr/local/etc/bareos"

Для использования директором базы MySQL необходимо отредактировать файл /usr/local/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf. Снимаем комментарий с драйвера mysql, комментируем строку-заглушку и указываем пароль к базе данных:

Catalog {
  Name = MyCatalog
  # Uncomment the following lines if you want the dbi driver
  # dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =..
  dbdriver = "mysql"
  #dbdriver = "XXX_REPLACE_WITH_DATABASE_DRIVER_XXX"
  dbname = "bareos"
  dbuser = "bareos"
  dbpassword = "bareos"
}

Теперь можно стартовать и проверить, что всё запустилось:

# service bareos-dir start
# service bareos-fd start
# service bareos-sd start
# pgrep -l bareos

Web-интерфейс

В папке /usr/local/etc/bareos-webui есть пример конфигов как для Apache, так и для nginx, поэтому проблем быть не должно. У меня это выглядит так:

server {
        listen          9100;
        server_name     bareos.gwtools.ru;

        root            /usr/local/www/bareos-webui/public;

        location / {
                index index.php;
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {
                        return 404;
                }
                fastcgi_index   index.php;
                fastcgi_param   PATH_INFO       $fastcgi_path_info;
                fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_read_timeout 180;
                fastcgi_pass    unix:/var/run/php-fpm.sock;
                include         fastcgi_params;
        }
}

Делаем service nginx reload и web-интерфейс уже доступен, но не всё так просто :) Логин admin с паролем admin не заработают, т.к. их тупо нет. Пользователя можно добавить, но нет профиля под этого пользователя. Проблема с профилем решается копирование файла /usr/local/etc/bareos-webui/bareos-dir.d/profile/webui-admin.conf в папку /usr/local/etc/bareos/bareos-dir.d/profile.

Нельзя просто взять и запустить bconsole. Утилита не найдёт конфиг, который находится по пути /usr/local/etc/bareos/bconsole.d/bconsole.conf. Поможем ей:

# bconsole -c /usr/local/etc/bareos/bconsole.d/bconsole.conf 

Примечания

  1. Bareos - Open Source Data Protection (официальный сайт)
  2. При написании статьи использовались следующие версии программного обеспечения: FreeBSD 11.0 amd64, Bareos 16.2.6, nginx 1.12.1, PHP 5.6.31.