]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manual-fr/postgresql.tex
This commit was manufactured by cvs2svn to create tag
[bacula/docs] / docs / manual-fr / postgresql.tex
index 4b9c3c56cb9f88edd7a0303eea7b289ebbbf79b2..3ba62a0462b60316fd42efd3dab94c13e45f1762 100644 (file)
@@ -56,7 +56,7 @@ aviez d\'ej\`a un serveur PostgreSQL existant et vous avez configur\'e et
 install\'e {\bf Bacula}. Dans le cas contraire, nous vous invitons \`a le
 faire avant de poursuivre. 
 
-Prennez bonne note que la commande {\bf ./configure} utilis\'ee pour
+Notez bien que la commande {\bf ./configure} utilis\'ee pour
 construire {\bf Bacula} n\'ecessite d'ajouter l'option {\bf
 \verb{--{with-postgresql=repertoire\_de\_PostgreSQL}, o\`u {\bf
 repertoire\_de\_PostgreSQL} sp\'ecifie le chemin de PostgreSQL indiqu\'e \`a
@@ -90,7 +90,29 @@ s'agit de pgsql. NDT: sur debian il s'agit de postgres)
 
 \item ./create\_bacula\_database
 
-   Cr\'eer la base de donn\'ees PostgreSQL de {\bf Bacula}.  
+   Ce script cr\'e\'e le catalogue {\bf bacula} PostgreSQL. S'il \'echoue, 
+   c'est probablement que vous n'avez pas les droits requis sur la 
+   base de donn\'ees. Sur la plupart des syst\`emes, le propri\'etaire de 
+   la base de donn\'ees est {\bf pgsql}, et sur d'autres tels que RedHat ou 
+   Fedora, c'est {\bf postgres}. Vous pouvez d\'eterminer lequel en examinant 
+   le fichier /etc/passwd. Pour cr\'eer un nouvel utilisateur avec votre nom 
+   ou le nom {\bf bacula}, vous pouvez faire ce qui suit :
+      
+\begin{verbatim}
+   su
+   (entrez le mot de passe root)
+   password pgsql (ou postgres)
+   (entrez un mot de passe pour cet utilisateur)
+   exit
+   su pgsql (ou postgres)
+   (entrez le nouveau mot de passe)
+   createuser kern (or peut-\^etre bacula)
+   Shall the new user be allowed to create databases? (y/n) y
+   Shall the new user be allowed to create more new users? (y/n) (choisissez ce que vous voulez)
+   exit
+\end{verbatim}
+
+    A ce stade, vous devriez pouvoir ex\'ecuter la commande ./create\_bacula\_database
 
 \item ./make\_bacula\_tables
 
@@ -120,6 +142,90 @@ repertoire_de_PostgreSQL/bin/psql --command \\dp bacula
 \end{verbatim}
 \normalsize
 
+J'ai rencontr\'e un probl\`eme de permissions avec le mot de passe. J'ai finalement 
+du modifier mon fichier  {\bf pg_hba.conf} (situ\'e dans /var/lib/pgsql/data sur ma 
+machine) :
+
+\footnotesize
+\begin{verbatim}
+de
+  local   all    all        ident  sameuser
+vers
+  local   all    all        trust  sameuser
+\end{verbatim}
+\normalsize
+
+Ceci a r\'esolu le probl\`eme pour moi, mais ce n'est pas pas forc\'ement une bonne 
+chose du point de vue de la s\'ecurit\'e, mais j'ai ainsi pu ex\'ecuter mes scripts de 
+r\'egression sans mot de passe.
+
+Un moyen plus s\'ecuris\'e pour l'authentification aupr\`es de la base de donn\'ees 
+consiste \`a utiliser le hachage MD5 des mots de passe. Pour cela, \'editez les 
+fichier {\bf pg_hba.conf}, et ajoutez ajoutez ce qui suit juste avant les lignes 
+"local" et "host" existantes :
+
+\footnotesize
+\begin{verbatim}
+  local bacula bacula md5
+\end{verbatim}
+\normalsize
+
+Puis red\'emarrez le {\it daemon} Postgres (la plupart du temps, avec 
+ "/etc/init.d/postgresql restart") pour activer cette nouvelle r\`egle 
+d'authentification.
+
+Ensuite, en tant qu'administrateur Postgres (connectez-vous en tant 
+qu'utilisateur postgres ou en utilisant {\bf su} pour devenir root, puis 
+ {\bf su postgres}), ajoutez un mot de passe \`a la base de donn\'ees bacula 
+pour l'utilisateur bacula avec les commandes suivantes :
+
+\footnotesize
+\begin{verbatim}
+  \$ psql bacula
+  bacula=# alter user bacula with password 'secret';
+  ALTER USER
+  bacula=# \\q
+\end{verbatim}
+\normalsize
+
+Enfin, il vous faudra ajouter ce mot de passe en deux endroits du fichier 
+bacula-dir.conf : au niveau de la ressource Catalog et au niveau de la 
+directive RunBeforeJob de la ressource Job BackupCatalog. Avec les mots de 
+passe en place, ces deux lignes devraient ressembler \`a ceci :
+
+\footnotesize
+\begin{verbatim}
+  dbname = bacula; user = bacula; password = "secret"
+    ... and ...
+  RunBeforeJob = "/etc/make_catalog_backup bacula bacula secret"
+\end{verbatim}
+\normalsize
+
+Naturellement, vous devriez choisir un meilleur mot de passe, et vous assurer 
+que le fichier bacula-dir.conf qui contient ce mot de passe n'est lisible 
+que par root.
+
+M\^eme avec ces restrictions, il reste un probl\`eme de s\'ecurit\'e avec cette approche : 
+sur certaines plateformes, la variable d'environnement utilis\'ee pour soumettre le 
+mot de passe \`a Postgres est in\'evitablement disponible pour tout utilisateur 
+local du syst\`eme. Pour supprimer ce probl\`eme, l'\'equipe Postgres a d\'ecr\'et\'e 
+obsol\`ete ce m\'ecanisme de passage de mot de passe par variable d'environnement et 
+recommande d'utiliser un fichier .pgpass. Pour utiliser ce m\'ecanisme, cr\'eez un fichier 
+nomm\'e .pgpass vcontenant une simple ligne :
+
+\footnotesize
+\begin{verbatim}
+  localhost:5432:bacula:bacula:secret
+\end{verbatim}
+\normalsize
+
+Ce fichier devrait \^etre copi\'e dans les r\'epertoires personnels (NDT : home directories) 
+de tous les comptes susceptibles d'avoir besoin d'acc\'eder \`a la base de donn\'ees : 
+typiquement, il s'agit de root, bacula et tout utilisateur de la console Bacula. Les fichiers 
+doivent appartenir aux utilisateur et groupe correspondant : root:root pour la copie 
+dans ~root, etc. Les permissions doivent \^etre positionn\'ees \`a 600 pour limiter 
+l'acc\`es au propri\'etaire du fichier.
+
 \subsection*{R\'einitialiser la base des catalogues (de sauvegardes)}
 \index[general]{R\'einitialiser la base des catalogues (de sauvegardes) }
 \index[general]{Sauvegardes!R\'einitialiser la base des catalogues de }
@@ -158,6 +264,23 @@ chacun d'eux afin que {\bf Bacula} puisse les r\'eutiliser. Pour ce faire:
 o\`u vous devrez remplacer {\bf /dev/nst0} par le chemin appropri\'e de votre
 lecteur de sauvegarde. 
 
+\subsection*{Installer PostgreSQL avec les RPMs}
+\index[general]{PostgreSQL!Installer avec les RPMs}
+\index[general]{Installer PostgreSQL avec les RPMs}
+\addcontentsline{toc}{subsection}{Installer PostgreSQL avec les RPMs}
+Si vous installez PostgreSQL avec les RPMs, il vous faut installer les 
+binaires PostgreSQL ainsi que les librairies clientes. Ces derni\`eres font 
+g\'en\'eralement partie de paquetages de d\'eveloppement, aussi vous devez installer :
+
+\footnotesize
+\begin{verbatim}
+  postgresql
+  postgresql-devel
+\end{verbatim}
+\normalsize
+
+Il en va de m\^eme avec la plupart des gestionnaires de paquetages.
+
 \subsection*{Migrer de MySQL \`a PostgreSQL}
 \index[general]{Migrer de MySQL \`a PostgreSQL }
 \index[general]{PostgreSQL!Migrer de MySQL \`a }
@@ -171,7 +294,7 @@ diff\'erents logiciels:
 
 \begin{itemize}
 \item Linux Mandrake 10/Kernel 2.4.22-10 SMP 
-\item Mysql Ver 12.21 Distrib 4.0.15, pour mandrake-linux-gnu (i586) 
+\item MySQL Ver 12.21 Distrib 4.0.15, pour mandrake-linux-gnu (i586) 
 \item PostgreSQL 7.3.4 
 \item Bacula 1.34.5 
    \end{itemize}
@@ -181,7 +304,7 @@ syst\`emes avant de proc\'eder \`a cette migration.
 
 \begin{enumerate}
 \item Arr\^etez bacula (cd /etc/bacula;./bacula stop)  
-\item Lancez la commande pour extraire les donn\'ees de votre base Mysql:  
+\item Lancez la commande pour extraire les donn\'ees de votre base MySQL:  
 
    \footnotesize
 \begin{verbatim}
@@ -194,16 +317,16 @@ syst\`emes avant de proc\'eder \`a cette migration.
 \item Faites une sauvegarde de votre r\'epertoire /etc/bacula (mais laisser
    l'original en place  ).  
 \item Allez dans le r\'epertoire source de {\bf Bacula} et reconstruisez le en
-   incluant le support  PostgreSQL au lieu de celui de Mysql . V\'erifiez que  le
+   incluant le support  PostgreSQL au lieu de celui de MySQL . V\'erifiez que  le
    fichier config.log de votre configuration originale et remplacez enable-mysql
 par enable-postgresql.  
 \item Recompilez Bacula avec la commande make et si tout se passe correctement
- lancez un ``make install''.  
-\item Arr\^etez Mysql
+ lancez un "make install".  
+\item Arr\^etez MySQL
 \item Lancez PostgreSQL sur votre syst\`eme.  
 \item Cr\'eez un utilisateur {\bf Bacula} dans Postgres avec la commande
-   ``createuser''.  En fonction de votre installation, vous serez peut \^etre
-   amen\'e \`a faire un ``su'' vers l'utilisateur ad\'equat (NDT: su postgres).  
+   "createuser".  En fonction de votre installation, vous serez peut \^etre
+   amen\'e \`a faire un "su" vers l'utilisateur ad\'equat (NDT: su postgres).  
 \item Verifiez que le fichier pg\_hba.conf (NdT sur Debian:
    /etc/postgres/pg\_hba.conf) contient les permissions ad\'equates pour
    permettre \`a {\bf Bacula} d'acc\'eder au serveur. Le mien contient les
@@ -294,9 +417,26 @@ SELECT SETVAL('pool_poolid_seq', (SELECT MAX(poolid) FROM pool));
 \end{verbatim}
 \normalsize
 
-\item Parvenu ici, lancez {\bf Bacula}, v\'erifiez votre banque de bandes et
+\item Parvenu ici, lancez {\bf Bacula}, v\'erifiez votre librairie et
    faites un test pour valider que tout s'est bien d\'eroul\'e. 
-   \end{enumerate}
+\end{enumerate}
+
+\subsection*{Mettre \`a jour PostgreSQL}
+\index[general]{Mettre \`a jour PostgreSQL }
+\index[general]{Mettre \`a jour!PostgreSQL }
+\addcontentsline{toc}{subsection}{Mettre \`a jour PostgreSQL}
+Si vous mettez PosgreSQL \`a jour, vous devez reconfigurer, recompiler et 
+r\'einstaller Bacula, faute de quoi vous constaterez probalement des 
+erreurs \'etranges. 
+Pour cela, il vous faut installer le RPM source, modifier le fichier bacula.spec 
+pour l'accorder \`a votre version de PostgreSQL, reconstruire le RPM et l'installer.
+
+If you upgrade PostgreSQL, you must reconfigure, rebuild, and re-install
+Bacula otherwise you are likely to get bizarre failures.  If you
+to modify the bacula.spec file to account for the new PostgreSQL version.
+You can do so by rebuilding from the source rpm. To do so, you may need
+install from rpms and you upgrade PostgreSQL, you must also rebuild Bacula.
+
 
 \subsection*{Credits}
 \index[general]{Credits }