Установка Bareos на FreeBSD: различия между версиями
Bas (обсуждение | вклад) |
Bas (обсуждение | вклад) Нет описания правки |
||
(не показаны 24 промежуточные версии этого же участника) | |||
Строка 25: | Строка 25: | ||
<ol> | <ol> | ||
<li>Создаём базу данных bareos:<pre>mysql> CREATE DATABASE bareos;</pre></li> | <li>Создаём базу данных bareos:<pre>mysql> CREATE DATABASE bareos;</pre></li> | ||
<li>Создаём пользователя bareos c паролем bareos | <li>Создаём пользователя bareos c паролем bareos и назначаем ему права на базу данных bareos: | ||
<pre>mysql> GRANT ALL ON bareos.* TO bareos@localhost IDENTIFIED BY 'bareos'; | <pre>mysql> GRANT ALL ON bareos.* TO bareos@localhost IDENTIFIED BY 'bareos'; | ||
mysql> FLUSH PRIVILEGES;</pre></li> | mysql> FLUSH PRIVILEGES;</pre> | ||
<li>Импортируем дамп:<pre>$ mysql - | </li> | ||
<li>Импортируем дамп:<pre>$ mysql -ubareos -pbareos bareos < /usr/local/lib/bareos/scripts/ddl/creates/mysql.sql</pre></li> | |||
</ol> | </ol> | ||
==== Конфиги ==== | |||
Добавляем в <code>/etc/rc.conf</code>: | |||
<pre> | |||
bareos_dir_enable="YES" | |||
bareos_fd_enable="YES" | |||
bareos_sd_enable="YES" | |||
</pre> | |||
В одной из новых версий Bareos изменили логику работы конфигов. Теперь это не один большой файл, а куча мелких, разделённых на папки. Проблема в том, что по умолчанию Bareos пытается искать именно старый добрый файл и не стартует. Для исправления этой проблемы мы добавляем в <code>/etc/rc.conf</code> следующие директивы: | |||
<pre> | |||
bareos_dir_config="/usr/local/etc/bareos" | |||
bareos_fd_config="/usr/local/etc/bareos" | |||
bareos_sd_config="/usr/local/etc/bareos" | |||
</pre> | |||
Для использования директором базы MySQL необходимо отредактировать файл <code>/usr/local/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf</code>. Снимаем комментарий с драйвера mysql, комментируем строку-заглушку и указываем пароль к базе данных: | |||
<pre> | |||
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" | |||
} | |||
</pre> | |||
Теперь можно стартовать и проверить, что всё запустилось: | |||
<pre> | |||
# service bareos-dir start | |||
# service bareos-fd start | |||
# service bareos-sd start | |||
# pgrep -l bareos | |||
</pre> | |||
==== Web-интерфейс ==== | |||
В папке <code>/usr/local/etc/bareos-webui</code> есть пример конфигов как для Apache, так и для nginx, поэтому проблем быть не должно. У меня это выглядит так: | |||
<pre> | |||
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; | |||
} | |||
} | |||
</pre> | |||
Делаем <code>service nginx reload</code> и web-интерфейс уже доступен, но не всё так просто :) Логин admin с паролем admin не заработают, т.к. их тупо нет. Пользователя можно добавить, но нет профиля под этого пользователя. | |||
Проблема с профилем решается копирование файла <code>/usr/local/etc/bareos-webui/bareos-dir.d/profile/webui-admin.conf</code> в папку <code>/usr/local/etc/bareos/bareos-dir.d/profile</code>. '''Важно!''' Необходимо сделать restart, чтобы Bareos перечитал конфиги и обнаружил новый профиль: | |||
<pre> | |||
# service bareos-dir restart | |||
</pre> | |||
Можно таким же способом скопировать и пользователя admin в соответствующую папку, но для проверки работоспособности мы воспользуемся bconsole. Только вот нельзя просто взять и запустить bconsole. | |||
Во-первых, после установки пароли по умолчанию не совпадают, хотя в документации и пишут, что должны. Чтобы было проще понимать схему соответствия смотрим на картинку: | |||
[[Файл:Bareos-Conf-Diagram.png|центр]] | |||
Согласно картинке, мы копируем пароль из файла <code>/usr/local/etc/bareos/bareos-dir.d/director/bareos-dir.conf</code> в файл <code>/usr/local/etc/bareos/bconsole.d/bconsole.conf</code>. | |||
Во-вторых, для того, чтобы утилита могла вносить изменения, она должна иметь право записи в папки. Опять же после установки <code>/usr/local/etc/bareos</code> доступна root:wheel. Делаем необходимый chown или chmod и эта проблема тоже решена. | |||
В-третьих, утилита не найдёт конфиг, который находится по пути <code>/usr/local/etc/bareos/bconsole.d/bconsole.conf</code>. Поможем ей: | |||
<pre> | |||
# bconsole -c /usr/local/etc/bareos/bconsole.d/bconsole.conf | |||
</pre> | |||
Ура! Утилита запустилась. Теперь для добавления пользователя через консоль можно скопировать команду из официальной документации: | |||
<pre> | |||
configure add console name=admin password=admin profile=webui-admin | |||
</pre> | |||
Теперь мы можем заходить в web-интерфейс. | |||
== Примечания == | == Примечания == |
Текущая версия от 22:41, 25 февраля 2018
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
. Важно! Необходимо сделать restart, чтобы Bareos перечитал конфиги и обнаружил новый профиль:
# service bareos-dir restart
Можно таким же способом скопировать и пользователя admin в соответствующую папку, но для проверки работоспособности мы воспользуемся bconsole. Только вот нельзя просто взять и запустить bconsole.
Во-первых, после установки пароли по умолчанию не совпадают, хотя в документации и пишут, что должны. Чтобы было проще понимать схему соответствия смотрим на картинку:

Согласно картинке, мы копируем пароль из файла /usr/local/etc/bareos/bareos-dir.d/director/bareos-dir.conf
в файл /usr/local/etc/bareos/bconsole.d/bconsole.conf
.
Во-вторых, для того, чтобы утилита могла вносить изменения, она должна иметь право записи в папки. Опять же после установки /usr/local/etc/bareos
доступна root:wheel. Делаем необходимый chown или chmod и эта проблема тоже решена.
В-третьих, утилита не найдёт конфиг, который находится по пути /usr/local/etc/bareos/bconsole.d/bconsole.conf
. Поможем ей:
# bconsole -c /usr/local/etc/bareos/bconsole.d/bconsole.conf
Ура! Утилита запустилась. Теперь для добавления пользователя через консоль можно скопировать команду из официальной документации:
configure add console name=admin password=admin profile=webui-admin
Теперь мы можем заходить в web-интерфейс.
Примечания
- ↑ Bareos - Open Source Data Protection (официальный сайт)
- ↑ При написании статьи использовались следующие версии программного обеспечения: FreeBSD 11.0 amd64, Bareos 16.2.6, nginx 1.12.1, PHP 5.6.31.