1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
.. -*- coding: utf-8 -*-
============
Installation
============
:Auteur: Étienne Loks
:Date: 2023-06-12
:Copyright: CC-BY 3.0
Ce document présente les instructions d'installation 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é, l'installer 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:: Sauf mention explicite, chaque commande est exécutée en tant qu'utilisateur root. Les utilisateurs de sudo l'ajouteront à chaque commande faite.
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`_ 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
.. _iggdrasil.list: http://deb.iggdrasil.net/apt/debian/dists/bullseye/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). Cette installation est conseillée si vous n'êtes pas juste en ressources serveur.
* **ishtar-libreoffice** : installe libreoffice en mode serveur pour faciliter des imports / exports aux formats bureautique. Il est nécessaire pour générer les tableaux depuis les types d'import. Ce paquet dépends 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:: 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::
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`_).
.. _`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 instances sont stockées dans le répertoire /srv/ishtar/le_nom_de_mon_instance.
Initialisation de la base de données
------------------------------------
Ishtar dispose de beaucoup de 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 inclues de base), 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-*
Mise à jour
-----------
Mise à jour version 3 (buster) vers la version 4 (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 medias associés juste avant de lancer la mise à jour.
Le changement de version nécessite préalablement la mise à jour vers la nouvelle version de Debian.
Pour faciliter cette mise à jour, si ceux-ci ont été installés, il est conseillé de purger en amont les paquet `ishtar-libreoffice`, `libreoffice` associés et `ishtar-tasks`::
apt purge ishtar-libreoffice ishtar-tasks libreoffice-*
apt autoremove
Ceux-ci pourront être réinstallé 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.
Sur cette nouvelle version, la gestion du service rabbitmq et des files associées n'est plus assurée via systemd mais via supervisor pour gérer cette migration supprimez les fichiers de configuration systemd 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
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`) et lancez la mise à jour ::
apt update
apt upgrade
apt dist-upgrade
Le paquet `python3-weasyprint` empêche parfois la mise à jour. 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` et `ishtar-tasks` ::
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 intérrompu (lancez le a minimum via un outil comme `screen`). Pour chaque instance dans le répertoire `/srv/ishtar/` ::
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
## nombre-de-processus dépend du processeur et du nombre de fil d'execution disponible
## plus y en a plus rapide est la conversion mais laissez quand même un peu de marge pour nepas rendre
## la machine inutilisable
./manage.py migrate_to_geo_v4 --process {nombre-de-processus}
La migration de systemd vers supervisor n'est pas gérée, seule les nouvelles instances ont un fichier supervisor créé à l'installation. La suppression des anciennes configuration puis la création des nouvelles se fait ainsi la gestion du service rabbitmq et des files associées n'est plus assurée via systemd mais via supervisor pour gérer cette migration supprimez les fichiers de configuration systemd résiduels et créez les fichiers de configuration 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 a priori terminée. En ce qui concerne le paramétrage, il est impératif de d'éditer les permissions pour accéder 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/ pour ajouter les permissions nécessaires.
Une fois que vous vous êtes assuré que tout est fonctionnel vous pourrez effacer l'ancien cluster postgresql correspondant à la version 11 ::
pg_dropcluster 11 main
..
TODO:
.. warning:: L'installateur présume que vous avez un nom de domaine dédié pour votre installation. Si cela n'est pas le cas, reportez vous à la section de la documentation concernée.
paramètres de settings utiles :DEFAULT_FROM_EMAIL = "robot@iggdrasil.net", SERVER_EMAIL EMAIL_HOST EMAIL_PORT EMAIL_HOST_USER EMAIL_HOST_PASSWORD EMAIL_USE_TLS
installation depuis les sources
|