Установка Bareos на FreeBSD
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
Настройка
База данных
- Создаём базу данных bareos:
mysql> CREATE DATABASE bareos;
- Создаём пользователя bareos c паролем bareos и назначаем ему права на базу данных bareos:
mysql> GRANT ALL ON bareos.* TO bareos@localhost IDENTIFIED BY 'bareos'; mysql> FLUSH PRIVILEGES;
- Импортируем дамп:
$ 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
Примечания
- ↑ Bareos - Open Source Data Protection (официальный сайт)
- ↑ При написании статьи использовались следующие версии программного обеспечения: FreeBSD 11.0 amd64, Bareos 16.2.6, nginx 1.12.1, PHP 5.6.31.