Gestion:Infrastructure

De Wikimedica
Les statistiques d'utilisation peuvent être consultées à stats.wikimedi.ca.

Cette page donne les détails des procédures de l'administration de l'infrastructure informatique de Wikimedica. Les administrateurs système sont:

Pour de plus amples informations concernant la configuration logicielle de ce wiki, veuillez vous référer à la page Spécial:Version.

Description

Wikimedica est hébergé sur un Koozali SME Server 10, basé sur Centos 7, dans une machine virtuelle. Le serveur matériel (Intel Xeon D1540 2/2.6 Ghz 8 coeurs et 16 threads, 64 GB RAM et 2×450 GB SSD NVMe Soft RAID) est entièrement occupé par Wikimedica et est hébergé à Beauharnois (Québec) par la société OVH.

Il existe deux versions de Wikimedica:

  1. La version de production, disponible à wikimedi.ca.
  2. La version mirroir de développement/test, disponible à test.wikimedi.ca et protégée par un .htpasswd (test / testtest) afin d'éviter son indexage.

Les services en place sont les suivants:

  1. Une base de données MariaDB.
  2. Un serveur ElasticSearch.
  3. Un serveur mw-serve pour la génération de livres PDF.

Historique

Ce wiki a été initialement hébergé par Utilisateur:Antoine Mercier-Linteau sur un serveur partagé CentOS 7.3 fourni par Webfaction à Amsterdam aux Pays-Bas.

Par la suite, il a été hébergé sur un Koozali SME Server 9.2, basé sur Centos 6, dans une machine virtuelle dédiée au projet par Jean-Philippe Pialasse. Le serveur matériel (64GB Ram, 4 x 2TO SATA (RAID 1 x 2), Intel Xeon ES-1630 3.70 Ghz 2 core), partagé avec d'autres projets, était hébergé à Beauharnois (Québec) par la société OVH via leurs offres soyoustart.

Tâches

Créer une nouvelle tâche
À faire 6 / 14
En cours 6 / 12
En test 2 / 14
Terminées 38 / 52
- Type Priorité Titre Responsable(s) État Création
139 Tâche Urgente Installer le nouveau créateur de livre Jppialasse, Antoine Mercier-Linteau À faire 21 août 2018
327 Bogue Urgente Courriels à @ulaval.ca bloqués Antoine Mercier-Linteau En cours 7 avril 2020
584 Bogue Urgente Créateur de livre ne fonctionne pas pour l'externat Antoine Mercier-Linteau En test 1 septembre 2022
606 Amélioration Urgente Application TWA Android Antoine Mercier-Linteau À faire 30 janvier 2023
643 Amélioration Urgente Certification de la plateforme par la direction des ressources informatique du CISSS-CA Jppialasse, Antoine Mercier-Linteau En cours 31 janvier 2024
653 Bogue Urgente Diminuer les warning PHP Antoine Mercier-Linteau En cours 28 février 2024
234 Tâche Normale Gestion des bounces de courriel Jppialasse, Antoine Mercier-Linteau En cours 21 mars 2019
293 Amélioration Normale Simplification du processus de déploiement de la plateforme Jppialasse, Antoine Mercier-Linteau, Mathieu Salaün À faire 19 novembre 2019
460 Amélioration Normale Mesurer l'utilisation de la plateforme avec Google Analytics Jppialasse, Antoine Mercier-Linteau À faire 8 mai 2021
540 Amélioration Normale Authentification des pharmaciens Antoine Mercier-Linteau En cours 25 janvier 2022
543 Amélioration Normale Mise à jour de MediaWiki à la version 1.40 et migration du serveur Antoine Mercier-Linteau En test 11 février 2022
635 Tâche Normale Mise à jour de MediaWiki à la version 1.40.1 À faire 13 décembre 2023
345 Amélioration Basse Migrer le stockage Semantic MediaWiki vers SPARQL Antoine Mercier-Linteau À faire 28 février 2020
Voir les tâches terminées...

Courriel organisationnel

Pour obtenir un courriel organisationnel, en faire la demande auprès des administrateurs système. L'adresse courriel qui vous sera assignée sera de la forme prénom.nom@wikimedi.ca. Le mot de passe initial vous sera fourni par un administrateur. Vous serez ensuite invités à aller le changer en vous rendant à https://wikimedi.ca/user-password.

Informations serveur
Protocole Adresse Sécurité Port Utilisateur Mot de passe
Courriel entrant IMAP wikimedi.ca SSL / TLS 993 prénom.nom Votre mot de passe.
Courriel sortant SMTP wikimedi.ca SSL / TLS 465 prénom.nom Votre mot de passe.

Statistiques

Des statistiques de traffic sont compilées pour la plateforme avec Matomo, elles sont disponibles à stats.wikimedi.ca.

Outils

Procédures

Mise à jour logicielle

Cette section explique la procédure de mise à jour de l'infrastructure informatique de Wikimedica. Idéalement, il est préférable de faire la mise à jour sur le serveur de test, de tester les fonctionnalités clés, puis d'appliquer les changements sur le serveur de production.

