Skip to content
Snippets Groups Projects
Commit 53dc51cf authored by Matisse DEKEISER's avatar Matisse DEKEISER
Browse files

Reformatage des procédures en Markdown, structure, corrections...

parent 68363223
Branches
No related tags found
No related merge requests found
Showing
with 317 additions and 71 deletions
# h-dekeiser-mennecart-debuyser <div style="text-align: center;">
<a href="https://matrix.org/">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Matrix_logo.svg/640px-Matrix_logo.svg.png" style="width: 15%; filter: invert(100%);">
</a>
Vous devez modifier ce fichier afin qu'il soit un point d'entrée vers vos procédures. <h1 style="border: none; margin: 0;">SAÉ 3.03: Déploiement d'une application de communication</h1>
</div>
Il suffit de mettre des liens vers les fichiers markdown de vos procédure <hr>
- [Comme ceci](Environnement.md) <h2 style="border: none; margin: 0; border-top: 5px solid transparent;">Liste des membres du groupe:</h2>
- Matisse DEKEISER ([matisse.dekeiser.etu@univ-lille.fr](mailto:matisse.dekeiser.etu@univ-lille.fr))
- Hugo DEBUYSER ([hugo.debuyser.etu@univ-lille.fr](mailto:hugo.debuyser.etu@univ-lille.fr))
- Matias MENNECART ([matias.mennecart.etu@univ-lille.fr](mailto:matias.mennecart.etu@univ-lille.fr))
<hr>
Ce projet consiste au déploiement d'une instance d'un service de communication Matrix, à l'aide de son implémentation Synapse, sur une machine virtuelle, où n'importe quel utilisateur pourra s'y connecter à l'aide du client Element.
Afin de procéder à une installation correcte de Synapse, l'ensemble des procédures à suivre dans l'ordre se situent en dessous de cette présentation.
- [Changer le nom de la machine](./procedures/change_hostname.md) # 🖥️ PARTIE 1: Mise en place de la machine virtuelle
- [Installer sudo](./procedures/install_sudo.md)
- [Installation d'un serveur de Base de Données (PostgreSQL)](./procedures/install_postgresql.md)
### [Sommaire](./procedures/1-virtual-machine/README.md)
- [1.1: Connexion à distance au serveur de virtualisation](./procedures/1-virtual-machine/)
- [1.2: Gestion des clés de connexion SSH](./procedures/1-virtual-machine/)
- [1.3: Création et gestion de la machine virtuelle](./procedures/1-virtual-machine/)
- [1.4: Connexion au terminal de la machine virtuelle](./procedures/1-virtual-machine/)
- [1.5: Configuration réseau et mise à jour](./procedures/1-virtual-machine/)
- [1.6: Création d'alias de connexion SSH](./procedures/1-virtual-machine/)
<br>
# ⌨️ PARTIE 2: Configuration des services pré-requis
### [Sommaire](./procedures/2-configuration-services/README.md)
- [2.1: Modifier le nom d'hôte de la machine virtuelle](./procedures/2-configuration-services/change-hostname.md)
- [2.2: Installer sudo pour l'utilisation de commandes en tant qu'administrateur](./procedures/2-configuration-services/sudo.md)
- [2.3: Installer PostgreSQL pour la gestion des utilisateurs/identifiants](./procedures/2-configuration-services/postgresql.md)
<br>
# 🛠️ PARTIE 3: Installation et configuration du serveur Synapse
### [Sommaire](./procedures/3-synapse/README.md)
- À FAIRE
<br>
# 🚀 PARTIE 4: Configuration du client Element et reverse proxy
### [Sommaire](./procedures/4-element-proxy/README.md)
- À FAIRE
\ No newline at end of file
<div style="text-align: center;">
<h1 style="border: none; margin: 0">🖥️ PARTIE 1: Mise en place de la machine virtuelle</h1>
<br>
</div>
# Sommaire
- [1.1: Connexion à distance au serveur de virtualisation](connect-virt-server.md)
- [1.2: Gestion des clés de connexion SSH](ssh-keygen.md)
- [1.3: Création et gestion de la machine virtuelle](create-virtual-machine.md)
- [1.4: Connexion au terminal de la machine virtuelle](connect-serial-vm.md)
- [1.5: Configuration réseau et mise à jour](setup-virtual-network.md)
- [1.6: Création d'alias de connexion SSH](ssh-alias.md)
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="/README.md" style="text-decoration: none;">&larr; Page précédente: Page principale</a>
<a href="./connect-virt-server.md" style="text-decoration: none;">Page suivante: Connexion à distance... &rarr;</a>
</footer>
À FAIRE
\ No newline at end of file
À FAIRE
\ No newline at end of file
À FAIRE
\ No newline at end of file
À FAIRE
\ No newline at end of file
À FAIRE
\ No newline at end of file
À FAIRE
\ No newline at end of file
<div style="text-align: center;">
<h1 style="border: none; margin: 0">⌨️ PARTIE 2: Configuration des services pré-requis</h1>
<br>
</div>
# Sommaire
- [2.1: Modifier le nom d'hôte de la machine virtuelle](./procedures/2-configuration-services/change-hostname.md)
- [2.2: Installer sudo pour l'utilisation de commandes en tant qu'administrateur](./procedures/2-configuration-services/sudo.md)
- [2.3: Installer PostgreSQL pour la gestion des utilisateurs/identifiants](./procedures/2-configuration-services/postgresql.md)
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="../1-virtual-machine/ssh-alias.md" style="text-decoration: none;">&larr; Page précédente: Création d'alias...</a>
<a href="change-hostname.md" style="text-decoration: none;">Page suivante: Modifier le nom d'hôte... &rarr;</a>
</footer>
# 2.1: Modifier le nom d'hôte de la machine virtuelle
Afin de changer le nom d'hôte (aussi appelé [hostname](https://en.wikipedia.org/wiki/Hostname)) de la machine virtuelle (par défaut: `debian`) par `matrix`, il vous suffira de modifier 2 fichiers de configuration système.
Pour les modifier, utilisez n'importe quel éditeur de texte souhaité (nano, vim...), en s'ayant connecté au compte administrateur avant:
```bash
$ su -
```
## 📄 /etc/hostname
Fichier de configuration qui contient le nom d'hôte de la machine.
Pour le modifier, changez la première ligne (par défaut: `debian`) par le nouveau nom d'hôte voulu, ici:
```
matrix
```
## 📄 /etc/hosts
Fichier de configuration système qui addresse aux noms d'hôtes leur adresse IP.
Pour le modifier correctement, repérez la ligne qui relie l'adresse locale de la machine (`127.0.1.1`, dans la plage des adresses localhost)au nom d'hôte précédent de la machine virtuelle (dans notre cas, `debian`), et changez le nom à droite par le nouveau nom d'hôte:
```
127.0.1.1 matrix
```
Vous pouvez par la suite redémarrer la machine virtuelle.
## 🧪 Vérifier si la modification s'est correctement faite
Le nom à côté du `@` dans le prompt du terminal de la machine virtuelle devrait avoir changé pour `matrix` après le redémarrage.
Afin de tester si le nouveau nom d'hôté a bien été configuré pour le réseau local, vous pouvez essayer de ping votre machine virtuelle en exécutant la commande `ping matrix` depuis le terminal de cette dernière.
![Résultat d'un ping à la VM fonctionnel](/resources/ping-matrix.png)
Si tous les paquets sont transmis, alors la configuration est correcte. Si ce n'est pas le cas, revérifiez le contenu de ces 2 fichiers.
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="README.md" style="text-decoration: none;">&larr; Page précédente: Sommaire (partie 2)</a>
<a href="sudo.md" style="text-decoration: none;">Page suivante: Installer sudo... &rarr;</a>
</footer>
\ No newline at end of file
# 2.3: Installer PostgreSQL pour la gestion des utilisateurs/identifiants
PostgreSQL est un système de gestion de bases de données relationnelles, similaire à MySQL, MariaDB, Oracle... Dans notre cas, PostgreSQL est utilisé par Synapse pour la gestion des utilisateurs de l'instance Matrix.
## Installation de PostgreSQL
Maintenant que sudo est installé, et les droits administrateurs donnés à notre utilisateur, nous n'avons plus besoin de se connecter à l'utilisateur `root` avec la commande `su`, il suffit de simplement écrire `sudo` devant.
En premier temps, mettez à jour les dépôts du gestionnaire de paquets `apt` afin de bénéficier des derniers outils à jour:
```
$ sudo apt update
```
Ensuite, installez le serveur PostgreSQL avec la commande suivante:
```
$ sudo apt install postgresql
```
### Note:
Le paquet `postgresql` est en réalité un métapaquet, un paquet spécial qui ne contient pas des outils mais redirige le gestionnaire de paquets vers différents autres paquets à télécharger.
Ici, `postgresql` renvoie le gestionnaire de paquets vers:
- `postgresql-15`: Tous les outils liés au serveur PostgreSQL.
- `postgresql-client-15`: Tous les outils client pour communiquer avec un serveur PostgreSQL, dont `psql`, `createdb`, etc.
- `postgresql-doc-15`: La documentation/manpages liée(s) à PostgreSQL.
- etc.
Une fois installé, le serveur PostgreSQL a dû être automatiquement démarré par `systemd` (le système d'initialisation qui gère les services dits *daemons*) appelé par `apt`. Vous pouvez vérifier si il est actif avec la commande suivante:
```
sudo systemctl status postgresql
```
Si il n'a pas été démarré automatiquement par `systemd`, lancez le manuellement avec la commande suivante:
```
sudo systemctl start postgresql
```
Si vous souhaitez que le système démarre votre serveur PostgreSQL à chaque démarrage de la machine virtuelle, vous pouvez configurer `systemd` pour le faire avec la commande suivante:
```
sudo systemctl enable postgresql
```
## Configuration de PostgreSQL
Maintenant que PostgreSQL est installé et actif sur la machine virtuelle, nous allons devoir configurer son serveur.
Pour commencer, nous devons créer un utilisateur du serveur PostgreSQL au nom de `matrix`, avec comme mot de passe `matrix`. Pour cela, exécutez la commande suivante:
```
sudo -u postgres createuser -P matrix
```
### Note:
L'outil `createuser` vous demandera d'écrire le mot de passe une fois la commande exécutée. Par raison de sécurité, les mots de passe ne sont pas affichés en clair sur les systèmes UNIX, vous ne verrez donc pas votre mot de passe en train d'être écrit sur votre terminal.
Une fois l'utilisateur `matrix` créé, nous allons devoir créer une base de données. Par simplicité, nous la nommerons `matrix`. Pour ceci, exécutez la commande suivante:
```
sudo -u postgres createdb --owner=matrix matrix
```
## Première connexion
Une fois la base de données créé, vous pouvez vous-y connecter à l'aide de l'outil `psql`:
```
psql -U matrix -h localhost
```
Une fois le mot de passe rentré, vous serez accueillis par le prompt du shell de `psql` qui vous permettra de communiquer avec le serveur PostgreSQL avec soit des commandes SQL, ou certaines commandes spéciales, telles que `\?` qui vous affichera une liste de toutes les commandes spéciales utilisables.
Pour quitter `psql`, entrez la commande `exit`.
### TEST À AJOUTER
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="./sudo.md" style="text-decoration: none;">&larr; Page précédente: Installer sudo...</a>
<a href="/procedures/3-synapse/README.md" style="text-decoration: none;">Page suivante: Sommaire (partie 3) &rarr;</a>
</footer>
\ No newline at end of file
# 2.2: Installer sudo pour l'utilisation de commandes en tant qu'administrateur
La commande `sudo` permet aux utilisateurs (avec les permissions requises) d'exécuter des commandes en tant qu'administrateur/superuser.
Comme nous n'avons pas encore cette commande, nous devons nous connecter à l'utilisateur `root` à l'aide de la commande suivante:
```
$ su -
```
## Installation de sudo
Pour installer sudo, exécutez la commande suivante en temps qu'administrateur
```
# apt update
# apt install sudo
```
La première commande se charge de mettre à jour les dépôts du gestionnaire de paquets `apt`, propre à Debian, afin d'être sûr d'avoir les versions les plus récentes des outils souhaités.
La seconde commande va installer l'outil `sudo` sur l'ordinateur. Si la commande vous demande de valider l'installation, appuyez sur `ENTER` pour valider l'installation.
## Configuration des droits administrateur
Pour permettre à notre utilisateur `user` de pouvoir exécuter des commandes en tant qu'administrateur, nous devons l'ajouter au groupe `sudo`.
Pour cela, exécutez la commande suivante en temps qu'administrateur:
```
# usermod -aG sudo user
```
Afin que les changements s'opèrent correctement sur l'utilisateur, redémarrez la machine virtuelle.
## 🧪 Vérifier si la modification s'est correctement faite
Une fois la machine virtuelle redémarée, vous pouvez essayer une simple commande avant `sudo` devant, et si le terminal ne vous renvoie pas d'erreur, alors la modification a bien été prise en compte.
Exemple:
```
$ sudo whoami
root
```
Si vous recevez un message d'erreur, vérifiez que l'utilisateur a bien été ajouté au groupe sudo avec la commande `groups`:
```
$ groups
[à ajouter]
```
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="./change-hostname.md" style="text-decoration: none;">&larr; Page précédente: Modifier le nom d'hôte...</a>
<a href="./postgresql.md" style="text-decoration: none;">Page suivante: Installer PostgreSQL... &rarr;</a>
</footer>
\ No newline at end of file
<div style="text-align: center;">
<h1 style="border: none; margin: 0">🛠️ PARTIE 3: Installation et configuration du serveur Synapse</h1>
<br>
</div>
# Sommaire
À AJOUTER
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="../2-configuration-services/postgresql.md" style="text-decoration: none;">&larr; Page précédente: Installer PostgreSQL...</a>
<a href="" style="text-decoration: none;">Page suivante: À AJOUTER &rarr;</a>
</footer>
<div style="text-align: center;">
<h1 style="border: none; margin: 0">🚀 PARTIE 4: Configuration du client Element et reverse proxy</h1>
<br>
</div>
# Sommaire
À AJOUTER
<hr>
<footer style="display: flex; justify-content: space-between; padding: 10px 20px;">
<a href="" style="text-decoration: none;">&larr; Page précédente: À AJOUTER</a>
<a href="" style="text-decoration: none;">Page suivante: À AJOUTER &rarr;</a>
</footer>
\ No newline at end of file
## Changer le nom de la machine
Pour changez le nom de la machine pour `matrix`, modifiez la ligne du fichier `/etc/hostname` par
> matrix
Apres ça, redemarrez la machine. Le nom a été changé.
Ensuite, modifiez le fichier `/etc/hosts`
> 127.0.1.1 matrix
Vous devrez ensuite etre capable d'effectuer `ping matrix` et d'obtenir ce resultat :
![Resultat commande ping matrix](./ressources/ping-matrix.png)
\ No newline at end of file
## Installation d'un serveur de Base de Données (PostgreSQL)
Tout d'abord, installez le package:
> apt install postgresql
Ensuite, verifier que le service est bien demarré :
> systemctl status postgresql
Creez ensuite un utilisateur postgresql nommé matrix :
*Il vous est demandé de saisir le mot de passe de l'utilisateur crée*
> sudo -u postgres createuser -P matrix
Creez ensuite une base de données nommée matrix, ayant pour créateur l'utilisateur matrix qui vient d'etre creer.
> sudo -u postgres createdb --owner=matrix matrix
Une base de données matrix a été crée.
Pour vous y connecter avec l'utilisater `matrix`
> psql -U matrix -h localhost
Vous êtes désormais connecter sur la base de données postgresql.
Vous pouvez y effectuer vos requetes SQL. Faits `\?` pour voir les commandes disponible.
Pour quitter postgresql, entrez `exit`.
\ No newline at end of file
## Installer sudo
Pour installer sudo, executez la commande suivante:
> apt install sudo
Ensuite, pour permettre l'utilisation de la commande sudo à un utilisateur, vous devez ajouter celui-ci dans le groupe sudo.
Voici la commande à utiliser:
> usermod -aG sudo user
L'utilisateur `user` fait désormais partit du group sudo et peut utiliser la commande.
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment