2019-12-16 22:58:06 +00:00
|
|
|
|
# Survol des playbooks Ansible
|
2019-12-16 21:27:58 +00:00
|
|
|
|
|
|
|
|
|
On découpe nos *playbooks* Ansible par rôles :
|
|
|
|
|
|
|
|
|
|
- `site.yml`: Inclu tous les autres, pratique pour tout exécuter.
|
|
|
|
|
- `pycon.yml`: Pour les pycon.fr
|
|
|
|
|
- `backup.yml`: Configure rsnapshot pour sauvegarder nos serveurs.
|
2019-12-18 19:20:22 +00:00
|
|
|
|
- ...
|
2019-12-16 21:27:58 +00:00
|
|
|
|
|
|
|
|
|
En partant de là, on peut utiliser les commandes suivantes:
|
|
|
|
|
|
2019-12-17 10:57:23 +00:00
|
|
|
|
Après avoir cloné ce repo, installé Ansible dans un venv, installez
|
|
|
|
|
les roles nécessaires via :
|
2019-12-16 21:27:58 +00:00
|
|
|
|
|
2019-12-16 22:58:06 +00:00
|
|
|
|
- ansible-galaxy install -r requirements.yml
|
2019-12-16 21:27:58 +00:00
|
|
|
|
|
|
|
|
|
Puis pour jouer les *playbooks* :
|
|
|
|
|
|
|
|
|
|
- Pour tout relancer : `ansible-playbook site.yml`
|
|
|
|
|
- Pour configurer les PyCons : `ansible-playbook pycons.yml`
|
|
|
|
|
|
2020-07-08 21:45:50 +00:00
|
|
|
|
## TODO
|
|
|
|
|
|
|
|
|
|
### Mailman 3
|
|
|
|
|
|
|
|
|
|
Mailman 3 est installé sur https://mm3.afpy.org, Julien a un compte
|
|
|
|
|
super user, vous pouvez en demander un aussi. le mailman peut envoyer
|
|
|
|
|
des mails via exim4, mais pour le moment aucune mailing list.
|
|
|
|
|
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
2019-12-16 22:58:06 +00:00
|
|
|
|
## Faire, ne pas faire
|
|
|
|
|
|
|
|
|
|
Faire : Configurer les machines : apt install, fichiers de
|
2019-12-18 19:20:22 +00:00
|
|
|
|
configuration, utilisateurs, éventuellement un premier `git clone`
|
|
|
|
|
pour que ça marche si c'est un site statique.
|
2019-12-16 22:58:06 +00:00
|
|
|
|
|
2019-12-18 19:20:22 +00:00
|
|
|
|
Ne pas faire : Deployer. En dehors de l'éventuel premier git clone,
|
|
|
|
|
c'est le rôle de la CI (Github Actions, ...), pas de nos playbooks.
|
2019-03-22 08:57:51 +00:00
|
|
|
|
|
2019-07-04 20:24:35 +00:00
|
|
|
|
|
2019-12-16 22:58:06 +00:00
|
|
|
|
# Servers
|
|
|
|
|
|
2018-12-21 11:32:09 +00:00
|
|
|
|
## TODO
|
2018-12-20 22:54:21 +00:00
|
|
|
|
|
2019-12-18 21:55:49 +00:00
|
|
|
|
- [ ] Github Actions sur Alain (déployer au push).
|
2019-07-04 21:30:06 +00:00
|
|
|
|
- [ ] Setup watchghost
|
2019-12-20 00:04:29 +00:00
|
|
|
|
- [ ] C'est quoi pycon.afpy.org ?
|
|
|
|
|
- [ ] C'est quoi video.pycon.fr ? (IN A 91.121.116.118)
|
2018-12-20 22:54:21 +00:00
|
|
|
|
|
|
|
|
|
|
2019-12-16 22:58:06 +00:00
|
|
|
|
## deb.afpy.org
|
|
|
|
|
|
|
|
|
|
La seule machine déployée via Ansible.
|
|
|
|
|
|
|
|
|
|
fingerprint: `SHA256:xVC4sYYdmDSbJP6JWZUxApzHdbAj1p3uZlOEIksXrMA`.
|
|
|
|
|
|
|
|
|
|
|
2018-12-21 11:32:09 +00:00
|
|
|
|
## rainette.afpy.org
|
2018-12-20 22:54:21 +00:00
|
|
|
|
|
2019-07-04 21:30:06 +00:00
|
|
|
|
Liste des jails toujours utiles :
|
2018-12-21 11:32:09 +00:00
|
|
|
|
|
2020-10-26 09:37:26 +00:00
|
|
|
|
- web: stoppée, sauvegardée, à supprimer.
|
|
|
|
|
- dns: Doit être démarrée avant mailman
|
2019-02-19 23:25:00 +00:00
|
|
|
|
- smtp:
|
|
|
|
|
- smtpd (/usr/local/etc/mail/smtpd.conf)
|
|
|
|
|
- dovecot (comptes: /usr/local/etc/mail/tables/passwd)
|
|
|
|
|
- spamd
|
2021-04-27 22:07:28 +00:00
|
|
|
|
- mailman: Le sitepass est disponnible dans [pass](https://github.com/AFPy/pass/).
|
2020-10-26 09:37:26 +00:00
|
|
|
|
- http: toujours utile pour https://lists.afpy.org
|
2018-12-20 22:54:21 +00:00
|
|
|
|
|
|
|
|
|
|
2021-04-06 10:13:56 +00:00
|
|
|
|
## dl.afpy.org
|
2018-12-20 22:54:21 +00:00
|
|
|
|
|
2021-04-06 10:13:56 +00:00
|
|
|
|
C'est un directory listing nginx, accessible via https://dl.afpy.org.
|
2019-07-04 21:30:06 +00:00
|
|
|
|
|
2021-04-08 06:37:10 +00:00
|
|
|
|
Il héberge aussi https://videos-2015.pycon.fr/ (qui depuis 2021 redirige
|
|
|
|
|
vers dl.afpy.org/pycon-fr-15, c'est mieux rangé).
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
|
|
|
|
|
2018-12-21 11:32:09 +00:00
|
|
|
|
# Ansible
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
2018-12-21 11:32:09 +00:00
|
|
|
|
On utilies ces rôles Ansible :
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
2019-12-18 12:41:45 +00:00
|
|
|
|
## julienpalard.nginx
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
2019-12-18 12:41:45 +00:00
|
|
|
|
Voir la [doc](https://github.com/JulienPalard/ansible-role-nginx).
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
|
|
|
|
|
2018-12-21 11:32:09 +00:00
|
|
|
|
## common
|
2018-10-09 19:43:40 +00:00
|
|
|
|
|
2018-12-21 11:32:09 +00:00
|
|
|
|
*common* est un rôle "de base" permettant d'avoir une conf "normale"
|
|
|
|
|
sur toutes nos machines (emacs et vim installés, nos authorized-keys,
|
2019-12-18 12:41:45 +00:00
|
|
|
|
pas de mlocate, hostname propre, firewall, ce genre de broutilles).
|
2019-03-06 23:08:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Backups
|
|
|
|
|
|
2021-04-03 09:47:40 +00:00
|
|
|
|
Julien Palard a un rsnapshot (vérifié en 2021) sur son NAS perso, avec :
|
2019-03-06 23:08:06 +00:00
|
|
|
|
|
|
|
|
|
```
|
2021-04-03 09:47:40 +00:00
|
|
|
|
backup deb.afpy.org:/srv/ deb.afpy.org/
|
|
|
|
|
backup deb.afpy.org:/home/ deb.afpy.org/
|
|
|
|
|
backup deb.afpy.org:/etc/ deb.afpy.org/
|
|
|
|
|
backup deb.afpy.org:/srv/ deb.afpy.org/
|
|
|
|
|
backup deb.afpy.org:/home/ deb.afpy.org/
|
|
|
|
|
backup deb.afpy.org:/etc/ deb.afpy.org/
|
|
|
|
|
backup deb.afpy.org:/var/discourse/shared/standalone/backups/ deb.afpy.org/
|
2021-04-06 10:13:56 +00:00
|
|
|
|
backup storage.afpy.org:/var/www/ storage.afpy.org/
|
2019-03-06 23:08:06 +00:00
|
|
|
|
```
|
2019-04-03 21:00:30 +00:00
|
|
|
|
|
2019-07-04 20:24:35 +00:00
|
|
|
|
|
2020-11-02 10:04:50 +00:00
|
|
|
|
## BBB
|
|
|
|
|
|
2021-05-12 14:42:30 +00:00
|
|
|
|
On utilise une Start-2-M-SATA chez online.net qui propose directement d'installer BBB.
|
2020-11-02 10:04:50 +00:00
|
|
|
|
|
2021-05-12 14:42:30 +00:00
|
|
|
|
Attention a retenir son mot de passe user temporaire à l'installation
|
|
|
|
|
même si vous avez une clef SSH: vous en aurez besoin pour `passwd` la
|
|
|
|
|
première fois.
|
|
|
|
|
|
|
|
|
|
J'y ai appliqué un poil de ssh-hardening :
|
|
|
|
|
|
|
|
|
|
AuthenticationMethods publickey
|
|
|
|
|
LogLevel VERBOSE
|
|
|
|
|
|
|
|
|
|
Et quand même un peu de confort (enfin c'est surtout que je n'aime pas
|
|
|
|
|
les mots de passe ni sudo) :
|
|
|
|
|
|
|
|
|
|
PermitRootLogin prohibit-password
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|