Proofreading README file.

This commit is contained in:
Julien Palard 2023-03-28 13:47:33 +02:00
parent d77fbf0b6c
commit 01e719e6ed
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8

277
README.md
View File

@ -1,4 +1,4 @@
# Survol des playbooks Ansible # Playbooks Ansible de lAFPy
On découpe nos *playbooks* Ansible par rôles : On découpe nos *playbooks* Ansible par rôles :
@ -41,10 +41,15 @@ Ne pas faire :
La distinction services/serveurs : La distinction services/serveurs :
- Un serveur contient un nombre dans son nom : deb2.afpy.org, - Un serveur contient un nombre dans son nom :
bbb2.afpy.org, … - deb2.afpy.org,
- Un service ne contient pas de chiffre dans son hostname : - bbb2.afpy.org,
discuss.afpy.org, bbb.afpy.org, www.afpy.org, … - …
- Un service ne contient pas de chiffre dans son nom :
- discuss.afpy.org,
- bbb.afpy.org,
- www.afpy.org,
- …
## deb2.afpy.org ## deb2.afpy.org
@ -53,14 +58,14 @@ La distinction services/serveurs :
Cest un VPS `V-R4 2 CPUs · 4 GB RAM`. Cest un VPS `V-R4 2 CPUs · 4 GB RAM`.
Elle héberge les services suivants : Elle héberge surtout des sites statiques, mais pas que :
- https://www.afpy.org ([source](https://github.com/AFPy/site)) - https://www.afpy.org ([source](https://github.com/AFPy/site)).
- [https://\*.pycon.fr/\*](https://pycon.fr/) (que des sites statiuques) - [https://\*.pycon.fr/\*](https://pycon.fr/) (que des sites statiuques).
- Alain le bot IRC du canal #afpy ([source](https://github.com/AFPy/alain)) - Alain le bot IRC du canal #afpy ([source](https://github.com/AFPy/alain)).
- La gate [IRC](https://afpy.org/irc)—[Discord](https://afpy.org/discord) - La gate [IRC](https://afpy.org/irc)—[Discord](https://afpy.org/discord) (un [discord-irc-sync](https://github.com/Hackndo/discord-irc-sync)).
- https://dl.afpy.org: un *directory listing* nginx des vidéos de nos conférences. - https://dl.afpy.org: un *directory listing* nginx des vidéos de nos conférences.
- https://logs.afpy.org: Les logs du salon IRC #afpy ([source](https://github.com/AFPy/AfpyLogs/)) - https://logs.afpy.org: Les logs du salon IRC #afpy ([source](https://github.com/AFPy/AfpyLogs/)).
- https://munin.afpy.org - https://munin.afpy.org
@ -70,6 +75,128 @@ Elle héberge les services suivants :
Cest un VPS `V-R8 4 CPUs · 8 GB RAM`. Cest un VPS `V-R8 4 CPUs · 8 GB RAM`.
Cest une Ubuntu 18.04 (cest imposé par BBB).
Elle nest **pas** gérée par Ansible, cest un peu particulier BBB.
Jy ai appliqué un poil de ssh-hardening :
AuthenticationMethods publickey
LogLevel VERBOSE
Ensuite jai [rsync les enregistrements depuis le bbb
précédent](https://docs.bigbluebutton.org/2.2/customize.html#transfer-published-recordings-from-another-server).
Puis jai sauvegardé/restauré la DB de greenlight :
# Sur lancienne machine :
docker exec greenlight_db_1 /usr/bin/pg_dumpall -U postgres -f /var/lib/postgresql/data/dump.sql
# Sur la nouvelle machine :
# Copier la sauvegarde sur le nouveau serveur :
cd ~root/greenlight
rsync bbb.afpy.org:/root/greenlight/db/production/dump.sql ./
docker-compose down
rm -fr db
# Configurer le même mot de passe dans .env et docker-compose.yml que lancienne machine
# En profiter pour vérifier le SAFE_HOSTS dans le .env.
docker-compose up -d
# Attendre un peu avec un top sous les yeux que ça se termine vraiment
docker exec greenlight_db_1 /usr/local/bin/psql -U postgres -c "DROP DATABASE greenlight_production;"
mv dump.sql db/production/
docker exec greenlight_db_1 /usr/local/bin/psql -U postgres -f /var/lib/postgresql/data/dump.sql
rm db/production/dump.sql
docker-compose down
docker-compose up -d # Il va soccuper de la migration
docker-compose logs -f # pour voir si tout va bien
`rsync` des certificats TLS aussi :
rsync -vah bbb.afpy.org:/etc/letsencrypt/ /etc/letsencrypt/
Ça a pris un petit :
sed s/sd-106563.dedibox.fr/bbb.afpy.org/ /etc/nginx/sites-available/bigbluebutton
Il faut attendre un moment avec un `top` qui tourne, ruby a tout plein
de truc a faire avant de démarrer.
### BBB password reset
Pour accepter le password reset, BBB doit avoir :
ALLOW_MAIL_NOTIFICATIONS=true
dans /root/greenlight/.env
(Pour relire le `.env`: `cd /root/greenlight; docker-compose down && docker-compose up -d`)
Pour vérifier la conf :
docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
Il y a des chances que ça ne passe pas, il faut laisser les mails
sortir de leur conteneur Docker (par défaut il utilise sendmail DANS
le conteneur).
Il faut configurer le `.env` tel que:
SMTP_SERVER=172.17.0.1
SMTP_PORT=25
SMTP_DOMAIN=greenlight.afpy.org
SMTP_SENDER=bbb@afpy.org
Puis vérifier quexim et le firewall (attention cest peut-être `ufw`)
les acceptent.
### Configuration TURN/STUN
Linstallation de BBB nétant pas gérée par Ansible, pour le moment la
conf TURN/STUN est faite à la main, cest la seule chose à faire, elle
ressemble à :
```xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
">
<bean id="stun0" class="org.bigbluebutton.web.services.turn.StunServer">
<constructor-arg index="0" value="stun:turn.afpy.org"/>
</bean>
<bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
<constructor-arg index="0" value="[redacte]"/>
<constructor-arg index="1" value="turns:turn.afpy.org:443?transport=tcp"/>
<constructor-arg index="2" value="86400"/>
</bean>
<bean id="stunTurnService" class="org.bigbluebutton.web.services.turn.StunTurnService">
<property name="stunServers">
<set>
<ref bean="stun0" />
</set>
</property>
<property name="turnServers">
<set>
<ref bean="turn0" />
</set>
</property>
<property name="remoteIceCandidates">
<set>
</set>
</property>
</bean>
</beans>
```
dans `/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml`.
## backup1.afpy.org ## backup1.afpy.org
@ -234,6 +361,7 @@ Cest un VPS `V-R4 2 CPUs · 4 GB RAM`.
Elle héberge https://discuss.afpy.org une instance Discourse. Elle héberge https://discuss.afpy.org une instance Discourse.
### Déplacement du Discourse vers une nouvelle machine ### Déplacement du Discourse vers une nouvelle machine
Le 31 janvier 2023 Julien a déplacé le Discourse de deb2 à discourse1. Le 31 janvier 2023 Julien a déplacé le Discourse de deb2 à discourse1.
@ -272,7 +400,7 @@ Bien tester lenvoi demails.
</details> </details>
# Ansible # Rôles utilisés
On utilies ces rôles Ansible : On utilies ces rôles Ansible :
@ -300,130 +428,7 @@ sur toutes nos machines (emacs et vim installés, nos authorized-keys,
pas de mlocate, hostname propre, firewall, ce genre de broutilles). pas de mlocate, hostname propre, firewall, ce genre de broutilles).
## BBB ## exim
Hébergé sur bbb2.afpy.org chez Gandi.
Jy ai appliqué un poil de ssh-hardening :
AuthenticationMethods publickey
LogLevel VERBOSE
Ensuite jai [rsync les enregistrements depuis le bbb
précédent](https://docs.bigbluebutton.org/2.2/customize.html#transfer-published-recordings-from-another-server).
Puis jai sauvegardé/restauré la DB de greenlight :
# Sur lancienne machine :
docker exec greenlight_db_1 /usr/bin/pg_dumpall -U postgres -f /var/lib/postgresql/data/dump.sql
# Sur la nouvelle machine :
# Copier la sauvegarde sur le nouveau serveur :
cd ~root/greenlight
rsync bbb.afpy.org:/root/greenlight/db/production/dump.sql ./
docker-compose down
rm -fr db
# Configurer le même mot de passe dans .env et docker-compose.yml que lancienne machine
# En profiter pour vérifier le SAFE_HOSTS dans le .env.
docker-compose up -d
# Attendre un peu avec un top sous les yeux que ça se termine vraiment
docker exec greenlight_db_1 /usr/local/bin/psql -U postgres -c "DROP DATABASE greenlight_production;"
mv dump.sql db/production/
docker exec greenlight_db_1 /usr/local/bin/psql -U postgres -f /var/lib/postgresql/data/dump.sql
rm db/production/dump.sql
docker-compose down
docker-compose up -d # Il va soccuper de la migration
docker-compose logs -f # pour voir si tout va bien
`rsync` des certificats TLS aussi :
rsync -vah bbb.afpy.org:/etc/letsencrypt/ /etc/letsencrypt/
Ça a pris un petit :
sed s/sd-106563.dedibox.fr/bbb.afpy.org/ /etc/nginx/sites-available/bigbluebutton
Il faut attendre un moment avec un `top` qui tourne, ruby a tout plein
de truc a faire avant de démarrer.
### BBB password reset
Pour accepter le password reset, BBB doit avoir :
ALLOW_MAIL_NOTIFICATIONS=true
dans /root/greenlight/.env
(Pour relire le `.env`: `cd /root/greenlight; docker-compose down && docker-compose up -d`)
Pour vérifier la conf :
docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
Il y a des chances que ça ne passe pas, il faut laisser les mails
sortir de leur conteneur Docker (par défaut il utilise sendmail DANS
le conteneur).
Il faut configurer le `.env` tel que:
SMTP_SERVER=172.17.0.1
SMTP_PORT=25
SMTP_DOMAIN=greenlight.afpy.org
SMTP_SENDER=bbb@afpy.org
Puis vérifier quexim et le firewall (attention cest peut-être `ufw`)
les acceptent.
### Configuration TURN/STUN
Linstallation de BBB nétant pas gérée par Ansible, pour le moment la
conf TURN/STUN est faite à la main, cest la seule chose à faire, elle
ressemble à :
```xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
">
<bean id="stun0" class="org.bigbluebutton.web.services.turn.StunServer">
<constructor-arg index="0" value="stun:turn.afpy.org"/>
</bean>
<bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
<constructor-arg index="0" value="[redacte]"/>
<constructor-arg index="1" value="turns:turn.afpy.org:443?transport=tcp"/>
<constructor-arg index="2" value="86400"/>
</bean>
<bean id="stunTurnService" class="org.bigbluebutton.web.services.turn.StunTurnService">
<property name="stunServers">
<set>
<ref bean="stun0" />
</set>
</property>
<property name="turnServers">
<set>
<ref bean="turn0" />
</set>
</property>
<property name="remoteIceCandidates">
<set>
</set>
</property>
</bean>
</beans>
```
dans `/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml`.
# DKIM
Le playbook exim configure une clé DKIM et signe les mails avec. Mais un humain doit la propager sur les DNS. Le playbook exim configure une clé DKIM et signe les mails avec. Mais un humain doit la propager sur les DNS.