Changement de version majeure

Lors d'un changement de version majeur de MediaWiki, il est indiqué de suivre ces étapes:

Au préalable, faire un dump de la base de donnée:

sudo mysqldump --socket=/var/lib/mysql/mariadb105.sock wikimedica > wikimedica.dump

Puis:

git fetch
git checkout <branchname> --force # REL1_34 par exemple, pour suivre la nomenclature de nommage des version de MediaWiki
git submodule foreach 'git fetch origin' # Mise à jour de tous les sous modules git (extensions de base, skins, etc.) 
git submodule foreach 'git checkout <branchname> --force' # Changement à la version choisie pour les sous-modules
find extensions -maxdepth 1 -type d -exec sh -c '(cd {} && git fetch)' ';' # Mise à jour du dépôt des extensions ajoutées
find extensions -maxdepth 1 -type d -exec sh -c '(cd {} && git checkout <branchname> --force)' ';' # Changement à la version choisie pour les extensions ajoutées
/usr/bin/php82 -d allow_url_fopen=1 composer.phar update --no-dev #--no-plugins peut être ajouté si composer se plaint d'un problème de compatibilité
/usr/bin/php82 -d allow_url_fopen=1 composer.phar require mediawiki/semantic-media-wiki # Réinstallation de SMW (supprimé lors de la mise à jour initiale)
/usr/bin/php82 composer.phar require geoip2/geoip2 # Pour WikimedicaAccount
/usr/bin/php82 composer.phar require google/cloud-translate:^1.2 # Pour ContentImporter
Attention !
S'assurer que les identifiants sont les bons /extensions/LocalSettings/db.php si c'est le serveur de test qui est mis à jour.
/usr/bin/php82 maintenance/run.php update[note 1]
Vérifiez que le dossier suivant existe toujours afin de pouvoir renouveler le certificat SSL du wiki : /home/e-smith/files/ibays/Primary/html/.well-known/acme-challenge

VisualEditor

L'extension VisualEditor a aussi besoin que l'on mette à jour ses sous-modules:

cd extensions/VisualEditor
git submodule update

Mise à jour des services satellites

Elasticsearch

Il se peut qu'après un changement de version d'Elastisearch, il faille forcer le réindexage des pages de Wikimedica en raison d'un bogue avec l'indexation des pages Scribunto (voir Wikimedica:Tâches/Liste/140).

/user/bin/php82 extensions/CirrusSearch/maintenance/forceSearchIndex.php

Resynchronisation du serveur de test

Images

sudo rm -rf /home/e-smith/files/ibays/test/html/images/*
sudo cp -a /home/e-smith/files/ibays/Primary/html/images/. images/

Extensions

sudo rm -rf /home/e-smith/files/ibays/test/html/extensions/*
sudo cp -a /home/e-smith/files/ibays/Primary/html/extensions/. extensions/
Attention !
S'assurer de restituer les bonnes informations dans /extensions/LocalSettings/db.php.

Base de données

mysqldump --socket=/var/lib/mysql/mariadb105.sock -u wikimedica -p wikimedica > wikimedica.dump
mysql --socket=/var/lib/mysql/mariadb105.sock -u wikimedicatest -p wikimedicatest < wikimedica.dump
rm wikimedica.dump

LocalSettings.php

Le fichier LocalSettings.php est conservé dans un dépôt git.

cd extensions/LocalSettings
git pull

Fonctionnalités à tester

Durant les tests, la console de déboggage du navigateur doit être ouverte afin d'attraper les erreurs javascript.

  1. Édition d'article avec l'ÉditeurVisuel
  2. Téléversement d'images avec l'ÉditeurVisuel
  3. Affichage d'une page avec des fonctionnalités sémantiques (ex: Wikimedica:Tâches)
  4. Création d'une page avec un formulaire (ex: création d'une tâche)
  5. Génération de livres PDF
  6. Tours guidés

Déploiement d'une version locale vers le serveur

  1. Rétablir le .htaccess à la racine (et s'assurer que l'URL /extensions donne un 403)

Débogage du générateur de PDF

Le générateur de PDF plante souvent, voici des commandes utiles pour le déboguer.

Contrôle scripts sudo systemctl stop nslave; sudo systemctl stop nserve; sudo systemctl stop mw-qserve
Script des services /etc/systemd/system/nserve|nslave|mw-qserve.service
Logs /var/log/mediawiki/
Quel process utilise un port ? sudo lsof -i :20361
Affichage des logs journalctl -u nslave.service -u nserve.service -u mw-qserve.service -f
Tester le rendu en commandline mw-render -w rl --output py.pdf -c https://sme10.wikimedi.ca/ --collectionpage=Externat/Livre/Chirurgie

Gérer les jails de fail2ban

Se fait avec la commande sfail2ban.

Notes

  1. Si update.php donne des erreurs de version de paquet incongrues, utiliser --skip-external-dependencies