tuto2: Update for 2023 students

This commit is contained in:
nemunaire 2022-03-08 21:17:08 +01:00
commit 0ebf69f4cd
9 changed files with 200 additions and 76 deletions

View file

@ -9,10 +9,10 @@ gestionnaire de configuration.
Après cet échauffement, vous devriez être prêt à créer un *playbook*
dédié à l'installation d'un serveur [Matrix](https://matrix.org/) :
![Element](riot.png "Element : un des clients utilisable pour joindre son serveur Matrix")
![Element : un des clients utilisable pour joindre son serveur Matrix](riot.png)
Vous connaissez et utilisez sans doute Slack, un service de messagerie
Vous connaissez et utilisez sans doute Discord ou Slack, un service de messagerie
instantannée qui a supplanté IRC, Jabber, ... Il vient avec le gros
inconvénient qu'il est centralisé, qu'il ne permet pas de faire discuter des
personnes qui, bien qu'utilisant le même service, ne sont pas dans le même
@ -24,9 +24,25 @@ une solution de messagerie décentralisée et permet de réaliser du chiffrement
de bout-en-bout.
Vous trouverez la documentation d'installation précise et détaillée à :
<https://github.com/matrix-org/synapse/blob/master/README.rst> (attention,
pensez à vous fixer une version, n'utilisez pas la branche master qui risque de
ne plus fonctionner au moment du moulinétage de votre rendu).
<https://matrix-org.github.io/synapse/latest/>.\
::::: {.warning}
Vous avez 5 solutions pour réaliser cette partie, mais 2 sont à proscrire. Vous pouvez :
- utiliser [le playbook officiel](https://github.com/spantaleev/matrix-docker-ansible-deploy) ;
- installer [les paquets officiels de la dernière version
stable](https://matrix-org.github.io/synapse/latest/setup/installation.html#debianubuntu)
et réaliser le playbook vous-même (quitte à recopier des bouts du playbook
officiel) ;
- installer [les modules Python depuis PyPI](https://matrix-org.github.io/synapse/latest/setup/installation.html#installing-as-a-python-module-from-pypi).
Vous ne pouvez pas :
- déployer le conteneur Docker ;
- déployer à partir des sources.
:::::
Vous devrez attacher une importance tout particulière à la sécurité de
la solution que vous déployez : configurations durcies, utilisateur
@ -34,9 +50,17 @@ dédié lorsque c'est possible (pas de `root` !), droits d'accès et
permissions des répertoires, etc.
Profitez des [modules de base de
données](https://docs.ansible.com/ansible/2.9/modules/list_of_database_modules.html)
données](https://docs.ansible.com/ansible/latest/collections/community/postgresql/index.html)
pour l'initialiser correctement. Et bien entendu de l'ensemble des
modules décrits dans la documentation standard !
modules décrits dans la documentation standard !\
::::: {.warning}
L'utilisation des modules
[`ansible.builtin.command`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/command_module.html#ansible-collections-ansible-builtin-command-module)
et assimilés est interdite en toute circonstance.
:::::
## Configurations
@ -44,9 +68,28 @@ modules décrits dans la documentation standard !
Tous les éléments de configuration (mot de passes de connexion à la
base de données, chemins, etc.) sont à déclarer comme variables dans
le fichier `vars/matrix-config.yml`, que vous prendrez soin d'importer
dans votre *Playbook*.
dans votre *Playbook*.\
Vous devrez générer un certificat TLS afin de joindre les autres serveurs.
::::: {.warning}
Vous devez utiliser `ansible-vault` pour stocker de manière sûre les données
sensibles tels que les mots de passes. Vous pouvez ajouter un second fichier de
variables pour cela, si cela vous paraît plus opportun.
:::::
Vous devrez générer un certificat TLS afin de joindre les autres serveurs.\
::::: {.warning}
À aucun moment la clef privée de votre certificat ne doit faire parti de votre
dépôt. Dans certaines circonstances, il peut être pratique d'avoir cette clef
dans un *vault*, mais ici ce que l'on attend c'est que le certificat soit
généré s'il n'existe pas déjà ou qu'il a expiré. Éventuellement, une solution
automatisant son renouvellement automatique serait appréciable (mais non
obligatoire).
:::::
## Backup
@ -60,7 +103,7 @@ de données. Le *dump* obtenu est à placer dans `/var/backups/`.
Vous n'êtes pas tenu d'installer un client. Pour vos tests, vous pouvez
utiliser <https://app.element.io/>, en changeant l'adresse du serveur Matrix pour
votre sous-domaine dédié à Matrix (normalement
<https://matrix.login-x.srs.p0m.fr/>). (Conservez le serveur d'identité à
<https://matrix.login-x.srs.example.tld/>). (Conservez le serveur d'identité à
<https://vector.im>).
@ -71,4 +114,4 @@ Pour valider l'installation de votre serveur, rejoignez le canal
`#adlin:nemunai.re` et envoyez un message « Ping ! » pour signaler votre
présence.
Vous devriez également pouvoir tester entre-vous.
Vous devriez également pouvoir tester en communiquant entre-vous.