Commit 1fc755b4 authored by Guillaume Perréal's avatar Guillaume Perréal
Browse files

Mise à jour de la documentation d'installation.

parent 63d08a4e
No related merge requests found
Showing with 29 additions and 28 deletions
+29 -28
...@@ -13,6 +13,7 @@ Ce guide est rédigé pour une installation sur un serveur ou machine virtuel v ...@@ -13,6 +13,7 @@ Ce guide est rédigé pour une installation sur un serveur ou machine virtuel v
* Disque base de données Postgresql : 32 Go pour 70 millions de mesures. * Disque base de données Postgresql : 32 Go pour 70 millions de mesures.
* la locale `fr_FR.UTF-8` et le fuseau horaire sont configurés, selon la localisation du serveur * la locale `fr_FR.UTF-8` et le fuseau horaire sont configurés, selon la localisation du serveur
* un compte utilisateur non-administrateur a été crée. Il peut utiliser `sudo` pour exécuter des commandes en tant que superutillisateur (`root`) * un compte utilisateur non-administrateur a été crée. Il peut utiliser `sudo` pour exécuter des commandes en tant que superutillisateur (`root`)
* un archive des [sources d'OpenBDOH](https://gitlab.irstea.fr/pole-is/open_bdoh/-/tree/master).
Il est possible d'installer facilement OpenBDOH sur une distribution Linux dérivée de Debian, comme Ubuntu Linux, par exemple. En revanche, l'installation sur une autre distribution, comme RedHad, CentOS..., nécessiterait des adaptations dans les commandes, les noms de paquets, les chemins de fichiers... qui ne seront pas abordées dans ce guide. Il est possible d'installer facilement OpenBDOH sur une distribution Linux dérivée de Debian, comme Ubuntu Linux, par exemple. En revanche, l'installation sur une autre distribution, comme RedHad, CentOS..., nécessiterait des adaptations dans les commandes, les noms de paquets, les chemins de fichiers... qui ne seront pas abordées dans ce guide.
...@@ -25,13 +26,13 @@ Pour la mise en place de communications sécurisée (protocole HTTPS au lieu de ...@@ -25,13 +26,13 @@ Pour la mise en place de communications sécurisée (protocole HTTPS au lieu de
## Conventions ## Conventions
Pour la suite de ce guide, les informations suivantes seront utilisées dans les exemples. Veillez à adapter à votre cas. Pour la suite de ce guide, les informations suivantes seront utilisées dans les exemples. Veillez à adapter à votre cas.
* nom du site web : `openbdoh.example.com` * nom du site web : `OPENBDOH.EXAMPLE.COM`
* compte non-privilégié : `devops` * compte non-privilégié : `DEVOPS`
* chemin d'installation : `/var/www/bdoh` * chemin d'installation : `/VAR/WWW/BDOH`
* mot de passe de la base de données : `MotDePasseOpenBDOH` * mot de passe de la base de données : `MotDePasseOpenBDOH`
* chemin de l'archive OpenBDOH : `/home/devops/bdoh-v4.0.2.tar.bz2` * chemin de l'archive OpenBDOH : `/home/DEVOPS/bdoh.tar.bz2`
Les commandes à exécuter sont indiquées dans des blocs comme ci-dessous. Il est prévu de les exécuter en tant que `devops`. Les commandes à exécuter sont indiquées dans des blocs comme ci-dessous. Il est prévu de les exécuter en tant que `DEVOPS`.
``` ```
echo "une commande" echo "une commande"
``` ```
...@@ -63,18 +64,18 @@ sudo apt-get install -yq acl apache2 cron libpq-dev nodejs php7.1 php7.1-apcu ph ...@@ -63,18 +64,18 @@ sudo apt-get install -yq acl apache2 cron libpq-dev nodejs php7.1 php7.1-apcu ph
## Installation d'OpenBDOH ## Installation d'OpenBDOH
```shell ```shell
sudo mkdir -p -m 02755 /var/www/bdoh sudo mkdir -p -m 02755 /VAR/WWW/BDOH
sudo chown devops:www-data /var/www/bdoh sudo chown DEVOPS:www-data /VAR/WWW/BDOH
tar xfj /home/devops/bdoh-v4.0.2.tar.bz2 --directory=/var/www/bdoh --strip-components=1 tar xfj /home/DEVOPS/bdoh-v4.0.2.tar.bz2 --directory=/VAR/WWW/BDOH --strip-components=1
``` ```
# Paramétrage de PostgreSQL # Paramétrage de PostgreSQL
* Configurer les modes de connexion : * Configurer les modes de connexion :
```shell ```shell
# Ajoute une ligne 'local all devops peer' après la ligne 'local ... postgres' # Ajoute une ligne 'local all DEVOPS peer' après la ligne 'local ... postgres'
# et remplace la ligne 'local all all peer' par 'local all all md5' # et remplace la ligne 'local all all peer' par 'local all all md5'
sudo sed -i \ sudo sed -i \
-e '/^local.*postgres/alocal all devops peer' \ -e '/^local.*postgres/alocal all DEVOPS peer' \
-e '/^local.*all.*all.*peer/clocal all all md5' \ -e '/^local.*all.*all.*peer/clocal all all md5' \
/etc/postgresql/11/main/pg_hba.conf /etc/postgresql/11/main/pg_hba.conf
``` ```
...@@ -82,16 +83,16 @@ sudo sed -i \ ...@@ -82,16 +83,16 @@ sudo sed -i \
```shell ```shell
sudo systemctl restart postgresql sudo systemctl restart postgresql
``` ```
* Créer les utilisateurs devops et bdoh : * Créer les utilisateurs DEVOPS et bdoh :
```shell ```shell
sudo -u postgres psql <<EOF sudo -u postgres psql <<EOF
CREATE USER devops SUPERUSER; CREATE USER DEVOPS SUPERUSER;
CREATE USER bdoh WITH PASSWORD 'MotDePasseOpenBDOH'; CREATE USER bdoh WITH PASSWORD 'MotDePasseOpenBDOH';
EOF EOF
``` ```
* Créer la base de données BDOH : * Créer la base de données BDOH :
```shell ```shell
psql template1 devops <<'EOF' psql template1 DEVOPS <<'EOF'
CREATE DATABASE bdoh ENCODING 'UTF8' LC_COLLATE "fr_FR.UTF-8" LC_CTYPE "fr_FR.UTF-8"; CREATE DATABASE bdoh ENCODING 'UTF8' LC_COLLATE "fr_FR.UTF-8" LC_CTYPE "fr_FR.UTF-8";
ALTER DATABASE bdoh SET search_path = "bdoh", "$user", public; ALTER DATABASE bdoh SET search_path = "bdoh", "$user", public;
\c bdoh \c bdoh
...@@ -106,15 +107,15 @@ sudo cp files/local_pg_dump /etc/cron.daily/ ...@@ -106,15 +107,15 @@ sudo cp files/local_pg_dump /etc/cron.daily/
sudo chmod 0555 /etc/cron.daily/local_pg_dump sudo chmod 0555 /etc/cron.daily/local_pg_dump
``` ```
# (Optionel) Accès rapide à la base de données pour l'utilisateur devops # (Optionel) Accès rapide à la base de données pour l'utilisateur DEVOPS
On configure les variables d'environnement PG* dans ~/.profile et on enregistre le mot de passe dans ~/.pgpass. On configure les variables d'environnement PG* dans ~/.profile et on enregistre le mot de passe dans ~/.pgpass.
```shell ```shell
echo "export PGDATABASE=bdoh PGUSER=devops PGHOST=/run/postgresql PGPORT=5432" >>~/.profile echo "export PGDATABASE=bdoh PGUSER=DEVOPS PGHOST=/run/postgresql PGPORT=5432" >>~/.profile
echo "localhost:5432:bdoh:bdoh:MotDePasseOpenBDOH" >~/.pgpass echo "localhost:5432:bdoh:bdoh:MotDePasseOpenBDOH" >~/.pgpass
chmod 0400 ~/.pgpass chmod 0400 ~/.pgpass
``` ```
# Environnement de l'utilisateur devops # Environnement de l'utilisateur DEVOPS
On configure les variables d'environnement SYMFONY_ENV et SYMFONY_DEBUG. On configure les variables d'environnement SYMFONY_ENV et SYMFONY_DEBUG.
```shell ```shell
echo "export SYMFONY_ENV=prod SYMFONY_DEBUG=0" >>~/.profile echo "export SYMFONY_ENV=prod SYMFONY_DEBUG=0" >>~/.profile
...@@ -125,7 +126,7 @@ echo "export SYMFONY_ENV=prod SYMFONY_DEBUG=0" >>~/.profile ...@@ -125,7 +126,7 @@ echo "export SYMFONY_ENV=prod SYMFONY_DEBUG=0" >>~/.profile
On ajoute un fichier de configuration pour l'outil logrotate : On ajoute un fichier de configuration pour l'outil logrotate :
```shell ```shell
sudo tee /etc/logrotate.d/bdoh <<EOF sudo tee /etc/logrotate.d/bdoh <<EOF
/var/www/bdoh/app/logs/*.log { /VAR/WWW/BDOH/app/logs/*.log {
weekly weekly
missingok missingok
rotate 52 rotate 52
...@@ -175,23 +176,23 @@ sudo npm install --global --production yarn ...@@ -175,23 +176,23 @@ sudo npm install --global --production yarn
# Déploiement de l'application # Déploiement de l'application
* Se placer dans le répertoire d'installation : * Se placer dans le répertoire d'installation :
```shell ```shell
cd /var/www/bdoh cd /VAR/WWW/BDOH
``` ```
* Installer les librairies * Installer les librairies
```shell ```shell
composer install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader --no-suggest composer install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader --no-suggest
yarn install --pure-lockfile yarn install --pure-lockfile
``` ```
* Configurer l'application. Pour cela, il faut modifier le fichier `/var/www/bdoh/app/config/parameters.yml` qui a été généré à l'étape précédente pour renseigner les paramètres tels ques : * Configurer l'application. Pour cela, il faut modifier le fichier `/VAR/WWW/BDOH/app/config/parameters.yml` qui a été généré à l'étape précédente pour renseigner les paramètres tels ques :
- `database_*` : les informations de connexion à la base de données, - `database_*` : les informations de connexion à la base de données,
- `mailer_*` : le informations de connexion au serveur STMP sortant, - `mailer_*` : le informations de connexion au serveur STMP sortant,
- `secret` : un "secret" pour la sécurisation des sessions, - `secret` : un "secret" pour la sécurisation des sessions,
- `theia_password_secret_key` : un "secret" pour la sécurisation des mots de passe Theia ; ce doit être une valeur de 32 octets en hexadécimal (i.e. 64 caractères), - `theia_password_secret_key` : un "secret" pour la sécurisation des mots de passe Theia ; ce doit être une valeur de 32 octets en hexadécimal (i.e. 64 caractères),
- `router.request_context.host` : le nom d'hôte. - `router.request_context.host` : le nom d'hôte.
- les paramètres `logo_long_web_link`, `logo_short_web_link` et `mini_logo_sonata` peuvent être modifiés pour afficher des logos ; le chemin est relatif à `/var/www/bdoh/web`. - les paramètres `logo_long_web_link`, `logo_short_web_link` et `mini_logo_sonata` peuvent être modifiés pour afficher des logos ; le chemin est relatif à `/VAR/WWW/BDOH/web`.
```shell ```shell
# Exemple : # Exemple :
cat >/var/www/bdoh/app/config/parameters.yml <<'EOF' cat >/VAR/WWW/BDOH/app/config/parameters.yml <<'EOF'
parameters: parameters:
database_driver: pdo_pgsql database_driver: pdo_pgsql
database_host: /run/postgresql database_host: /run/postgresql
...@@ -222,7 +223,7 @@ parameters: ...@@ -222,7 +223,7 @@ parameters:
logo_short_web_link: images/Logo_INRAE.png logo_short_web_link: images/Logo_INRAE.png
mini_logo_sonata: images/MiniLogo_INRAE_REPUBLIQUE.png mini_logo_sonata: images/MiniLogo_INRAE_REPUBLIQUE.png
router.request_context.host: 'openbdoh.example.com' router.request_context.host: 'OPENBDOH.EXAMPLE.COM'
EOF EOF
``` ```
* Régénérer le cache de Symfony * Régénérer le cache de Symfony
...@@ -237,14 +238,14 @@ yarn run encore production ...@@ -237,14 +238,14 @@ yarn run encore production
* Définir les permissions sur les dossiers : * Définir les permissions sur les dossiers :
```shell ```shell
mkdir -p app/{cache,logs,imports,exports} web/{uploads,css/themes} mkdir -p app/{cache,logs,imports,exports} web/{uploads,css/themes}
setfacl -R -m u:www-data:rwX -m u:devops:rwX app/{cache,logs,imports,exports} web/{uploads,css/themes} setfacl -R -m u:www-data:rwX -m u:DEVOPS:rwX app/{cache,logs,imports,exports} web/{uploads,css/themes}
setfacl -R -d -m u:www-data:rwX -m u:devops:rwX app/{cache,logs,imports,exports} web/{uploads,css/themes} setfacl -R -d -m u:www-data:rwX -m u:DEVOPS:rwX app/{cache,logs,imports,exports} web/{uploads,css/themes}
``` ```
* Appliquer les migrations de la base de données : * Appliquer les migrations de la base de données :
```shell ```shell
app/console doctrine:migrations:migrate --no-interaction --allow-no-migration --write-sql app/console doctrine:migrations:migrate --no-interaction --allow-no-migration --write-sql
# La commande a généré un fichier doctrine_migration_AAAAMMJJHHMMSS.sql, on l'exécute : # La commande a généré un fichier doctrine_migration_AAAAMMJJHHMMSS.sql, on l'exécute :
psql bdoh devops <doctrine_migration_*.sql psql bdoh DEVOPS <doctrine_migration_*.sql
``` ```
# Paramétrage d'Apache2 : # Paramétrage d'Apache2 :
...@@ -256,7 +257,7 @@ ServerName openbdoh.example.org ...@@ -256,7 +257,7 @@ ServerName openbdoh.example.org
CustomLog /var/log/apache2/openbdoh-access.log common CustomLog /var/log/apache2/openbdoh-access.log common
ErrorLog /var/log/apache2/openbdoh-error.log ErrorLog /var/log/apache2/openbdoh-error.log
DocumentRoot /var/www/bdoh/web DocumentRoot /VAR/WWW/BDOH/web
ServerTokens Prod ServerTokens Prod
ServerSignature Off ServerSignature Off
...@@ -265,7 +266,7 @@ Header set X-Content-Type-Options: "nosniff" ...@@ -265,7 +266,7 @@ Header set X-Content-Type-Options: "nosniff"
Header set X-XSS-Protection: "1; mode=block" Header set X-XSS-Protection: "1; mode=block"
Header set X-Frame-Options: "sameorigin" Header set X-Frame-Options: "sameorigin"
<Directory /var/www/bdoh/web> <Directory /VAR/WWW/BDOH/web>
SetEnv SYMFONY_ENV prod SetEnv SYMFONY_ENV prod
Require all granted Require all granted
AllowOverride None AllowOverride None
...@@ -298,7 +299,7 @@ sudo systemctl restart apache2 ...@@ -298,7 +299,7 @@ sudo systemctl restart apache2
## Installation de l'éxécuteur de jobs ## Installation de l'éxécuteur de jobs
* Installer le service bdoh-job-worker * Installer le service bdoh-job-worker
```shell ```shell
sudo cp /var/www/bdoh/app/config/bdoh-job-worker.service /etc/systemd/system/ sudo cp /VAR/WWW/BDOH/app/config/bdoh-job-worker.service /etc/systemd/system/
sudo chown root:root /etc/systemd/system/bdoh-job-worker.service sudo chown root:root /etc/systemd/system/bdoh-job-worker.service
sudo chmod 644 /etc/systemd/system/bdoh-job-worker.service sudo chmod 644 /etc/systemd/system/bdoh-job-worker.service
sudo systemctl daemon-reload sudo systemctl daemon-reload
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment