This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
adlin/tutorial/ansible/deploiement-svc.md

120 lines
4.6 KiB
Markdown
Raw Normal View History

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*
2022-05-12 01:14:29 +00:00
dédié à l'installation d'un serveur [Matrix](https://matrix.org/) :
2018-02-26 08:05:38 +00:00
2022-05-12 01:14:29 +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
2022-05-12 01:14:29 +00:00
groupe ; mais surtout, il vient avec aucun élément de sécurité : il n'est en
2019-03-15 11:59:55 +00:00
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),
2022-08-21 08:45:37 +00:00
[`ansible.builtin.shell`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/shell_module.html),
[`ansible.builtin.raw`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/raw_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}
2022-05-12 01:14:29 +00:00
À aucun moment la clef privée de votre certificat ne doit faire partie de votre
2022-03-08 20:17:08 +00:00
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-05-12 01:14:29 +00:00
Vous devriez également pouvoir tester en communiquant entre vous.