Table des matières

, ,

Notes sur la syntaxe de configuration de Bareos

Pour des raisons de lisibilité et de modularité, la configuration est repartie sur un ensemble de fichiers textes encodés en UTF-8. Les fichiers de configuration permettent de définir des ressources à partir des types existants.

Les ressources

Une ressource est définie par un type suivi d'accolades groupant les directives. Ci dessous un exemple illustrant la syntaxe:

RSType {
  directive 1 = valeur1
  directive 2 = valeur2
  ..
  directive n = valeurN
}

Ci-après un exemple plus concret avec une ressource de type Job:

backup-poseidon.conf
Job {
  Name = "backup-poseidon"
  JobDefs = "DefaultJob"
  Client = "bareos-fd"
}

Chaque définition de ressource doit comporter la directive name dont la valeur unique permet son identification. Par convention on utilise comme nom du fichier de configuration, le nom de la ressource (directive Name). Par convention on suffixe les nom avec:

Ces conventions sont particulièrement appréciables lors de la relecture des logs.

Le tableau ci-dessous liste l'ensemble des types de ressources de Bareos. Il indique quelles ressources doivent être définies pour chaque service.

Ressource Director Client Storage Console
Autochanger X
Catalog X
Client X X
Console X X
Device X
Director X X X X
FileSet X
Job X
JobDefs X
Message X X X
NDMP X
Pool X
Profile X
Schedule X
Storage X X

Suppression de ressource

La documentation officielle déconseille la suppression de ressource qui peut entraîner des risques d'objets orphelins dans le catalogue. Une ressource non utilisée peut être désactivée via la directive:

    Enable = no

Les directives

Chaque directive contenue dans la définition de la ressource se compose d'un mot clé (Ressource Directive Keyword) à gauche du caractère '=' est d'une valeur (Ressource Directive Value). Pour le mot clé (label) de la directive, les espaces et la casse de caractère ne sont pas significatifs si bien que JobDefs, job defs, ou Job Defs sont strictement équivalents, ils désignent la même directive. Les espaces après le signe égal et avant le premier caractère sont ignorés également cependant les suivants seront significatifs et peuvent exiger des échappements via les doubles guillemets.

Les types de données des directives

Différents type de données existent et peuvent être affectés aux directives. La liste exhaustive est présente dans la documentation officielle.

acl

Les acl permettent de définir des autorisations d'accès. Elles exploitent les expressions rationnelles séparées par des virgules et les mots clés (tel que *all*). Si le caractère '!' est présent il représente la négation.

Pour autoriser toutes les commandes sauf sqlquery et les commandes commençant par del:

command acl = !sqlquery, !del*, *all*

La syntaxe ci-dessous est strictement équivalente:

command acl = !sqlquery
command acl = !del*
command acl = *all*
L'évaluation des acl est stoppée dès la première correspondance vraie, il faut donc toujours placer le mot clé *all* en dernier pour que toutes les parties de l'expression soient correctement évaluées.

name

Caractères alphanumériques, underscore, doit commencer par une lettre et comporter un maximum de 127 caractères. Respecter les suffixes conventionnels

strname

Similaire à name doit cependant être entre définit entre guillemets et peut contenir des caractères comme les espaces.

integer/long integer

Attention à ne pas placer les nombres entre guillemets.

password

Donnée de type mot de passe, stockée par Bareos en tant que hash MD5.

path

Un chemin peut être placé entre guillemets ou non, peut désigner un fichier ou un répertoire.

speed

Le paramètre speed peut être spécifié avec différentes unités: k/s, kb/s, m/s, mb/s. Ne pas placer entre guillemets.

string

Une chaîne peut contenir tous types de caractères (s'ils sont correctement échappés) et peut avoir une longueur quelconque. Les caractères d'espacement entre le symbole d'affectation '=' et le premier caractère seront ignorés. Les autres espacements, s'ils sont présents, devraient être significatifs et devraient donc être échappés (placés entre guillemets).

size

Par défaut un nombre d'octets, il peut être immédiatement suivi (sans espace) d'une des unités suivantes: k, kb, m, mb, g, gb. Ne pas placer entre guillemets.

time

Période de temps en secondes définie en deux partie: nombre suivi d'un modificateur: seconds, minutes, hours, days, weeks, months, quarters, years

Si la directive sert à définir un nombre, le nombre ne doit pas être encadré par des guillemets. Cela reste vrai même lorsqu'il est définit avec ses unités comme 365 days .

booléens

yes ou no et leur équivalent respectif true et false.

Développement des variables

Selon les directives ou les commandes, différents jeux de variables sont disponibles. Ils sont détaillés dans la documentation officielle.

L'étiquetage des volumes (labeling) peut utiliser les variables internes de Bareos ou les variables d'environnement également disponibles.

Variable Interne Description
$Year L'année
$Month Le mois, formaté en nombre [1-12]
$Day Le jour formaté en nombre [1-31]
$Hour L'heure, formatée en nombre [0-24]
$Minute Minutes, formatées en nombre [0-59]
$Second Secondes, formatées en nombre [0-59]
$WeekDay jour de la semaine, formaté en nombre 0 pour dimanche [0-6]
$Job Nom de la tache
$Dir Nom du Director
$Level Level de la tache
$Type Type de la tache
$JobId Identifiant de la tache
$JobName Nom unique de la tache
$Storage Nom du Storage Daemon
$Client Nom du client
$NumVols Nombre de volumes du pool
$Pool Nom du Pool
$Catalog Nom du Catalogue
$MediaType Type du media

Les commandes Bareos tel que Autochanger, Mount, runScript, Mail ou Operator utilisent des variables spécifiques.

Mots de passe et authentification

La communication entre les daemons est soumise à authentification. Dans la plupart des cas, c'est un couple (nom, mot de passe) en texte plein. La configuration par défaut génère automatiquement une authentification correcte entre les daemons avec des mots de passes générés aléatoirement. Si les fichiers de configuration des daemons sont modifiés, il faut s'assurer de les garder consistants.

Dans la configuration du daemon Director, les ressources Director, Storage, Client sont définies avec leur couple (nom, mot de passe). Le schéma montre bien qu'ensuite pour la configuration de chaque daemon, il faudra indiquer le nom du Director avec lequel il communique et faire correspondre le mot de passe

Pour une architecture distribuée sur un réseau non sûr, il est possible de chiffrer les échanges entre daemons.

Test de la configuration

Pour tester la syntaxe des fichiers de configuration après modification

# Tester la configuration du Director
 su bareos -s /bin/sh -c "/usr/sbin/bareos-dir -t"
 
# Tester la configuration du storage daemon
 su bareos -s /bin/sh -c "/usr/sbin/bareos-sd -t"
 
# Test le client (file daemon)
bareos-fd -t
 
# Test de la configuration de la console
bconsole -t
 
bareos-tray-monitor -t
1)
File Daemon
2)
Storage Daemon
3)
Director