Установка Bareos на FreeBSD: различия между версиями

Материал из Bas Wiki
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показаны 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:<pre>mysql> CREATE USER bareos@localhost IDENTIFIED BY 'bareos';</pre></li>
<li>Создаём пользователя bareos c паролем bareos и назначаем ему права на базу данных bareos:
<li>Назначаем права пользователю 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 -u bareos -p bareos bareos < /usr/local/lib/bareos/scripts/ddl/creates/mysql.sql</pre></li>
</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

Настройка

База данных

  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. Важно! Необходимо сделать 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-интерфейс.

Примечания

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