publik-infra/installation-4.md

3.7 KiB
Raw Blame History

Création des bases de données

Vue générale

Chaque brique utilise une ou plusieurs bases de données PostgreSQL. Il est courant dutiliser une installation à deux machines identiques en master/slave. Publik peut utiliser un système PostgreSQL existant, le cas échéant. Publik nécessite PostgreSQL en version 9 (>=9.6 recommandée).

Installation de PostgreSQL

Vérifier que les extensions PostgreSQL sont bien activées :

apt install postgresql postgresql-contrib

Création des bases

Chaque composant Publik doit disposer :

  • d'une base de données dédiée,
  • d'un accès spécifique à cette base via un usager postgreSQL dédié (avec un mot de passe SQL à créer pour chaque composant).

Principe pour le composant combo :

CREATE USER combo PASSWORD 'indiquer-ici-le-mot-de-passe-pour-combo';

CREATE DATABASE combo WITH OWNER = combo TEMPLATE = template0 LC_COLLATE = 'fr_FR.UTF-8' LC_CTYPE = 'fr_FR.UTF-8';

Remarque : template0 et LC_COLLATE et LC_CTYPE nécessaires parce que template1 est en en_US.UTF-8.

La même opération doit être répétée pour chaque brique logicielle (bien sûr à chaque fois il faut noter le mot de passe choisi, il sera nécessaire par la suite) :

  • Combo
  • Hobo
  • Authentic
  • Passerelle
  • Fargo
  • Bijoe
  • Chrono
  • Corbo
  • Mandayejs
  • Welco

Une brique est spécifique : w.c.s.. Pour w.c.s., il n'y a pas besoin de création d'une base, elle sera effectuée lors de l'instanciation. En revanche, l'utilisateur w.c.s. sur PostgreSQL doit avoir le droit CREATEDB, donc :

CREATE USER wcs PASSWORD 'indiquer-ici-le-mot-de-passe-pour-wcs' CREATEDB;

Création automatisée des bases de données:

Nous proposons un script pour la création des base-de-données, l'utilisation standard s'adresse à un cluster postgresql local. Il est possible d'adapter le fichier publik.conf pour spécifier des paramètres de connexions spécifiques :

cp /etc/publik/publik.conf.example /etc/publik/publik.conf publik-create-databases

Création des utilisateurs avec UID identiques sur web1 et web2

Lors de partage de fichiers sur un réseau (NFS par exemple), il faut que les UID des utilisateurs Unix concernés soient les mêmes sur les deux machines web1 et web2.

Nous fournissons un script pour faire cela :

publik-create-users

Alternativement vous pouvez utiliser :

#!/bin/sh

uid=2100

for user in hobo authentic-multitenant wcs wcs-au-quotidien passerelle combo fargo welco chrono corbo bijoe mandayejs
do
    echo "create group $user ($uid)"
    addgroup --system --gid $uid $user
    echo "create user $user ($uid)"
    adduser --disabled-password --system --uid $uid --gecos "$user daemon" --ingroup $user --no-create-home --home /var/lib/$user $user
    uid=$(($uid+1))
done

Résultat dans /etc/passwd:

hobo:x:2101:2101:hobo daemon,,,:/var/lib/hobo:/bin/false
authentic-multitenant:x:2102:2102:authentic2-multitenant daemon,,,:/var/lib/authentic2-multitenant:/bin/false
wcs:x:2103:2103:wcs daemon,,,:/var/lib/wcs:/bin/false
wcs-au-quotidien:x:2104:2104:wcs-au-quotidien daemon,,,:/var/lib/wcs-au-quotidien:/bin/false
passerelle:x:2105:2105:passerelle daemon,,,:/var/lib/passerelle:/bin/false
combo:x:2106:2106:combo daemon,,,:/var/lib/combo:/bin/false
fargo:x:2107:2107:fargo daemon,,,:/var/lib/fargo:/bin/false
welco:x:2108:2108:welco daemon,,,:/var/lib/welco:/bin/false
chrono:x:2109:2109:chrono daemon,,,:/var/lib/chrono:/bin/false
corbo:x:2110:2110:corbo daemon,,,:/var/lib/corbo:/bin/false
bijoe:x:2111:2111:bijoe daemon,,,:/var/lib/bijoe:/bin/false
mandayejs:x:2112:2112:mandayejs daemon,,,:/var/lib/mandayejs:/bin/false