From 01e719e6edaea78c287877c78117a121d1e78378 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 28 Mar 2023 13:47:33 +0200 Subject: [PATCH] Proofreading README file. --- README.md | 277 +++++++++++++++++++++++++++--------------------------- 1 file changed, 141 insertions(+), 136 deletions(-) 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.