summaryrefslogtreecommitdiff
path: root/docs/fr/administrateur-serveur.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/fr/administrateur-serveur.md')
-rw-r--r--docs/fr/administrateur-serveur.md285
1 files changed, 285 insertions, 0 deletions
diff --git a/docs/fr/administrateur-serveur.md b/docs/fr/administrateur-serveur.md
new file mode 100644
index 000000000..b988bbe34
--- /dev/null
+++ b/docs/fr/administrateur-serveur.md
@@ -0,0 +1,285 @@
+Administration serveur
+======================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2023-06-12
+
+Copyright
+
+: CC-BY 3.0
+
+Ce document présente les instructions d\'installation et de mise à jour
+d\'Ishtar.
+
+Seule l\'installation sous Debian GNU/linux via le paquet Debian est
+décrite. Cet environnement est le seul sous lequel un suivi de sécurité
+et des dysfonctionnements est assuré, installer Ishtar hors de cet
+environnement est déconseillé.
+
+Un nom de domaine dédié est nécessaire pour chaque instance (une
+instance Ishtar n\'est pas installable dans un sous-répertoire). Par
+contre un sous-domaine est tout à fait utilisable (par exemple :
+*ishtar.mon-domaine.net*).
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Sauf mention explicite, chaque commande est exécutée en tant
+qu\'utilisateur root. Les utilisateurs de sudo l\'ajouteront à chaque
+commande.
+:::
+
+Installation sur serveur Debian Bullseye
+----------------------------------------
+
+Un dépôt a été mis en place pour installer sous Debian Bullseye. Ce
+dépôt est signé, pour ajouter la clé du dépôt à votre gestionnaire de
+paquet, lancez la commande :
+
+ wget -O - http://deb.iggdrasil.net/iggdrasil.gpg.key | apt-key add -
+
+Puis, au choix, ajoutez le dépôt à votre /etc/apt/sources.list :
+
+ deb http://deb.iggdrasil.net/apt/debian/ bullseye main
+ deb-src http://deb.iggdrasil.net/apt/debian/ bullseye main
+
+Ou sauvegardez le fichier
+[iggdrasil.list](http://deb.iggdrasil.net/apt/debian/dists/bullseye/iggdrasil.list)
+dans votre répertoire **/etc/apt/sources.list.d/** :
+
+ wget -O - http://deb.iggdrasil.net/apt/debian/dists/bullseye/iggdrasil.list > /etc/apt/sources.list.d/iggdrasil.list
+
+Ensuite mettez à jour la base de données de votre gestionnaire de paquet
+et installez le paquet :
+
+ apt update
+ apt install python3-django-ishtar
+
+Deux paquets optionnels peuvent être installés :
+
+- **ishtar-tasks** : installe un service de tâche pour gérer en tâche
+ de fond les opérations longues (par exemple les imports).
+ L\'installation de ce paquet est vivement conseillée sauf si votre
+ serveur a une mémoire vive limitée (par exemple nano-ordinateur).
+- **ishtar-libreoffice** : installe libreoffice en mode serveur pour
+ faciliter des imports / exports aux formats bureautique. Ce paquet
+ est nécessaire pour générer les tableaux depuis les types d\'import.
+ Il dépend de la version libreoffice-nogui : la couche graphique
+ n\'est pas installée sur le serveur.
+
+Enfin pour créer une nouvelle instance d\'Ishtar :
+
+ ishtar-prepare-instance
+
+Un ensemble de questions vous sera posé afin de déterminer les
+paramètres qui concernent cette instance.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Le nom de domaine doit bien entendu pointer vers l\'adresse IP du
+serveur. Si à l\'issue de l\'installation, le service n\'est pas
+joignable, verifiez bien votre configuration DNS ou le cas échéant
+verifez bien auprès du gestionnaire de nom de domaine que c\'est le cas.
+:::
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+En termes de serveur Web, l\'installateur fonctionne avec la
+configuration que nous considérons comme la plus optimisée qui est le
+couple nginx / uwsgi. Si vous avez des services tournant sous Apache ou
+sous un autre serveur web, plusieurs options se présentent à vous :
+
+- faire fonctionner nginx sur un autre port ;
+- faire fonctionner vos autres services avec nginx (je vous laisse
+ découvrir l\'abondante documentation en ligne en cherchant « nginx +
+ le nom de mon service ») ;
+- configurer Ishtar pour fonctionner avec votre serveur web
+ (référez-vous à la [documentation de
+ Django](https://docs.djangoproject.com/fr/2.2/howto/deployment/wsgi/)).
+:::
+
+L\'installateur vous demandera un identifiant / mot de passe pour le
+compte administrateur. Une fois l\'instance préparée, une base de
+données a été créée avec un nom du type
+ishtar-le\_nom\_de\_mon\_instance (le nom que vous avez donné), Ishtar
+est joignable à l\'adresse donnée par la variable URL et les données de
+cette instance sont stockées dans le répertoire
+/srv/ishtar/le\_nom\_de\_mon\_instance.
+
+Initialisation de la base de données
+------------------------------------
+
+Ishtar dispose de nombreuses tables de paramétrage permettant d\'avoir
+un logiciel au plus proche de vos besoins. Remplir toutes ces tables est
+fastidieux, c\'est pour cela que des jeux de données de base sont
+disponibles. Lors de l\'installation du paquet, à l\'exception des
+communes (trop lourdes pour être incluses par défaut), cette
+initialisation est faite.
+
+### Initialisation des communes
+
+Une liste des communes française peut être téléchargée et chargée :
+
+ cd /tmp
+ wget "http://ishtar-archeo.net/fixtures/initial_towns-fr.tar.bz2"
+ tar xvjf initial_towns-fr.tar.bz2
+
+ ISHTAR_PATH=/srv/ishtar # répertoire par défaut de l'installation pour le paquet Debian
+ PROJECT_PATH=$ISHTAR_PATH/le_nom_de_mon_instance
+ cd $PROJECT_PATH
+ ./manage.py loaddata /tmp/towns_norel-fr.json
+ ./manage.py loaddata /tmp/towns-fr.json
+ rm /tmp/initial_towns-fr.tar.bz2
+ rm /tmp/towns-*
+
+Mises à jour
+------------
+
+### Mise à jour version 3 (sur Debian Buster) vers la version 4 (sur Debian Bullseye)
+
+Comme lors de toute migration non triviale, il est préférable de faire
+une sauvegarde de la base de données et des médias associés juste avant
+de lancer la mise à jour.
+
+Le changement de version nécessite préalablement la mise à jour vers la
+version de Debian 11 Bullseye.
+
+Pour faciliter cette mise à jour, si ceux-ci ont été installés, il est
+conseillé de purger en amont les paquets optionnels
+[ishtar-libreoffice]{.title-ref} et [ishtar-tasks]{.title-ref} ainsi que
+tous les paquets [libreoffice]{.title-ref} :
+
+ apt purge ishtar-libreoffice ishtar-tasks libreoffice-*
+ apt autoremove
+
+Ceux-ci pourront être réinstallés une fois la mise à jour vers Bullseye
+finie.
+
+Éteignez les services web et ensuite procédez à la mise à jour de Debian
+selon la documentation Debian officielle (ou votre protocole/vos
+habitudes). Ne changez pas tout de suite le fichier source list (ou les
+lignes) correspondant au dépôt Ishtar.
+
+Ensuite vous pouvez opérer la migration de la base de données PostgreSQL
+vers la version 13 :
+
+ systemctl stop postgresql
+ pg_dropcluster 13 main
+ pg_upgradecluster -m dump 11 main # utiliser "dump" pour éviter les complications avec postgis
+ systemctl start postgresql
+
+Mettez à jour vers Bullseye le dépôt correspondant à Ishtar (a priori
+dans le fichier [/etc/apt/sources.list.d/iggdrasil.list]{.title-ref}) et
+lancez la mise à jour :
+
+ apt update
+ apt upgrade
+ apt dist-upgrade
+
+Le paquet [python3-weasyprint]{.title-ref} empêche parfois la mise à
+jour (à cause d\'un conflit de version). Dans ce cas, le supprimer
+explicitement et relancer le paramétrage :
+
+ apt remove python3-weasyprint
+ apt --fix-broken install
+
+Pour finaliser la mise à jour des paquets, supprimer les paquets
+obsolètes :
+
+ apt autoremove
+
+Vous pouvez ensuite, le cas échéant, ré-installer les paquets
+[ishtar-libreoffice]{.title-ref} et [ishtar-tasks]{.title-ref} :
+
+ apt install ishtar-tasks ishtar-libreoffice
+
+On peut ensuite passer à la migration des données. Attention cette
+migration peut être longue (plusieurs heures), assurez-vous que le
+processus de migration ne soit pas interrompu (a minima lancez-le via un
+outil comme [screen]{.title-ref}). Pour chaque instance, dans le
+répertoire [/srv/ishtar/]{.title-ref} lancez les commandes :
+
+ cd /srv/ishtar/{le_nom_de_mon_instance}
+ # mise à jour des données par défaut
+ ./manage.py loaddata /usr/share/python3-django-ishtar/fixtures/initial_data-auth-fr.json
+ ./manage.py loaddata /usr/lib/python3/dist-packages/archaeological_files/fixtures/initial_data-fr.json
+ # migration des données pour la nouvelle gestion géographique
+ editor local_settings.py
+ (...) # à la fin du fichier ajouter les lignes
+ ISHTAR_MIGRATE_V4 = True
+ USE_BACKGROUND_TASK = False
+
+ ## nombre-de-processus dépend du processeur et du nombre de fils d'exécution disponible
+ ## plus il y en a, plus rapide est la conversion mais laissez quand même un minimum de marge
+ ## pour ne pas rendre la machine inutilisable
+ ./manage.py migrate_to_geo_v4 --process {nombre-de-processus}
+ # une fois la migration finie
+ editor local_settings.py
+ (...) # supprimer les deux lignes ajoutées
+
+Si vous utilisez [ishtar-tasks]{.title-ref}, sur cette nouvelle version
+la gestion du service [rabbitmq]{.title-ref} n\'est plus assurée via
+[systemd]{.title-ref} mais via [supervisor.]{.title-ref} La migration de
+[systemd]{.title-ref} vers [supervisor]{.title-ref} n\'est pas gérée
+automatiquement via le paquet, seules les nouvelles instances ont un
+fichier [supervisor]{.title-ref} créé à l\'installation. Pour gérer
+cette migration supprimez les fichiers de configuration
+[systemd]{.title-ref} résiduels :
+
+ rm -f /etc/systemd/system/rabbitmq-notify-email\@.service
+ rm -f /etc/systemd/system/rabbitmq-server.service
+ rm -f /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service
+
+Puis créez les fichiers de configuration [supervisor]{.title-ref} pour
+chaque instance :
+
+ rm -f /etc/monit/conf-enabled/celery-*
+ rm -f /etc/systemd/system/celery-*
+ rm -f /etc/systemd/system/multi-user.target.wants/celery-*
+
+ # pour chaque instance listée dans /etc/ishtar/instances
+ editor /etc/supervisor/conf.d/celery_le_nom_de_mon_instance.conf
+
+ [program:celery_le_nom_de_mon_instance]
+ command=/usr/bin/celery -A le_nom_de_mon_instance worker --loglevel=INFO -c 6
+ directory=/srv/ishtar/
+ user=www-data
+ autostart=true
+ autorestart=true
+ stdout_logfile=/var/log/celery/le_nom_de_mon_instance.log
+ redirect_stderr=true
+ stopasgroup=true
+
+ supervisorctl reread # prise en compte des nouveaux fichiers de configuration
+ supervisorctl update # mise à jour
+
+La migration est terminée. Redémarrez la machine et assurez-vous que
+tous les services fonctionnent convenablement en particulier via les
+commandes [systemctl \--failed]{.title-ref} et [supervisorctl
+status]{.title-ref}.
+
+En ce qui concerne le paramétrage, il est impératif de modifier les
+types de droits utilisateurs pour l\'accès aux données géographiques.
+Ouvrez votre instance sur un navigateur web en admin et rendez-vous à la
+page :
+[http(s)://{my-ihstar}/admin/ishtar\_common/profiletypesummary/]{.title-ref}
+pour ajouter les permissions nécessaires.
+
+Une fois que vous vous serez assuré que tout est fonctionnel, vous
+pourrez effacer l\'ancien cluster PostgreSQL correspondant à la version
+11 :
+
+ pg_dropcluster 11 main