2018-02-26 08:05:38 +00:00
|
|
|
|
\newpage
|
|
|
|
|
|
|
|
|
|
Déploiement d'un service via Ansible
|
|
|
|
|
====================================
|
|
|
|
|
|
2019-03-12 12:02:39 +00:00
|
|
|
|
Très bien ! vous semblez avoir compris le fonctionnement de notre
|
2018-03-07 04:54:40 +00:00
|
|
|
|
gestionnaire de configuration.
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
Après cet échauffement, vous devriez être prêt à créer un *playbook*
|
2019-03-15 11:59:55 +00:00
|
|
|
|
dédié à l'installation d'un serveur [Matrix](https://matrix.org/) :
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2022-03-08 20:17:08 +00:00
|
|
|
|
![Element : un des clients utilisable pour joindre son serveur Matrix](riot.png)
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
|
|
|
|
|
2022-03-08 20:17:08 +00:00
|
|
|
|
Vous connaissez et utilisez sans doute Discord ou Slack, un service de messagerie
|
2019-03-15 11:59:55 +00:00
|
|
|
|
instantannée qui a supplanté IRC, Jabber, ... Il vient avec le gros
|
2019-03-26 10:40:08 +00:00
|
|
|
|
inconvénient qu'il est centralisé, qu'il ne permet pas de faire discuter des
|
2019-03-15 11:59:55 +00:00
|
|
|
|
personnes qui, bien qu'utilisant le même service, ne sont pas dans le même
|
|
|
|
|
groupe ; mais surtout, il vient avec aucun élément de sécurité : il n'est en
|
|
|
|
|
effet pas possible d'avoir de chiffrement de bout-en-bout, entre deux personnes
|
|
|
|
|
ou un groupe, et les administrateurs des groupes, tout comme le gouvernement
|
|
|
|
|
américian, ont accès à tout l'historique. Vous l'aurez compris, Matrix est donc
|
|
|
|
|
une solution de messagerie décentralisée et permet de réaliser du chiffrement
|
|
|
|
|
de bout-en-bout.
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2019-03-15 11:59:55 +00:00
|
|
|
|
Vous trouverez la documentation d'installation précise et détaillée à :
|
2022-03-08 20:17:08 +00:00
|
|
|
|
<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.
|
|
|
|
|
|
|
|
|
|
:::::
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
Vous devrez attacher une importance tout particulière à la sécurité de
|
2019-03-12 12:02:39 +00:00
|
|
|
|
la solution que vous déployez : configurations durcies, utilisateur
|
|
|
|
|
dédié lorsque c'est possible (pas de `root` !), droits d'accès et
|
2018-03-07 04:54:40 +00:00
|
|
|
|
permissions des répertoires, etc.
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
Profitez des [modules de base de
|
2022-03-08 20:17:08 +00:00
|
|
|
|
données](https://docs.ansible.com/ansible/latest/collections/community/postgresql/index.html)
|
2018-03-07 04:54:40 +00:00
|
|
|
|
pour l'initialiser correctement. Et bien entendu de l'ensemble des
|
2022-03-08 20:17:08 +00:00
|
|
|
|
modules décrits dans la documentation standard !\
|
|
|
|
|
|
|
|
|
|
::::: {.warning}
|
|
|
|
|
|
2022-03-09 09:35:37 +00:00
|
|
|
|
**L'utilisation des modules
|
2022-04-01 03:47:37 +00:00
|
|
|
|
[`ansible.builtin.command`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/command_module.html),
|
|
|
|
|
[`ansible.builtin.shell`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/shell_module.html)
|
2022-03-09 09:35:37 +00:00
|
|
|
|
et assimilés est interdite en toute circonstance, sauf mention contraire explicite.**
|
2022-03-08 20:17:08 +00:00
|
|
|
|
|
|
|
|
|
:::::
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
## Configurations
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
Tous les éléments de configuration (mot de passes de connexion à la
|
|
|
|
|
base de données, chemins, etc.) sont à déclarer comme variables dans
|
2019-03-15 11:59:55 +00:00
|
|
|
|
le fichier `vars/matrix-config.yml`, que vous prendrez soin d'importer
|
2022-03-08 20:17:08 +00:00
|
|
|
|
dans votre *Playbook*.\
|
|
|
|
|
|
|
|
|
|
::::: {.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).
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2022-03-08 20:17:08 +00:00
|
|
|
|
:::::
|
2019-03-15 11:59:55 +00:00
|
|
|
|
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
## Backup
|
2018-02-26 08:05:38 +00:00
|
|
|
|
|
2018-03-07 04:54:40 +00:00
|
|
|
|
Vous ajouterez enfin une tâche hebdomadaire de sauvegarder de la base
|
|
|
|
|
de données. Le *dump* obtenu est à placer dans `/var/backups/`.
|
2019-03-15 11:59:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Client de test
|
|
|
|
|
|
|
|
|
|
Vous n'êtes pas tenu d'installer un client. Pour vos tests, vous pouvez
|
2021-03-05 14:03:10 +00:00
|
|
|
|
utiliser <https://app.element.io/>, en changeant l'adresse du serveur Matrix pour
|
2019-03-15 11:59:55 +00:00
|
|
|
|
votre sous-domaine dédié à Matrix (normalement
|
2022-03-08 20:17:08 +00:00
|
|
|
|
<https://matrix.login-x.srs.example.tld/>). (Conservez le serveur d'identité à
|
2019-03-15 11:59:55 +00:00
|
|
|
|
<https://vector.im>).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Validation
|
|
|
|
|
|
|
|
|
|
Pour valider l'installation de votre serveur, rejoignez le canal
|
2021-03-05 14:03:10 +00:00
|
|
|
|
`#adlin:nemunai.re` et envoyez un message « Ping ! » pour signaler votre
|
|
|
|
|
présence.
|
2019-03-15 11:59:55 +00:00
|
|
|
|
|
2022-03-08 20:17:08 +00:00
|
|
|
|
Vous devriez également pouvoir tester en communiquant entre-vous.
|