Baculum (bacula-gui) é a interface gráfica web oficial do projeto Bacula (bacula.org). Na versão 9, agora ela contém um módulo de configuração, permitindo que o administrador de backup altere configurações de backup sem precisar editar arquivos texto. Além disso uma API é disponibilizada, facilitando a integração com outros softwares, interfaces e consoles.
1. Instalação
Baculum 9 funciona com outras versões do Bacula, mas apenas o Bacula 9 possui os binários json – necessários à configuração gráfica do Bacula.
Para instalar o Bacula 9 a partir do código fonte, acesse <http://www.bacula.com.br/compilacao>.
Uma vez que o Bacula está instalando e funcionando, pode-se prosseguir com a instalação da API Baculum e interface, como se segue.
2. Debian/Ubuntu
wget -qO - https://www.bacula.org/downloads/baculum/baculum.pub | apt-key add -
echo "
deb [ arch=amd64 ] https://www.bacula.org/downloads/baculum/stable-11/debian bullseye main
deb-src https://www.bacula.org/downloads/baculum/stable-11/debian bullseye main
" > /etc/apt/sources.list.d/baculum.list
apt-get update && apt-get install php-bcmath php*-mbstring baculum-api baculum-api-apache2 baculum-common bacula-console baculum-web baculum-web-apache2
echo "Defaults:apache "'!'"requiretty
www-data ALL=NOPASSWD: /usr/sbin/bconsole
www-data ALL=NOPASSWD: /usr/sbin/bdirjson
www-data ALL=NOPASSWD: /usr/sbin/bsdjson
www-data ALL=NOPASSWD: /usr/sbin/bfdjson
www-data ALL=NOPASSWD: /usr/sbin/bbconsjson
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-dir
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-dir
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-dir
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-sd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-sd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-sd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-fd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-fd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-fd
www-data ALL=(root) NOPASSWD: /opt/bacula/bin/mtx-changer
" > /etc/sudoers.d/baculum
usermod -aG bacula www-data
chown -R www-data:bacula /opt/bacula/working /opt/bacula/etc
chmod -R g+rwx /opt/bacula/working /opt/bacula/etc
a2enmod rewrite
a2ensite baculum-web baculum-api
service apache2 restart
sed -i 's/ident/trust/g; s/peer/trust/g; s/md5/trust/g' /var/lib/pgsql/data/pg_hba.conf
sed -i 's/ident/trust/g; s/peer/trust/g; s/md5/trust/g' /etc/postgresql/*/main/pg_hba.conf
service postgresql restart
server_ip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
echo "Acesse e configure pelo navegador de Internet a API http://$server_ip:9096/ e depois o Baculum http://$server_ip:9095/"
3. Centos/RedHat
rpm --import http://bacula.org/downloads/baculum/baculum.pub
echo "
[baculumrepo]
name=Baculum CentOS repository
baseurl=https://www.bacula.org/downloads/baculum/stable-11/centos
gpgcheck=1
enabled=1" > /etc/yum.repos.d/baculum.repo
yum install -y baculum-common baculum-api baculum-api-httpd baculum-web baculum-web-httpd
echo "Defaults:apache "'!'"requiretty
apache ALL=NOPASSWD: /usr/sbin/bconsole
apache ALL=NOPASSWD: /usr/sbin/bdirjson
apache ALL=NOPASSWD: /usr/sbin/bsdjson
apache ALL=NOPASSWD: /usr/sbin/bfdjson
apache ALL=NOPASSWD: /usr/sbin/bbconsjson
apache ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-dir
apache ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-dir
apache ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-dir
apache ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-sd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-sd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-sd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-fd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-fd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-fd
apache ALL=(root) NOPASSWD: /opt/bacula/bin/mtx-changer
" > /etc/sudoers.d/baculum
usermod -aG bacula apache
chown -R apache:bacula /opt/bacula/working /opt/bacula/etc
chmod -R g+rwx /opt/bacula/working /opt/bacula/etc
firewall-cmd --permanent --zone=public --add-port=9095-9096/tcp
firewall-cmd --reload
service httpd restart
systemctl enable httpd
sed -i 's/ident/trust/g; s/peer/trust/g' /var/lib/pgsql/data/pg_hba.conf
service postgresql restart
server_ip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
echo "Acesse e configure pelo navegador de Internet a API http://$server_ip:9096/ e depois o Baculum http://$server_ip:9095/"
4. Configuração
Primeiro configure a API através da URL http://localhost:9096/ (admin, admin). É possível utilizar o idioma Português e testar cada uma das configurações feitas. Será definida uma credencial exclusiva de acesso à API (usuário e senha ou oauth), de acordo com as telas seguintes.
Então, acesse a interface Baculum (http://localhost:9095/ – admin, admin) e configure também o idioma, acesso ao banco de dados do Bacula, à API Baculum e credencial da Interface Baculum, conforme a seguir:
5. Temas
Caso deseje desenvolver novos temas CSS ou alterar imagens do Baculum, o local para o tema padrão é o seguinte:
/usr/share/baculum/htdocs/themes/Baculum-v1
6. Screenshots
Telas de configuração, dashboard e API, respectivamente.
7. Referência
Baculum API and Web GUI. http://www.bacula.org/9.0.x-manuals/en/console/Baculum_API_Web_GUI_Tools.html











