Sites géologiques : GeoNode mutualisée¶
GeoSites est une manière d’exécuter plusieurs sites avec une seule instance de GeoNode. Chaque géosite peut avoir différents modèles, des applications, et les autorisations de données, mais partagent une seule base de données (utile pour partager des utilisateurs et des données des couches), GeoServer, et CSW. Ceci est utile lorsque plusieurs sites sont souhaités pour soutenir différents ensembles d’utilisateurs, mais avec un ensemble similaire de données et d’aspect et la convivialité des sites. Les utilisateurs peuvent être donnés la permission d’accéder à plusieurs sites, si nécessaire, qui permet également aux groupes d’administration peuvent être mis en place pour soutenir tous les sites avec un seul compte.
Site Web Master¶
Une installation de GEOSITES utilise un «maître» site de GeoNode qui a soms pages administratives supplémentaires pour faire de la gestion de données. Couches, cartes, documents, Utilisateurs et Groupes peuvent tous être ajoutés et supprimés à partir de différents sites. Les utilisateurs peuvent avoir accès à un certain nombre de sites, et les données peuvent apparaître sur un seul site, ou la totalité d’entre eux. En outre, si on le souhaite, tout ou partie des applications de Django installées sur les autres sites peuvent être ajoutés sur le site principal de fournir une interface administrative unique qui donne accès à toutes les applications. Le site principal ne doit pas être accessible de l’extérieur de sorte qu’il peut être utilisé comme un outil interne à l’organisme.
Utilisateurs créés sur un site particulier sont créés avec l’accès à tout ce site. Les données téléchargées sur un site particulier sont données la permission sur ce site ainsi que le site principal. Tout ajustement supplémentaire d’autorisations basé sur le site doit se faire sur le site de maître.
Database¶
Le site principal et tous les sites géologiques différents, partagent une base de données unique. Objets, y compris les utilisateurs, les groupes et les couches de données, tous apparaissent au sein de la base de données, mais un tableau de sites supplémentaires indique que les objets ont accès à quels sites. Les données géospatiales desservies par GeoServer (p. ex., de PostGIS) peuvent exister dans la base de données comme d’habitude, puisque GeoServer authentifiera contre GeoNode, qui utilise sa base de données pour déterminer les autorisations basé sur l’objet, l’utilisateur actuel et de l’emplacement.
GeoServer¶
Une seule instance de GeoServer est utilisée pour diffuser des données à tous les sites géologiques. Pour conserver des données organisées chaque site spécifie un espace de travail par défaut (DEFAULT_WORKSPACE) que GeoServer utilisera pour partitionner les données selon le site qui a transféré les données. Les espaces de travail eux-mêmes n’ont aucune incidence sur les autorisations, étant donné que les données peuvent être ajoutées et supprimées de différents sites, mais elle fournit au moins une certaine organisation des données basées sur le site initial.
Les données qui sont communes à tous les sites peuvent être ajoutées sur le site de maître qui apparaîtra dans l’espace de travail générique « geonode ».
Modèles et fichiers de paramètres¶
Un élément clé dans la gestion de plusieurs sites tient les données organisées et une série structurée de fichiers de paramètres afin que les paramètres communs peuvent être partagées et paramètres spécifiques du site seulement sont séparés. Il est également préférable d’importer les paramètres de GeoNode par défaut de l’installation de GeoNode. Cela empêche les paramètres de l’obligation de mettre à niveau manuellement si il n’y a aucun changement de valeur par défaut les paramètres de GeoNode.
Les paramètres qui sont communs à tous les sites géologiques, mais diffèrent de la valeur par défaut GeoNode, sont séparés dans un fichier master_settings.py. Ensuite, chaque site a des fichier de paramètres qui importe à partir du site principal et ensuite seulement faut préciser une petite sélection qui rendent ce site unique, tels que :
SITE_ID : Chacun est unique, le site principal devrait avoir un SITE_ID 1.
- SITENAME
- SITEURL
ROOT_URLCONF : C’est peut-être en option. Le site principal url.conf peut être configuré pour importer automatiquement les urls.py de tous les SITE_APPS, donc une ROOT_URLCONF différente n’est nécessaire que s’il existe d’autres différences.
SITE_APPS : Contenant les applications propres au site
Paramètres d’application: toutes les autres paramètres requis pour les sites susmentionnés
Autres paramètres spécifiques au site, tels que REGISTRATION_OPEN
Un géosite a donc trois couches des importations, qui est utilisé pour les paramètres ainsi que le chemin de recherche pour les modèles. Il utilise d’abord les fichiers de site individuel, puis le capitaine géosite, puis par défaut GeoNode. Ceux-ci sont spécifiés via les variables définies dans les paramètres :
SITE_ROOT : Le répertoire où les fichiers et les paramètres spécifiques du site sont situés (modèles, statique)
PROJECT_ROOT : Le répertoire racine de tous les sites géologiques qui devrait inclure le fichier de paramètres globaux ainsi que les modèle et les fichiers statiques
GEONODE_ROOT : Le GeoNode répertoire.
Le TEMPLATE_DIRS et STATICFILES_DIRS comportera ensuite tous les trois répertoires comme le montre:
TEMPLATE_DIRS = (
os.path.join(SITE_ROOT, 'templates/'),
os.path.join(PROJECT_ROOT,'templates/'), # files common to all sites
os.path.join(GEONODE_ROOT, 'templates/')
)
STATICFILES_DIRS = (
os.path.join(SITE_ROOT, 'static/'),
os.path.join(PROJECT_ROOT, 'static/'),
os.path.join(GEONODE_ROOT, 'static/')
)
À la fin de la settings_global.py les variables suivantes seront appliqués basés à paramètres spécifiques du site:
STATIC_URL = os.path.join(SITEURL,’static/’)
GEONODE_CLIENT_LOCATION = os.path.join(STATIC_URL,’geonode/’)
GEOSERVER_BASE_URL = SITEURL + ‘geoserver/’
if SITE_APPS:
INSTALLED_APPS += SITE_APPS
Modèles et des fichiers statiques¶
Comme mentionné ci-dessus, pour chaque site il trois répertoires servira de modèle et les fichiers statiques. Le premier fichier de la template trouvé sera celui utilisé pour les modèles dans le répertoire SITE_ROOT/templates remplaceront ceux dans PROJECT_ROOT/templates, lesquels remplaceront ceux dans GEONODE_ROOT/templates.
Statique fichiers travail différemment parce que (au moins sur un serveur de production) elles sont collectées et stockées dans un seul endroit. En raison de ces soins doivent être prises pour éviter la réécriture de fichiers entre sites, donc chaque répertoire de site doit contenir tous les fichiers statiques dans un sous-répertoire portant le nom du site (p. ex., static/siteA/logo.png)
L’emplacement du répertoire statique approprié puis on trouvera dans la syntaxe de modèles tels que:
{{ STATIC_URL }}{{ SITENAME|lower }}/logo.png
Autorisations de Site¶
Par défaut, GeoNode est accessible au public. Dans le cas de sites géologiques, les nouvelles données seront accessibles au public, mais seulement pour le site à qu’il a été ajouté et le site principal (toutes les données est ajouté au site principal).
Ajout de nouveaux Sites¶
Une commande de gestion existe pour facilement créer un nouveau site. Cela va créer tous les répertoires nécessaires, mais aussi un fichier de paramètres spécifiques du site. La commande peut également créer un fichier de configuration de site Web.