Documenting the server infrastructure.
Go to file
Julien Palard 3606efcbd5 Ignore emacs backups. 2019-12-18 13:42:46 +01:00
group_vars/all Deploying https://afpy.org 2019-12-17 17:50:07 +01:00
roles Drop unused role. 2019-12-18 13:41:45 +01:00
.gitignore Ignore emacs backups. 2019-12-18 13:42:46 +01:00
README.md Drop unused role. 2019-12-18 13:41:45 +01:00
afpy.org.yml Switch from julienpalard.static_website to more flexible julienpalard.nginx 2019-12-18 13:37:55 +01:00
ansible.cfg Passbolt: First try (not yet stable). 2019-02-14 00:54:02 +01:00
backup.yml Split playbook. 2019-12-16 22:28:47 +01:00
inventory Configure hostnames 2019-12-17 10:37:39 +01:00
passbolt.yml Passbolt: Pin version. 2019-12-17 21:44:30 +01:00
pycon.fr.yml Switch from julienpalard.static_website to more flexible julienpalard.nginx 2019-12-18 13:37:55 +01:00
requirements.yml Switch from julienpalard.static_website to more flexible julienpalard.nginx 2019-12-18 13:37:55 +01:00
site.yml Firewall 2019-12-17 23:35:25 +01:00

README.md

Survol des playbooks Ansible

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
  • passbolt.yml: Pour passbolt.
  • backup.yml: Configure rsnapshot pour sauvegarder nos serveurs.

En partant de là, on peut utiliser les commandes suivantes:

Après avoir cloné ce repo, installé Ansible dans un venv, installez les roles nécessaires via :

  • ansible-galaxy install -r requirements.yml

Puis pour jouer les playbooks :

  • Pour tout relancer : ansible-playbook site.yml
  • Pour configurer les PyCons : ansible-playbook pycons.yml
  • Pour configurer Passbolt : ansible-playbook passbolt.yml (attention voir #15).

Faire, ne pas faire

Faire : Configurer les machines : apt install, fichiers de configuration, utilisateurs, ...

Ne pas faire : Deployer. C'est le rôle de la CI (Github Actions, ...).

Servers

TODO

  • Rédiger le ansible pour afpy.org, en profiter pour mettre en place du continuous delivery.
  • Vérifier les versions des Django des pycon 2012, 2013, 2014, 2015
  • Déployer les django des pycon 2012, 2013, 2014, 2015 via Ansible
  • Sauvegarder puis supprimer la jail membres
  • Rediriger le sous domaine afpyro.afpy.org vers autre chose.
  • Sauvegarder puis supprimer la jail afpyro
  • Setup watchghost

deb.afpy.org

La seule machine déployée via Ansible.

fingerprint: SHA256:xVC4sYYdmDSbJP6JWZUxApzHdbAj1p3uZlOEIksXrMA.

rainette.afpy.org

Liste des jails toujours utiles :

  • web: héberge https://afpy.org (https://github.com/afpy/site/)
  • dns
  • smtp:
    • smtpd (/usr/local/etc/mail/smtpd.conf)
    • dovecot (comptes: /usr/local/etc/mail/tables/passwd)
    • spamd
  • pyconfr
    • Un static dump de 2013: /home/pyconfr/static_dump/2013/.
    • Un static dump de 2014: /home/pyconfr/static_dump/2014/.
    • Un static dump de 2015: /home/pyconfr/static_dump/2015/.
    • Les Pelican de 2016, 2017, 2018.
    • Le flask-freeze de 2019.
  • mailman
    • Le sitepass est disponnible dans passbolt.
  • http
    • C'est le nginx qui dispatch aux autres jails.
    • 2019-07-04: rm sites-enabled/{plone,hg,paullaroid,membres,supervision}.afpy.org
  • alain
    • Bot IRC sur #afpy sur freenode.

Jails en fin de vie :

storage.afpy.org

Accessible via https://dl.afpy.org

On y stocke :

  • videospyconfr2016
  • videospyconfr2015
  • http
  • backupdebian
  • ns1

163.172.45.2

Est une machine de test de Julien, configurée via Ansible, elle héberge:

  • paullaroid.pycon.fr
  • pycon2010.pycon.fr
  • pycon2011.pycon.fr

Ansible

On utilies ces rôles Ansible :

julienpalard.nginx

Voir la doc.

common

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, pas de mlocate, hostname propre, firewall, ce genre de broutilles).

Backups

Julien Palard a un rsnapshot (en 2019 en tout cas) de storage.afpy.org sur son NAS perso, avec :

backup  root@storage.afpy.org:/usr/jails/http/usr/local/www/nginx-dist/dl/      storage.afpy.org/

backup  root@rainette.afpy.org:/etc/    rainette.afpy.org

backup  root@rainette.afpy.org:/usr/jails/web/usr/local/etc/    rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/web/root/     rainette.afpy.org

backup  root@rainette.afpy.org:/usr/jails/dns/usr/local/etc/    rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/supervision/usr/local/etc/    rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/static/usr/local/etc/ rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/ldap/usr/local/etc/   rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/smtp/usr/local/etc/   rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/pyconfr/usr/local/etc/        rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/plone/usr/local/etc/  rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/couchdb/usr/local/etc/        rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/photomaton/usr/local/etc/     rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/membres/usr/local/etc/        rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/mailman/usr/local/etc/        rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/http/usr/local/etc/   rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/alain/usr/local/etc/  rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/afpyro/usr/local/etc/ rainette.afpy.org

backup  root@rainette.afpy.org:/usr/jails/http/usr/local/www/   rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/mailman/usr/local/www/        rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/pyconfr/usr/local/www/        rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/static/usr/local/www/ rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/supervision/usr/local/www/    rainette.afpy.org
backup  root@rainette.afpy.org:/usr/jails/web/usr/local/www/    rainette.afpy.org

Passbolt

See passbolt backup documentation.

On a un CRON qui lance un mysqldump vers /srv/backups/passbolt.sql sur le serveur du passbolt, qui dont pourrait se faire sauvegarder par rsnapshot.