Bacula

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche
Ligne 102 : Ligne 102 :
 
===Configuration de l'interface web===
 
===Configuration de l'interface web===
 
====Récupération des sources====
 
====Récupération des sources====
Créer le dossier hébergeant les sources web :
 
mkdir /data/www/bacula-web
 
 
 
Récupérer les sources de l'interface web :
 
Récupérer les sources de l'interface web :
 
  curl -O -L https://github.com/bacula-web/bacula-web/releases/download/v8.4.0/bacula-web-8.4.0.tgz
 
  curl -O -L https://github.com/bacula-web/bacula-web/releases/download/v8.4.0/bacula-web-8.4.0.tgz
Ligne 116 : Ligne 113 :
 
Exemple de retour :
 
Exemple de retour :
 
{{terminal|text=
 
{{terminal|text=
[root@myserver ~]# cat sha512sum.txt | sha512sum -c
+
[root@myserver ~]# cat sha512sum.txt {{!}} sha512sum -c
 
bacula-web-8.4.0.tgz: Réussi
 
bacula-web-8.4.0.tgz: Réussi
 
}}
 
}}
  
 
====Déploiement des sources====
 
====Déploiement des sources====
 +
Créer le dossier hébergeant les sources web :
 +
mkdir /data/www/bacula-web
 +
 +
Décompresser l'archive :
 +
tar xvf bacula-web-8.4.0.tgz
 +
 +
Déplacer les sources :
 +
mv bacula-web /data/www/bacula-web/8.4.0
 +
 +
Définir un lien symbolique pointant vers la version en cours :
 +
ln -s 8.4.0 /data/www/bacula-web/current
 +
 +
Corriger les droits d'accès :
 +
chown -R php-fpm:www /data/www/bacula-web
 +
chmod -R o-rwx /data/www/bacula-web
 +
 +
====Configuration web====
 +
Créer un pool PHP-FPM (par exemple : <code>/local/php/php-7.3.4/etc/php-fpm.d/bacula.conf</code>) avec le contenu suivant :
 +
<syntaxhighlight lang="ini">
 +
[bacula]
 +
user = php-fpm
 +
group = php-fpm
 +
 +
; Socket Unix dédié à Bacula
 +
listen = /local/php/sockets/php7_$pool.sock
 +
 +
; Donner à Apache (www) les droits d'accès au socket
 +
listen.owner = www
 +
listen.group = www
 +
 +
; Définition du chemin d'accès des logs
 +
access.log = /data/logs/$pool/$pool_php7.access.log
 +
slowlog = /data/logs/$pool/$pool_php7.log.slow
 +
php_admin_value[error_log] = /data/logs/$pool/$pool_php7.log
 +
php_admin_flag[log_errors] = on
 +
; https://www.php.net/manual/fr/errorfunc.constants.php
 +
php_admin_value[error_reporting] = E_ALL
 +
php_admin_value[session.save_path] = "/data/sessions/$pool/"
 +
php_value[session.save_path] = "/data/sessions/$pool/"
 +
 +
; Tuning du pool php-fpm
 +
pm = dynamic
 +
pm.max_children = 5
 +
pm.start_servers = 2
 +
pm.min_spare_servers = 1
 +
pm.max_spare_servers = 3
 +
pm.status_path = /php-fpm-status
 +
ping.path = /php-fpm-ping
 +
</syntaxhighlight>
 +
 +
Créer les dossiers contenant les logs PHP et sessions :
 +
mkdir /data/{logs,sessions}/bacula
 +
chown -R php-fpm:www /data/{logs,sessions}/bacula
 +
chmod -R o-rwx /data/{logs,sessions}/bacula
 +
 +
Relancer PHP-FPM :
 +
systemctl restart php7-fpm.service

Version du 4 août 2020 à 14:01

Présentation

Bacula est un logiciel de sauvegarde, de vérification et de restauration de fichiers en mode client-serveur dans un réseau, distribué en Open Source. Ses composants serveurs tournent sur Linux, Solaris ou FreeBSD. Ses composants clients existent pour de nombreuses autres plateformes, dont MacOS et Windows.

Plus d'informations sur Wikipedia : https://fr.wikipedia.org/wiki/Bacula_(logiciel)

Installation

Créer le dépôt Bacula

Importer la clé GPG :

wget https://www.bacula.org/downloads/Bacula-4096-Distribution-Verification-key.asc
rpm --import Bacula-4096-Distribution-Verification-key.asc
rm Bacula-4096-Distribution-Verification-key.asc

Remplir le formulaire de contact à l'adresse : https://www.bacula.org/bacula-binary-package-download/

Cela aura pour effet d'envoyer automatiquement un mail avec un lien pointant vers le dépôt Bacula avec une clé dédiée dans l'URL.

Exemple : http://bacula.org/packages/123azerty456123azerty456 est la clé créée pour le compte du formulaire précédemment rempli.

