« Gestion:Infrastructure » : différence entre les versions
(Instructions sur comment arrêter et démarrer parsoid et intructions pour restbase) |
(→Mise à jour logicielle : mise à jour version de PHP et socket MariaDB) |
||
(41 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== Mise à jour logicielle == | {{Encart|type=information|contenu=Les statistiques d'utilisation peuvent être consultées à [https://stats.wikimedi.ca 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: | ||
*[[Utilisateur:Jppialasse|Jean-Philippe Pialasse]] ([[Discussion utilisateur:Jppialasse|discussion]]) | |||
*[[Utilisateur:Antoine Mercier-Linteau|Antoine Mercier-Linteau]] ([[Discussion utilisateur:Antoine Mercier-Linteau|discussion]]) | |||
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 [https://wiki.koozali.org/ 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é [https://www.ovh.com/ OVH]. | |||
Il existe deux versions de Wikimedica: | |||
#La version de production, disponible à [https://wikimedi.ca wikimedi.ca]. | |||
#La version mirroir de développement/test, disponible à [https://test.wikimedi.ca test.wikimedi.ca] et protégée par un .htpasswd (''test'' / ''testtest'') afin d'éviter son indexage. | |||
Les services en place sont les suivants: | |||
# Une base de données MariaDB. | |||
# Un serveur ElasticSearch. | |||
# 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 [http://webfaction.com/ 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 [[Utilisateur:Jppialasse|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== | |||
{{Liste de tâches d'un projet|projet={{FULLPAGENAME}}|super_page=Gestion:Tâches/Liste}} | |||
==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. | |||
{| class="wikitable" | |||
|+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 à [https://stats.wikimedi.ca/ stats.wikimedi.ca]. | |||
==Outils== | |||
*Bannière pour annoncer une maintenance sur la plateforme: [[MediaWiki:Sitenotice]] | |||
=== Procédures === | |||
* [[Gestion:Infrastructure/Procédures/Mise à jour Données Québec|Mise à jour Données Québec]] | |||
==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. | 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 === | ===Changement de version majeure=== | ||
Lors d'un changement de version majeur de MediaWiki, il est indiqué de suivre ces étapes: | 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: | Au préalable, faire un dump de la base de donnée: | ||
mysqldump --socket=/var/lib/mysql/ | sudo mysqldump --socket=/var/lib/mysql/mariadb105.sock wikimedica > wikimedica.dump | ||
Puis: | Puis: | ||
git | 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 | |||
git | |||
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 | ||
{{Boîte | |||
| contenu = <center><big>'''Attention !'''</big><br> | |||
S'assurer que les identifiants sont les bons <code>/extensions/LocalSettings/db.php</code> si c'est le serveur de test qui est mis à jour.</center> | |||
| type = erreur | |||
}} | |||
/usr/bin/php82 maintenance/run.php update<ref group="note" name=":0">Si <code>update.php</code> donne des erreurs de version de paquet incongrues, utiliser <code>--skip-external-dependencies</code></ref> | |||
{{Boîte | |||
| contenu = Vérifiez que le dossier suivant existe toujours afin de pouvoir renouveler le certificat SSL du wiki : <code>/home/e-smith/files/ibays/Primary/html/.well-known/acme-challenge</code> | |||
| type = avertissement | |||
}} | |||
====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 rm -rf /home/e-smith/files/ibays/test/html/images/* | ||
sudo cp -a /home/e-smith/files/ibays/Primary/html/images/. 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/* | |||
mysql --socket=/var/lib/mysql/ | sudo cp -a /home/e-smith/files/ibays/Primary/html/extensions/. extensions/ | ||
{{Boîte | |||
| contenu = <center><big>'''Attention !'''</big><br> | |||
S'assurer de restituer les bonnes informations dans <code>/extensions/LocalSettings/db.php</code>.</center> | |||
| type = erreur | |||
}} | |||
===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 | 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. | |||
#Édition d'article avec l'ÉditeurVisuel | |||
#Téléversement d'images avec l'ÉditeurVisuel | |||
# Édition d'article avec l'ÉditeurVisuel | #Affichage d'une page avec des fonctionnalités sémantiques (ex: [[Wikimedica:Tâches]]) | ||
# Téléversement d'images avec l'ÉditeurVisuel | #Création d'une page avec un formulaire (ex: création d'une tâche) | ||
# Affichage d'une page avec des fonctionnalités sémantiques (ex: [[Wikimedica:Tâches]]) | #Génération de livres PDF | ||
# Création d'une page avec un formulaire (ex: création d'une tâche) | #Tours guidés | ||
== Déploiement d'une version locale vers le serveur == | |||
# Rétablir le <code>.htaccess</code> à la racine (et s'assurer que l'URL <code>/extensions</code> 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 | |||
|<code>sudo systemctl stop nslave; sudo systemctl stop nserve; sudo systemctl stop mw-qserve</code> | |||
|- | |||
!Script des services | |||
|<code><nowiki>/etc/systemd/system/nserve|nslave|mw-qserve.service</nowiki></code> | |||
|- | |||
!Logs | |||
|<code>/var/log/mediawiki/</code> | |||
|- | |||
!Quel process utilise un port ? | |||
|<code>sudo lsof -i :20361</code> | |||
|- | |||
!Affichage des logs | |||
|<code>journalctl -u nslave.service -u nserve.service -u mw-qserve.service -f</code> | |||
|- | |||
!Tester le rendu en commandline | |||
|<code>mw-render -w rl --output py.pdf -c <nowiki>https://sme10.wikimedi.ca/</nowiki> --collectionpage=Externat/Livre/Chirurgie</code> | |||
|} | |||
== Gérer les jails de fail2ban == | |||
Se fait avec la commande <code>sfail2ban</code>. | |||
==Notes== | |||
<references group="note" /> |
Dernière version du 13 décembre 2023 à 15:44
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:
- La version de production, disponible à wikimedi.ca.
- 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:
- Une base de données MariaDB.
- Un serveur ElasticSearch.
- 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
À faire | 6 / 14 | |
---|---|---|
En cours | 6 / 12 | |
En test | 2 / 14 | |
Terminées | 38 / 52 |
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.
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
- Bannière pour annoncer une maintenance sur la plateforme: MediaWiki:Sitenotice
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
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]
/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/
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.
- Édition d'article avec l'ÉditeurVisuel
- Téléversement d'images avec l'ÉditeurVisuel
- Affichage d'une page avec des fonctionnalités sémantiques (ex: Wikimedica:Tâches)
- Création d'une page avec un formulaire (ex: création d'une tâche)
- Génération de livres PDF
- Tours guidés
Déploiement d'une version locale vers le serveur
- 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
- ↑ Si
update.php
donne des erreurs de version de paquet incongrues, utiliser--skip-external-dependencies