1. 安裝配置bacula-gui(管理頁面)
Bacula-gui分為兩個部分:
Baculum-api可通過OAuth2(開放認證模式)或HTTP認證(用戶名和密碼)認證提供統一接口服務;
Baculum-web通過baculum-api訪問bacula,並可對bacula進行操作。
注:
建議使用二進制包安裝(YUM)LAMP環境,如果使用源碼包安裝,在baculum-web上添加client時會有如下報錯,導致client不能正常添加:
1.1. 安裝bacula-gui依賴包
Bacula-gui對php要求如下:
PHP 5.3.4 or higher with following modules installed:
– cURL PHP module.
– MB String PHP module.
– JSON PHP module.
• PHP 5.3.4 or higher with following modules installed:
– PDO PHP support - depending on your catalog database: PDO PostgreSQL or PDO MySQL.
Note, in case using MySQL database there is required to use MySQL native driver. It is php-mysqlnd for PHP, not php-mysql.
– BCMath PHP module.
– JSON PHP module
通過額外YUM源進行安裝,以Centos為例:
添加額外YUM源
# centos7
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# centos6
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
CentOS 5.x
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
安裝php(可以選擇以下任意一個版本)
# 安裝php7.0
yum -y install httpd php70-php php70-php-gd php70-php-gettext php70-php-mysql php70-php-pdo php70-php-bcmath php70-php-mbstring php70-php-xml php70-php-common php70-php-cli php70-php-json php70-php-mysqlnd php70-runtime php70-php-process
# 安裝php7.2
yum -y install httpd php72-php php72-php-gd php72-php-gettext php72-php-mysql php72-php-pdo php72-php-bcmath php72-php-mbstring php72-php-xml php72-php-common php72-php-cli php72-php-json php72-php-mysqlnd php72-runtime php72-php-process
# 安裝php7.3
yum -y install httpd php73-php php73-php-gd php73-php-gettext php73-php-mysql php73-php-pdo php73-php-bcmath php73-php-mbstring php73-php-xml php73-php-common php73-php-cli php73-php-json php73-php-mysqlnd php73-runtime php73-php-process
# 驗證php
vi /var/www/html/phpinfo.php
<?php
echo phpinfo();
?>
瀏覽器訪問
http://serverip/phpinfo.php
1.2. 創建並修改配置文件
按照bacula官方文檔安裝:
https://blog.bacula.org/documentation/documentation/
tar zxf bacula-gui-9.2.2.tar.gz
cd bacula-gui-9.2.2/baculum
# build文件。 DESTDIR為build目標位置
make build DESTDIR=/usr/local/baculum/
# 拷貝baculum apache配置文件
cp /usr/local/baculum/etc/httpd/conf.d/baculum-web.conf /etc/httpd/conf.d/
cp /usr/local/baculum/etc/httpd/conf.d/baculum-api.conf /etc/httpd/conf.d/
# 源碼包安裝的LAMP
# cp /usr/local/baculum/etc/httpd/conf.d/baculum-web.conf /usr/local/apache/conf/extra/
# cp /usr/local/baculum/etc/httpd/conf.d/baculum-api.conf /usr/local/apache/conf/extra/
# 修改baculum apache配置文件
vi /etc/httpd/conf.d/baculum-web.conf
vi /etc/httpd/conf.d/baculum-api.conf
將“/usr/share/baculum/”
替換成“/usr/local/baculum/usr/share/baculum”
# 或使用sed命令替換
#sed -i 's#/usr/share/baculum#/usr/local/baculum/usr/share/baculum#g' /etc/httpd/conf.d/baculum-web.conf
#sed -i 's#/usr/share/baculum#/usr/local/baculum/usr/share/baculum#g' /etc/httpd/conf.d/baculum-api.conf
# 鏈接baculum language_file(針對bacula-gui-7.x,bacula-gui-9.x無需操作)
ln -s /usr/local/baculum/usr/share/locale/en/LC_MESSAGES/baculum.mo /usr/share/locale/en/LC_MESSAGES/baculum.mo
ln -s /usr/local/baculum/usr/share/locale/pl/LC_MESSAGES/baculum.mo /usr/share/locale/pl/LC_MESSAGES/baculum.mo
ln -s /usr/local/baculum/usr/share/locale/pt/LC_MESSAGES/baculum.mo /usr/share/locale/pt/LC_MESSAGES/baculum.mo
# 創建baculum認證文件並允許apache用戶讀寫
chown -R apache:apache /usr/local/baculum/usr/share/baculum/htdocs/
# baculum-web和baculum-api指定的認證文件位於/usr/local/baculum/usr/,需要手動創建
#chown -R apache:apache /usr/local/baculum/etc/baculum/Config-api-apache/baculum.users
#chown -R apache:apache /usr/local/baculum/etc/baculum/Config-web-apache/baculum.users
cp /usr/local/baculum/etc/baculum/Config-api-apache/baculum.users /usr/local/baculum/usr/share/baculum/htdocs/protected/API/Config/baculum.users
cp /usr/local/baculum/etc/baculum/Config-web-apache/baculum.users /usr/local/baculum/usr/share/baculum/htdocs/protected/Web/Config/baculum.users
chown -R apache:apache /usr/local/baculum/usr/share/baculum/htdocs/protected/API/Config/baculum.users
chown -R apache:apache /usr/local/baculum/usr/share/baculum/htdocs/protected/Web/Config/baculum.users
# 修改bacula權限
chmod 755 /usr/local/bacula/etc/
chmod 755 /usr/local/bacula/etc/bconsole.conf
chown -R apache.apache /usr/local/baculum/
chown -R apache:apache /usr/local/bacula/bin/
chown -R apache:apache /usr/local/bacula/etc/
chown -R apache:apache /usr/local/bacula/working/
1.3. 修改bacula-gui登錄用戶和密碼
# baculum-web和baculum-api默認用戶名和密碼是admin/admin,如需手動修改可參考如下操作
# 創建baculum-web用戶(用於baculum-web初始化登錄)
htpasswd -c /usr/local/baculum/usr/share/baculum/htdocs/protected/Web/Config/baculum.users admin
# 創建baculum-api用戶(用於baculum-api初始化登錄)
htpasswd -c /usr/local/baculum/usr/share/baculum/htdocs/protected/API/Config/baculum.users admin
#chown apache:apache /usr/local/baculum/usr/share/baculum/htdocs/protected/Web/Config/baculum.users
#chown apache:apache /usr/local/baculum/usr/share/baculum/htdocs/protected/API/Config/baculum.users
1.4. 訪問並配置bacula-gui
Bacula-gui需要先配置api服務,再配置web服務
# apache2.4以下版本會存在以下錯誤:
configuration error: couldn't perform authentication. AuthType not set!: /index.php/api/page/
該錯誤是由於apache的版本為2.2,不支持Require all granted,注釋該配置即可。
vi /etc/httpd/conf.d/baculum-api.conf
...
Require all granted
# it's only needed on Apache >=2.4
# 所以需要注釋該段
...
# 啟動apache並將apache加入開機自啟
service httpd start
chkconfig httpd on
1.5. 配置baculum-api服務
# 訪問baculum-api,默認端口為9096,配置api服務
用戶名和密碼為《創建bacula-gui登錄用戶》中定義的用戶名密碼。
1.5.1. Step 1:Language
選擇默認:English
1.5.2. Step 2:Catalog API
根據環境配置填寫,test通過才能進行下一步。
1.5.3. Step 3:Console API
根據環境配置填寫,test通過才能進行下一步。
1.5.4. Step 4:Config API
根據環境配置填寫,test通過才能進行下一步。
1.5.5. Step 5:Authonization
認證方式分為兩種,OAuth2(開放認證模式)和HTTP認證(用戶名和密碼)
OAuth2介紹:
允許用戶提供一個令牌,而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每一個令牌授權一個特定的網站(例如,視頻編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相冊中的視頻)。這樣,OAuth允許用戶授權第三方網站訪問他們存儲在另外的服務提供者上的信息,而不需要分享他們的訪問許可或他們數據的所有內容。
1.5.5.1. HTTP Basic authentication
首次配置的時候需要輸入新的用戶名和密碼信息。(此用戶名密碼既是api頁面的登錄賬號,又是basic api的驗證賬號)
配置完成后,可在API default page下List HTTP Basic users界面管理api用戶。
1.5.5.2. OAuth2 for authentication
選擇OAuth2 authentication,需要修改apache配置支持
vi /etc/httpd/conf.d/bacullum-api.conf
...
# NOTE: When you use OAuth2 then change this location section
# From: <Location />
# To: <Location /api/page>
#
<Location /api/page>
AuthType Basic
AuthName "Baculum Auth"
AuthUserFile /usr/local/baculum/usr/share/baculum/htdocs/protected/API/Config/baculum.users
Require valid-user
</Location>
...
# 修改完成后重啟apache服務。
API default page下List OAuth2 client界面用於管理client配置。
1.6. 配置baculum-web服務
# 訪問baculum-web,默認端口為9095,配置baculum web服務
用戶名和密碼為《創建bacula-gui登錄用戶》中定義的用戶名密碼。
1.6.1. Step 1:Lanaguage
選擇默認:English
1.6.2. Step 2:Add APIs
1.6.2.1. HTTP Basic authentication
可登錄baculum_api -> List HTTP Basic user添加或查看用戶。
1.6.2.2. OAuth2 for authentication
OAuth2 client parameters可從登錄baculum_api -> List OAuth2 clients添加或查看。
1.6.3. Step 3:Authentication
這里的認證是設置baculum web的登錄賬號(可自定義賬號密碼)
1.6.4. Step 4:Finish
保存配置,完成配置。Dashboard顯示如下: