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

Материал из Bas Wiki
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показаны 43 промежуточные версии этого же участника)
Строка 2: Строка 2:




К сожалению, "из коробки" оно не заводится, но не всё так плохо. Так как в сети толковых инструкций я не нашёл, то решил написать свою.<ref>При написании статьи использовались следующие версии программного обеспечения: FreeBSD 11.0 amd64, Bareos 16.2.6, nginx 1.12.1, PHP 5.6.31.</ref>.
К сожалению, в сети толковых инструкций я не нашёл. В официальной документации раздела с установкой на FreeBSD нет, а "из коробки" оно не заводится, хотя и не всё так плохо.<ref>При написании статьи использовались следующие версии программного обеспечения: FreeBSD 11.0 amd64, Bareos 16.2.6, nginx 1.12.1, PHP 5.6.31.</ref>.


== Установка ==
== Установка ==


=== bareos-server ===
При установке Bareos через pkg серверная часть будет работать на PostgreSQL. Меня это не устраивало, т.к. на сервере уже был MySQL. Попытки подсовывать нужные sql-файлы и библиотеки я отбросил, т.к. для этого требовалось много телодвижений для копирования и скачивания из разных мест. Проблема решалась старой доброй системой портов.
При установке Bareos через pkg серверная часть будет работать на PostgreSQL. Меня это не устраивало, т.к. на сервере уже был MySQL. Попытки подсовывать нужные sql-файлы и библиотеки я отбросил, т.к. для этого требовалось много телодвижений для копирования и скачивания из разных мест. Проблема решалась старой доброй системой портов.
<pre>
<pre>
Строка 16: Строка 15:
В данной установке я выбрал все опции, кроме changer'а, т.к. у меня нет ленточных накопителей. Ниже я поменял используемую БД на MySQL.
В данной установке я выбрал все опции, кроме changer'а, т.к. у меня нет ленточных накопителей. Ниже я поменял используемую БД на MySQL.


=== bareos-client ===
Остальные компоненты системы не требуют изменений в процесс установки, поэтому я использую pkg:
Клиентская часть не требует изменений в процесс установки, поэтому я использую pkg:
<pre>
<pre>
# pkg install bareos-client bareos-webgui
# pkg install bareos-client bareos-webui
</pre>
</pre>


=== bareos-webgui ===
== Настройка ==
Тоже самое и с web-интрефейсом:
 
==== База данных ====
<ol>
<li>Создаём базу данных bareos:<pre>mysql> CREATE DATABASE bareos;</pre></li>
<li>Создаём пользователя bareos c паролем bareos и назначаем ему права на базу данных bareos:
<pre>mysql> GRANT ALL ON bareos.* TO bareos@localhost IDENTIFIED BY 'bareos';
mysql> FLUSH PRIVILEGES;</pre>
</li>
<li>Импортируем дамп:<pre>$ mysql -ubareos -pbareos bareos < /usr/local/lib/bareos/scripts/ddl/creates/mysql.sql</pre></li>
</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>
<pre>
# pkg install bareos-webgui
configure add console name=admin password=admin profile=webui-admin
</pre>
</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.