Grâce à la clé obtenue, créer le fichier /etc/yum.repos.d/bacula.repo avec le contenu suivant :

[Bacula-Community]
name=CentOS - Bacula - Community
baseurl=http://www.bacula.org/packages/123azerty456/rpms/9.6.5/el7/x86_64/
enabled=1
protect=0
gpgcheck=1

Reconstruire ensuite le cache de yum :

yum makecache

Installation des paquets

Si la base sur laquelle Bacula se connectera est MySQL, lancer la commande suivante pour installer le serveur Bacula :

yum install bacula-mysql

Cela aura pour effet d'installer également la dépendance bacula-libs.

Construction de la base de données

Sans paramétrage supplémentaire, les scripts de construction de la base de données considéreront que le moteur de la base de données est MySQL.

Ainsi, pour une base de données MySQL, lancer la commande suivante pour créer la base de données bacula :

/opt/bacula/scripts/create_bacula_database -uroot -p

Remplacer -uroot par un utilisateur avec les droits suffisants si besoin est.

Exemple de retour :

Putty icon.png Console SSH

Créer ensuite les tables avec la commande :

/opt/bacula/scripts/make_bacula_tables -uroot -p

Exemple de retour :

Putty icon.png Console SSH

Enfin, pour créer un utilisateur bacula et lui donner les droits sur la base précédemment créée, éditer le fichier /opt/bacula/scripts/grant_mysql_privileges et donner à la variable db_password la valeur du mot de passe désiré. Ensuite, lancer la commande suivante :

/opt/bacula/scripts/grant_bacula_privileges

Exemple de retour :

Putty icon.png Console SSH

Configuration

Editer le fichier /opt/bacula/etc/bacula-dir.conf et modifier la variable dbpassword de la section Catalog pour quelle corresponde au mot de passe de l'utilisateur de la base de données créé précédemment.

Exemple :

...
# Generic catalog service
Catalog {
  Name = MyCatalog
  dbname = "bacula"; dbuser = "bacula"; dbpassword = "mygreatpassword"
}
...

Lancement des services

Pour lancer le service principal côté serveur (Director), qui est le coeur de la sauvegarde, lancer la commande suivante :

systemctl start bacula-dir.service

Pour lancer le service auxiliaire(Storage Daemon), qui permet de gérer différents types de stockage, lancer la commande suivante :

systemctl start bacula-sd.service

Pour lancer la service agent côté client (File Daemon), lancer la commande suivante :

systemctl start bacula-fd.service

Configuration de l'interface web

Récupération des sources

Récupérer les sources de l'interface web :

curl -O -L https://github.com/bacula-web/bacula-web/releases/download/v8.4.0/bacula-web-8.4.0.tgz

Télécharger la signature SHA512 :

wget https://github.com/bacula-web/bacula-web/releases/download/v8.4.0/sha512sum.txt

Vérifier la signature du paquet téléchargé :

cat sha512sum.txt | sha512sum -c

Exemple de retour :

Putty icon.png Console SSH

Déploiement des sources

Créer le dossier hébergeant les sources web :

mkdir /data/www/bacula-web

Décompresser l'archive :

tar xvf bacula-web-8.4.0.tgz

Déplacer les sources :

mv bacula-web /data/www/bacula-web/8.4.0

Définir un lien symbolique pointant vers la version en cours :

ln -s 8.4.0 /data/www/bacula-web/current

Corriger les droits d'accès :

chown -R php-fpm:www /data/www/bacula-web
chmod -R o-rwx /data/www/bacula-web

Configuration web

Créer un pool PHP-FPM (par exemple : /local/php/php-7.3.4/etc/php-fpm.d/bacula.conf) avec le contenu suivant :

[bacula]
user = php-fpm
group = php-fpm

; Socket Unix dédié à Bacula
listen = /local/php/sockets/php7_$pool.sock

; Donner à Apache (www) les droits d'accès au socket
listen.owner = www
listen.group = www

; Définition du chemin d'accès des logs
access.log = /data/logs/$pool/$pool_php7.access.log
slowlog = /data/logs/$pool/$pool_php7.log.slow
php_admin_value[error_log] = /data/logs/$pool/$pool_php7.log
php_admin_flag[log_errors] = on
; https://www.php.net/manual/fr/errorfunc.constants.php
php_admin_value[error_reporting] = E_ALL
php_admin_value[session.save_path] = "/data/sessions/$pool/"
php_value[session.save_path] = "/data/sessions/$pool/"

; Tuning du pool php-fpm
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /php-fpm-status
ping.path = /php-fpm-ping

Créer les dossiers contenant les logs PHP et sessions :

mkdir /data/{logs,sessions}/bacula
chown -R php-fpm:www /data/{logs,sessions}/bacula
chmod -R o-rwx /data/{logs,sessions}/bacula

Relancer PHP-FPM :

systemctl restart php7-fpm.service