Outils pour utilisateurs

Outils du site


serveur_bacula2

Ceci est une ancienne révision du document !


Bacula et dépendances

backports

On va installer la version 5 qui est sur le “backports”.

mail

# aptitude install exim4

mysql

# aptitude install mysql-server

director

# aptitude -t lenny-backports install bacula-director-mysql

console

# aptitude -t lenny-backports bacula-console

sd et fd

# aptitude -t lenny-backports install bacula-fd bacula-sd-mysql

Bacula

ipv4

Si on “blacklist ipv6” , alors “bacula” doit être forcé afin de ne fonctionner qu'en ipv4… sinon, les communications echouent silencieusement (les jobs ne se terminent jamais).

Exemple de conf, pour “bacula-dir.conf” :

# TJ ---------
#DirAddress = 127.0.0.1
#DIRport = 9101                # where we listen for UA connections
DirAddresses = { ipv4 = { addr = 0.0.0.0; } }

Adapter pour chaque daemon.

Webacula

installation

apache

# aptitude install apache2 libapache2-mod-php5 php5-mysql
# aptitude install php5-gd
:!: ne pas oublier “php5-mysql” !
# a2enmod rewrite
# /etc/init.d/apache2 restart

download

$ cd /usr/local/src
$ wget .... webacula-5.0.2.tar.gz
$ tar xvzf ....

etc…

Zend Framework

$ wget .... ZendFramework-1.10.8-minimal.tar.gz

Dans /etc/php5/apache2/php.ini , ajouter au parametre include_path :

; TJ
; ------------------
include_path = "/usr/local/src/ZendFramework/library"
; ------------------

Ou bien:

# cd /var/www/webacula/library
# ln -s /usr/local/src/ZendFramework/library/Zend .
# /etc/init.d/apache2 restart

webacula

FIXME : copier dans /var/www/webacula

bconsole

# adduser www-data bacula

Test:

# su -l www-data -s /bin/sh -c "/usr/bin/bconsole -n -c /etc/bacula/bconsole.conf"

www

Dans /etc/apache2/sites-available, creer le fichier 200-webacula contenant:

Alias "/webacula"  "/var/www/webacula/html"
<Directory "/var/www/webacula/html">
 RewriteEngine on
      Options FollowSymLinks
      AllowOverride All
      Order deny,allow
      Allow from 127.0.0.1
      # your network
      Allow from 192.168.1.0/255.255.255.0

      AuthType Basic
      AuthName "Webacula"
      #AuthUserFile       /etc/apache2/conf.d/webacula.users
      AuthUserFile       /var/www/webacula/passwd/.webacula.users   # a creer!
      Require valid-user
</Directory>

Activer:

# a2ensite 200-webacula

Modifier /etc/php5/apache2/php.ini pour avoir:

max_execution_time = 600
memory_limit = 256M
# apache2ctl graceful

FIXME: modifier conf de bacula-dir.conf ???

Dans /var/www/webacula/html/.htaccess , faire en sorte d'avoir (?) :

SetEnv APPLICATION_ENV production

Dans le fichier /var/www/webacula/application/config.ini modifier pour avoir:

...
db.config.username = webacula
db.config.password = <MOT_DE_PASSE>
...
bacula.sudo = ""
bacula.bconsole = "/usr/bin/bconsole"
...

MySQL

Dans ../install , modifier avec le fichier webacula_mysql_create_database.sh avec les parametres de son choix. Par exemple:

...
db_user="webacula"
db_password="<MOT_DE_PASSE>"
...

Et puis:

# ./webacula_mysql_create_database.sh -u root -p
Enter password:
Creation of webacula database succeeded.

Et aussi:

# ./webacula_mysql_make_tables.sh -u root -p
Enter password:
Creation of webacula MySQL tables succeeded.

Completer afin que ce compte puisse aussi modifier le “catalog” bacula ( FIXME: lire ne suffit pas ? ) :

mysql> GRANT ALL ON bacula.* TO webacula@localhost;
Query OK, 0 rows affected (0.00 sec)

www passwd

Creer le fichier de mots de passe:

# mkdir passwd
# cd passwd
# htpasswd -c .webacula.users Webacula

Fournir le mot de passe pour le compte Webacula

