diff --git a/README.md b/README.md
index 1fdbd05..eabf1cd 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Survol des playbooks Ansible
+# Playbooks Ansible de l’AFPy
On découpe nos *playbooks* Ansible par rôles :
@@ -41,10 +41,15 @@ Ne pas faire :
La distinction services/serveurs :
-- Un serveur contient un nombre dans son nom : deb2.afpy.org,
- bbb2.afpy.org, …
-- Un service ne contient pas de chiffre dans son hostname :
- discuss.afpy.org, bbb.afpy.org, www.afpy.org, …
+- Un serveur contient un nombre dans son nom :
+ - deb2.afpy.org,
+ - bbb2.afpy.org,
+ - …
+- Un service ne contient pas de chiffre dans son nom :
+ - discuss.afpy.org,
+ - bbb.afpy.org,
+ - www.afpy.org,
+ - …
## deb2.afpy.org
@@ -53,14 +58,14 @@ La distinction services/serveurs :
C’est 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://\*.pycon.fr/\*](https://pycon.fr/) (que des sites statiuques)
-- 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)
+- https://www.afpy.org ([source](https://github.com/AFPy/site)).
+- [https://\*.pycon.fr/\*](https://pycon.fr/) (que des sites statiuques).
+- 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) (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://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
@@ -70,6 +75,128 @@ Elle héberge les services suivants :
C’est un VPS `V-R8 4 CPUs · 8 GB RAM`.
+C’est une Ubuntu 18.04 (c’est imposé par BBB).
+
+Elle n’est **pas** gérée par Ansible, c’est un peu particulier BBB.
+
+J’y ai appliqué un poil de ssh-hardening :
+
+ AuthenticationMethods publickey
+ LogLevel VERBOSE
+
+Ensuite j’ai [rsync les enregistrements depuis le bbb
+précédent](https://docs.bigbluebutton.org/2.2/customize.html#transfer-published-recordings-from-another-server).
+
+Puis j’ai sauvegardé/restauré la DB de greenlight :
+
+ # Sur l’ancienne 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 l’ancienne 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 s’occuper 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 qu’exim et le firewall (attention c’est peut-être `ufw`)
+les acceptent.
+
+
+### Configuration TURN/STUN
+
+L’installation de BBB n’étant pas gérée par Ansible, pour le moment la
+conf TURN/STUN est faite à la main, c’est la seule chose à faire, elle
+ressemble à :
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+dans `/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml`.
+
## backup1.afpy.org
@@ -234,6 +361,7 @@ C’est un VPS `V-R4 2 CPUs · 4 GB RAM`.
Elle héberge https://discuss.afpy.org une instance Discourse.
+
### Déplacement du Discourse vers une nouvelle machine
Le 31 janvier 2023 Julien a déplacé le Discourse de deb2 à discourse1.
@@ -272,7 +400,7 @@ Bien tester l’envoi d’emails.
-# Ansible
+# Rôles utilisés
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).
-## BBB
-
-Hébergé sur bbb2.afpy.org chez Gandi.
-
-J’y ai appliqué un poil de ssh-hardening :
-
- AuthenticationMethods publickey
- LogLevel VERBOSE
-
-Ensuite j’ai [rsync les enregistrements depuis le bbb
-précédent](https://docs.bigbluebutton.org/2.2/customize.html#transfer-published-recordings-from-another-server).
-
-Puis j’ai sauvegardé/restauré la DB de greenlight :
-
- # Sur l’ancienne 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 l’ancienne 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 s’occuper 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 qu’exim et le firewall (attention c’est peut-être `ufw`)
-les acceptent.
-
-
-### Configuration TURN/STUN
-
-L’installation de BBB n’étant pas gérée par Ansible, pour le moment la
-conf TURN/STUN est faite à la main, c’est la seule chose à faire, elle
-ressemble à :
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-dans `/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml`.
-
-
-# DKIM
+## exim
Le playbook exim configure une clé DKIM et signe les mails avec. Mais un humain doit la propager sur les DNS.