publik-infra/exploitation.md

8.9 KiB
Raw Blame History

Notice dexploitation

Ce document constitue la notice lexploitation dun système Publik standard. Des adaptations sont naturellement à envisager en fonction des besoins particuliers.

Rappels

Vous trouverez une documentation complète et spécifique à larchitecture et à linstallation de Publik dans les documents intitulés : Publik Architecture technique et Publik Installation. Les notes qui suivent en donnent un aperçu.

Architecture

Une infrastructure type de Publik est composée des machines suivantes :

  • un service frontal de répartition de charge (proxy),
  • deux serveurs d'application (web1 et web2),
  • un serveur de base de données sql (Postgres),
  • un serveur de fichier (partage NFS).

Une requête Publik chemine par les services suivants :

  • proxy :

    • reçoit la requête et la transmet vers un serveur dapplication,
    • est en charge de la terminaison SSL (et dispose de certificat qui couvre l'ensemble des systèmes),
    • est en charge de la répartition de la charge et la la tolérance aux pannes
  • web1 et web2 :

    • ont des installations identiques au niveau logiciel,
    • disposent des composants Publik,
    • interrogent la base de donnée et transfèrent les fichiers en fonction des niveaux daccès des utilisateurs.
  • Postgres

    • enregistre et restitue les données des applications,
    • il est courant dutiliser une installation à deux machines identiques avec une réplication de type master/slave.
  • NFS

    • fournit linterface de stockage pour les fichiers partagés.

Liste des modules applicatifs potentiels de Publik :

  • Authentic : gestion des identités, IdP (identity provider),
  • Combo : CMS pour portails usager et agent (porte dentrée de Publik),
  • w.c.s. : formulaires et workflows,
  • Passerelle : connecteurs vers systèmes tiers,
  • Fargo : porte-documents,
  • Corbo : diffusion de messages,
  • Chrono : prise de rendez-vous,
  • Welco : interface de saisie (multi-canal),
  • Hobo : système de déploiement et de provisionning,
  • Bijoe : élaboration et production de rapports statistiques,
  • Chrono : gestion d'inscriptions et rendez-vous

Structure dune brique

Une brique Entrouvert est un paquet Debian standard issu dun module Python standard. Cest un logiciel libres dont vous pouvez obtenir et modifier les sources selon vos besoins. Les fichiers dinstallation sont posés dans /var/lib/mabrique, et les fichiers de configuration sont placés dans /etc/mabrique. Les services et les journaux des briques sont pilotés par systemd.

Pour certaines briques nous créons un lien symbolique depuis /var/lib/mabrique/documents vers un montage NFS.

Notice d'exploitation

Pilotage du frontal HTTP

C'est le service Nginx qui gère les requêtes HTTP, son pilotage se fait de façon classique :

# service nginx stop

# service nginx start

# service nginx restart

À noter que lorsqu'un service Publik est coupé, Nginx renvoie des erreurs 502 Bad Gateway. HAProxy réagit alors en tentant la requête sur l'autre machine. Si l'autre répond aussi 502, HAProxy peut afficher un message de maintenance.

Pilotage des services de Publik

Tous les services sont pilotables avec le système service fourni par Debian.

Liste des services Publik en place :

  • hobo : système de déploiement et de provisionning
  • authentic2-multitenant : gestion d'identité et websso
  • combo : CMS des portails usager et agent
  • wcs : moteur de démarches (formulaires et workflows)
  • passerelle : hub de webservices
  • fargo : porte-document
  • supervisor (cas particulier pour le pilotage de hobo-agent, sous-service hobo qui sera bientôt piloté directement par systemd)

Pour exemple, pilotage du service combo (portails) :

# service combo stop

# service combo start

# service combo restart

S'agissant d'une installation dual, ces actions doivent être effectuées sur les deux machines.

Attention : si un service de Publik est démarré ou redémarré alors que PostgreSQL n'est pas disponible, ce démarrage ne fonctionnera pas. Il faudra redemander le démarrage explicitement.

Note: la migration de tous les composants de Publik vers systemd est en cours et sera terminé avant fin 2017.

Journaux des événements (logs)

Lhistorique des événements applicatifs est accessible via l'outil journalctl. Par exemple pour suivre les événements de combo :

# journalctl -fu combo

Pour suivre l'ensemble des composants :

# journalctl -f -u combo -u authentic2-multitenant -u wcs -u fargo -u hobo -u supervisor

Les logs HTTP sont ceux de nginx, fichiers textes rangés par service dans /var/log/nginx :

/var/log/nginx/authentic2-multitenant-access.log

/var/log/nginx/authentic2-multitenant-error.log

/var/log/nginx/bijoe-access.log

/var/log/nginx/bijoe-error.log

/var/log/nginx/combo-access.log

/var/log/nginx/combo-error.log

/var/log/nginx/fargo-access.log

/var/log/nginx/fargo-error.log

/var/log/nginx/hobo-access.log

/var/log/nginx/hobo-error.log

/var/log/nginx/passerelle-access.log

/var/log/nginx/passerelle-error.log

/var/log/nginx/wcs-access.log

/var/log/nginx/wcs-error.log

Exemple pour suivre ce qui concerne combo :

# tail -f /var/log/nginx/combo-*.log

Mise à jour des composants

Fréquence de mise à jour

Entr'ouvert livre une nouvelle version de Publik les soirs des 2ème et 4ème jeudi de chaque mois. L'installation peut être faite aussitôt, mais nous conseillons à des hébergeurs tiers non infogérés par Entr'ouvert de faire la mise à jour le mardi suivant.

La mise à jour provoque une courte indisponibilité du système : elle doit être faite sur des heures de faible affluence. Pour information, Entr'ouvert effectue ces mises à jour autour de 22 ou 23h le jeudi soir, en attendant une baisse de la fréquentation visible dans les logs nginx.

Déroulé en installation double (load-balancing)

S'agissant d'une installation double (load-balancing entre web1 et web2), la procédure générale à suivre est :

  1. arrêt du frontal nginx sur web2 ⇒ HAProxy envoie tout sur web1,
  2. vérifier que PostgreSQL est bien fonctionnel,
  3. mise à jour de web1 (procédure ci-dessous),
  4. vérification du fonctionnement du site (parcours de 3 ou 4 URLs),
  5. mise à jour de web2,
  6. relance du frontal nginx sur web2,
  7. vérification du fonctionnement du site (parcours de 3 ou 4 URLs).

Attention : si un service de Publik est redémarré alors que PostgreSQL n'est pas disponible, ce démarrage ne fonctionnera pas. Il faudra redemander le démarrage explicitement. Ceci signifie qu'il est très fortement conseillé de faire la mise à jour de Publik indépendamment de celle de PostgreSQL. Entr'ouvert conseille de faire la mise à jour de PostgreSQL avant les composants de Publik.

Les composants de Publik sont livrés sous forme de paquet Debian, leur mise à jour suit la procédure classique :

# apt update

# apt upgrade

Il est cependant possible qu'une nouvelle version demande l'installation d'une nouvelle dépendance, dans ce cas « apt upgrade » refusera la mise à jour et il faudra la forcer par :

# apt full-upgrade

En cas de doute, contacter support@entrouvert.com

Mise à jour PostgreSQL

La mise à jour de PostgreSQL peut être faite à chaud selon les procédures Debian normales. Durant la mise à jour, les services ne fonctionneront pas (réponses 5xx) et HAProxy délivrera une erreur « maintenance ». Dès le redémarrage de PostgreSQL, les services Publik rétabliront les connexions vers le serveur SQL et le système sera à nouveau utilisable.

Attention : si un service de Publik est démarré ou redémarré alors que PostgreSQL n'est pas disponible, ce démarrage ne fonctionnera pas. Il faudra redemander le démarrage explicitement.

Support

Les moyens de contact pour le support sont :