I develop stuff and have opinions on things -
About me/Contact

Articles:

Notes d’hébergement

Un ensemble de notes, principalement pour moi.

Ansible

Quand on a le temps, c’est toujours bien de se poser et d’essayer d’écrire un role ansible (ou autre outil de déploiement) pour un service qu’on met en place. Même si c’est pour se rendre compte que tout rendre idempotent et facile prendrait beaucoup de temps, ça permet de noter les étapes et différents problèmes possibles.

J’ai commencé à le faire sur https://git.mathieui.net/ansible-tools lors de la réinstallation toute fraîche de mon serveur principal (je ne recommande pas leur utilisation pour autant).

Certaines choses (les données, la conf un peu sensible, les clefs) ne sont pas très pratiques à intégrer dans un role ansible, mais beaucoup d’autres choses peuvent l’être.

Borg

Faire des backups c’est bien. Avoir des backups hors-site c’est mieux. Au lieu de transférer ses données de serveur en serveur, créer un backup pendant la maintenance, puis lancer borg extract sur le nouveau serveur pour les restaurer me semble être une bonne pratique.

J’utilise les storage box hetzner pour stocker mes données, car le prix au GB/TB n’est pas très cher, ils fournissent un accès SFTP, et le niveau de facturation augmente tout seul si les données grossissent plus que le niveau de facturation actuel. Idéalement il est également répliqué en local, pour une vitesse de restauration et des temps d’accès biens meilleurs.

Si on a de la place en rab, on peut facilement fournir un accès ssh limité à un ami qui lui permettra de stocker ses données tout en ne risquant pas trop de compromettre la machine.

Histfile

À chaque fois que j’oublie de mettre un historique infini à mon bash ou zsh, je m’en mords les doigts quelques mois/années après quand des commandes qui sont dedans disparaissent par dépassement d’historique. Très pratique pour retracer ses pas, surtout quand c’est assorti de la date comme dans zsh.

Syncthing

Syncthing est un outil formidable qui permet de partager des documents entre plusieurs machines de confiance (ou non). Il permet par exemple de synchroniser le dossier de photos de son téléphone de façon passive, ou encore de partager un fichier keepass entre plusieurs personnes, ou de faire un backup de son dossier pass.

Docker

Si un logiciel que vous comptez utiliser propose un seul moyen d’installation et que ce moyen est docker, c’est probablement que ses auteurs sont incapables de déterminer de quoi il dépend et de l’exprimer clairement, donc fuyez.

Mais Docker peut se réveler très pratique pour isoler facilement certains services du reste du système (pensez à Podman toutefois). J’ai par exemple une machine avec docker + traefik + docker swarm qui me permet de déployer des services à la demande sur un wildcard dns et d’avoir traefik qui se débrouille pour récupérer le certiicat et faire passe-plats.

BTRFS

J’avais pour coutume d’utiliser ext4 partout, mais BTRFS a quand même des fonctionnalités très pratiques, pour une stabilité maintenant plutôt éprouvée :

  • Le copy-on-write
  • Les snapshots
  • Checksum des fichiers
  • Les subvolumes (permet d’avoir deux volumes logiques sur la même partition, tout en partageant l’espace de stockage)
  • La compression (pour gagner de la place, activation possible sur données que l’on sait compressibles)
  • L’envoi/réception de partitions/snapshots à travers le réseau ou dans un shell

Mine de rien, quand l’espace disque et la bande passante sont suffisants, c’est très plaisant de pouvoir juste transférer le filesystem à travers ssh. Contrairement à la même chose avec dd, seulement les données présentes sur le disque sont transmises !

Chiffrement de disque

Un certain nombre d’options faciles d’accès de nos jours permettent d’insérer un serveur ssh minimaliste tel que dropbear ou tinyssh dans l’image du noyau, afin de déverouiller la machine a distance, une fois authentifié via une clef ssh.

Sous Arch, mkinitcpio-systemd-tool permet de le faire assez simplement, j’y reviendrai dans un article futur.

P. S.: attention toutefois car sans bricolage, ce sont vos clefs ssh de l’hôte qui se retrouvent à l’intérieur de l’image du noyau, donc en clair dans /boot ! (mais dans tous les cas ça reste mieux que l’intégralité du système en clair)

P. S. 2: Si le processeur ne supporte pas le déchiffrement matériel d’AES, c’est probablement une mauvaise idée.

SSD

Arrêtez les disques durs, sauf si vous avez besoin de beaucoup de stockage. C’est lent et le prix des SSD ne justifie plus de s’en passer (on parle de 240GB pour 30€ en neuf à l’heure actuelle).

DNSSEC

Si on accepte l’utilité de DNSSEC, alors il ne faut pas oublier de mettre en place un renouvellement automatique, ainsi que vérifier que la réplication et la notification de mise à jour de zone fonctionne, sinon on a plein de problèmes bizarres d’interconnexion et on a du mal à savoir d’où ça vient.

Monitoring

Mettre en place prometheus, grafana, et node-exporter ne coûte rien, et ça permet d’avoir un aperçu rapide (ou détaillé) de la santé de ses serveurs.

J’utilise à la fois celui-ci pour avoir un aperçu général, et celui-là pour un aperçu détaillé en sélectionnant la machine.

En plus de ça, il est intéressant de mettre en place des exports pour les données applicatives quand elles sont disponibles, c’est le cas par exemple pour prosody.

(Si vous en avez besoin vous pouvez aussi regarder pour les logs avec des SIEM ou autres bases de données comme ELK ou Loki, mais c’est en général trop prenant pour que ça vaille le coup si l’infra est petite)

Pare-feu

Je n’aime pas trop iptables, mais nftables est disponible depuis un moment et sa configuration de base est assez simple, et à mon sens plus digeste.

Paiement

Quand on est chez Hetzner, il faut bien prendre en compte le fait que leur système de paiement par carte bleue est défaillant, et utiliser leur prélèvement bancaire. L’alternative est de se retrouver tous les 1 à 2 mois à devoir aller payer manuellement pour qu’ils rétablissent l’accès réseau au serveur parce que vous avez raté les mails de relance.

Boards ARM

Une microSD vous lâchera toujours au mauvais moment, de façon plus ou moins perceptible. Il faut donc toujours avoir son système sur un disque dur ou SSD associé, quitte à avoir /boot sur la carte mémoire si le SoC ne supporte pas le boot USB (ou SATA).

P. S. : Le raspberry pi 4 est une bonne machine, mais il faut lui acheter un moyen de dissipation, que ce soit un boîtier passif (joli et silencieux), ou un boîtier/heatsink actif (possiblement joli mais plus bruyant).

P. S.2 : La plupart des SoC ne reçoivent pas assez de jus pour faire tourner un disque dur ou un SSD, il faut des boitiers avec l’alimentation qui vient d’ailleurs.

Si vous avez des remarques ou commentaires à propos de cet article, n’hésitez pas à me contacter.