(Ne pas utiliser “-c”, pour creer d'autres comptes!)

FIXME : d'aprés la doc, y a des CRON a installer

En marche

C'est mieux que rien.

DataBase

MySQL

Lien: http://wiki.bacula.org/doku.php?id=faq#restore_takes_a_long_time_to_retrieve_sql_results_from_mysql_catalog

C'est extremement lent. Il faut peut envisager autre chose que MySQL !?

tmpfs

:!: En fait, le changement est *insignifiant* avec MySQL ! Donc, ne pas faire ça pour ça !

Lien: http://www.system-linux.eu/index.php?post/2009/09/10/cr%C3%A9er-un-tmpfs%2C-un-repertoire-dans-votre-ram

J'ai mounter un fichier “tmp” pour “mysql” comme ça:

# mkdir /mnt/mysql-tmp
# chmod 0777 /mnt/mysql-tmp

Dans fstab:

tmpfs   /mnt/mysql-tmp  tmpfs   defaults,size=512M      0       0

Et puis:

# mount -a

my.cnf

Tweaks des options de MySQL ? dans my.cnf ?

$ dpkg -S my-huge.cnf 

Ce que j'ai fait:

...
tmpdir          = /mnt/mysql-tmp        # <--- seulement si on utilise "tmpfs"
...
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
...
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
...

Index

Lien: http://www.bacula.org/5.0.x-manuals/en/main/main/Catalog_Maintenance.html#SECTION004592000000000000000

Ce qui a fonctionné pour moi:

$ mysql -u root -p
mysql> use bacula;

Examinons avec:

mysql> show index from File;

Mais j'y comprend que dalle en fait, et donc je fais :

mysql> CREATE INDEX file_jobid_idx on File (JobId);
mysql> CREATE INDEX file_jpf_idx on File (JobId, FilenameId, PathId);

Les perfs sont booooooostés. Je peus enfin restaurer des fichiers d'une grosse base.

Shrink

Lien: http://www.mail-archive.com/bacula-users@lists.sourceforge.net/msg11973.html

Il faut que j'essaye…

# /etc/bacula/scripts/make_catalog_backup --user=<USER> --password=<MOT_DE_PASSE>

DROP de la database

# mysql --user=<USER> --password=<MOT_DE_PASSE> < bacula.sql

Compression

Lien: http://edin.no-ip.com/content/bacula-backup-with-gzip-compress-on

 Software Compression:   53.9 %

TLS

easy-rsa

package

On va recupere “easy-rsa” dans le package “openvpn”.

On est dans le cas où l'on n'installera pas le package “openvpn”, on veut juste “easy-rsa” :

$ dpkg --print-architecture
amd64

Je suis dans un DomU 64bit, donc, on recupère le package “openvpn” qui va bien.

$ cd ~/tmp
$ mkdir openvpn
$ cd openvpn
$ wget http://ftp.fr.debian.org/debian/pool/main/o/openvpn/openvpn_2.1~rc11-1_amd64.deb
$ dpkg -x openvpn_2.1~rc11-1_amd64.deb ./

install

“easy-rsa” est dans usr/share/doc/openvpn/examples/easy-rsa/2.0/ . Donc:

$ su
# mkdir /etc/bacula/easy-rsa
# cp -Rp usr/share/doc/openvpn/examples/easy-rsa/2.0/. /etc/bacula/easy-rsa
# cd /etc/bacula/easy-rsa/
# chown -R root: *

vars

Modifier “vars” car par defaut il contient:

# cat vars | grep -v "^#" | grep -v "^$"
export EASY_RSA="`pwd`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=1024
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"

Il me semble judicieux d'adapter au moins:

KEY_COUNTRY
KEY_PROVINCE
KEY_CITY
KEY_ORG
KEY_EMAIL

… et peut etre:

KEY_SIZE
CA_EXPIRE
KEY_EXPIRE

LA PREMIERE FOIS SEULEMENT

clean-all

Faire:

# . ./vars
# ./clean-all
# ./build-ca

car :

  1. le repertoire “./keys” va etre totalement effacé ! et c'est la que seront les futures codes!!!
  2. le “ca” va être créé

Un répertoire “./keys” est maintenant peuplé…

Important:

 Common Name : Bacula CA

Generate Diffie Hellman parameters

# ./build-dh

server

Aussi la premiere fois, il faut dire qui est le maitre des clés (en quelques sortes):

./build-key-server bacula-server
Common Name : my-bacula-server.fqdn

En “CN”, le nom fqdn. svp.

droits

Faire en sorte que “bacula” est accès aux fichiers dans “keys” (pas forcément a tous).

Donc:

# cd /etc/bacula
# chown -R :bacula easy-rsa
# cd easy-rsa
# chmod g+rxs keys

Afin d'autoriser “bacula” a lire dans le repertoire “keys” et a creer ulterieurement les fichiers avec le groupe “bacula” qui va bien.

clients

# . ./vars
# ./build-key tj-debcave

Et CN = tj-debcave

On se demerde pour envoyer les fichiers suivant:

.../keys/ca.crt
.../keys/tj-debcave.crt
.../keys/tj-debcave.key

… a la machine “tj-debcave”.

bacula-console

serveur

Sur le serveur, dans bacula-dir.conf :

...<snip>...
Director {                            # define myself
  ... <snip> ...
  # -- TLS --
  TLS Enable = yes
  TLS Require = no 
  TLS CA Certificate File = /etc/bacula/easy-rsa/keys/ca.crt
  TLS Certificate = /etc/bacula/easy-rsa/keys/bacula.crt
  TLS Key = /etc/bacula/easy-rsa/keys/bacula.key
  # ------------
}

:!: “TLS Require = no” afin de toléré l'absence de chiffrement… notamment a cause de “webacula”

un client

serveur_bacula2.1289522458.txt.gz · Dernière modification : 2010/11/12 00:40 de thierry