Cette page donne des informations sur la partie “base” du système de Tchack, les couches basses. Pour l'administration des services, voir adminsys:apps
Les services tchack sont assurés par 4 machines, réparties comme suit :
Depuis Aout 2018, le serveur principal est secondé d'un VPS hébergé chez PulseHeberg. Les sauvegardes sont effectuées sur un NAS à distance, et sur une seconde VM louée en Bulgarie (espace disque pas cher).
Le serveur matériel est constitué par :
Le tout est hébergé à domicile, connecté via une Box Numéricable avec un débit câble moyen (40/26Mbps en sept 20). Une recherche de meilleure connexion est en cours. Il n'y a pas de système de secours d'alimentation.
Le matériel a été migré à l'été 2020 : migration hardware. Auparavant, le serveur principal était :
Le domaine tchack.xyz
est géré chez OVH, qui fournit également les serveurs de DNS. La zone DNS est sauvegardée à la main ici.
La réponse aux noms de domaines est gérée par les services dnsmasq
et resolvconf
. Si le fichier /etc/resolv.conf
est en dur (erreur sur le VPS en juin 2019), rétablir le lien par rm /etc/resolv.conf
puis ln -s /etc/resolvconf/run/resolv.conf /etc/resolv.conf
.
Voir l'article dédié : sauvegardes
Plusieurs mécanismes complémentaires :
yunohost backup create
rsync
vers le NAS distant d'Hervé. (
Les éléments du système hors Yunohost, tels l'appli RPi-Monitor, les clés SSH, les comptes utilisateurs du serveur, les journaux d'installation, les BDD… ne sont pas sauvegardés par Yunohost. Le Plan de Reprise d'Activité est donc plus complexe pour retrouver un fonctionnement à 100%.
Les services de base de yunohost sont bien entendus activés. De plus, en suivant les conseils ici, le port SSH est modifié à 2222. Cela impacte également la connexion en SFTP pour les applications web utilisant cet accès.
La connexion SSH par mot de passe est désactivée, seule la clé publique (sur l'ordinateur de l'adminsys) permet une connexion.
La clé id_rsa de p@rpi donne accès à jaxadmin@VPS.
Chaque serveur doit être régulièrement mis à jour (apps et paquets) en utilisant yunohost tools update|upgrade
. pour éviter les déconnexions SSH intempestives, penser à lancer ces commandes après un
screen
, que l'on peut re-joindre via screen -r -d
.
Pour vérifier le contenu d'une image disque qcow (qui peut être plus grand que la taille configurée), voir la commande qemu-img info vm-1002-disk-0.qcow2
.
image: vm-1002-disk-0.qcow2 file format: qcow2 virtual size: 500G (536870912000 bytes) disk size: 988G cluster_size: 65536 Snapshot list: ID TAG VM SIZE DATE VM CLOCK 2 sauv181019 0 2019-10-18 08:12:42 20:45:15.988 3 pass_201020 0 2020-10-20 12:49:48 2017:57:27.767 4 upgrade_buster 0 2021-03-31 19:00:49 5912:09:11.846 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
Pour éviter de saturer le disque physique avec les images virtuelles des VM :
Ce fil du forum indique que les anciennes versions de Node JS ne sont pas supprimées. Pour libérer l'espace disque inutile, on peut suivre cette procédure :
grep -nr “nodejs_version:” /etc/yunohost/apps/*/settings.yml
/opt/node_n/n/versions/node
ainsi que /usr/local/n/versions/node
Il est possible de configurer l'espace disque consommé par les fichiers de logs de journald : https://askubuntu.com/questions/1238214/big-var-log-journal
Le serveur utilise le système d'exploitation Raspbian Stretch (qui correspond à Debian 9 adapté au raspberry pi). Les applications, à l'exception de celles ci-dessous, sont installées au travers de l'infrastructure Yunohost.
La migration a été réalisée depuis Jessie en octobre 2018.
Cette configuration “à bas coût” était suffisante pour la qualité de service attendue, tant en terme de débit que de disponibilité. Des coupures électriques, en l'absence d'onduleur de secours, peuvent corrompre la carte SD et empêcher le redémarrage du serveur.
Les principales modifications au système sont les suivantes :
/etc/ssh/sshrc
/etc/rsyslog.conf
d'après ce lien.mailutils
pour envoi de mail par script (utilisé dans l'installation d'un application).
Bien que rejetée par le développeur de BerryBoot, le serveur a besoin de swap,notamment pour réussir une mise à jour de Nextcloud. Le filesystem de type aufs
ne le permettant pas (swapon swap.file
renvoie une erreur d'E/S), voici le moyen de contourner le problème :
dphys-swap
sur la carte SD. Celle-ci est montée sur /boot
avec un autre type de FS, qui autorise la swap. Voir les réglages dans le fichier /etc/dphys-swap
.aufs
en mode Bind là où on souhaite placer la swap, en l'occurrence : mount –bind /boot/swap.file /var/swap.file
swapon /var/swap.file
* Ajout sécurité : Alerte sur les connexions SSH via un script appelé à la connexion (d'après ce fil)
* mises à jour : Le fonctionnement unattended-upgrades
de Debian est activé sur le Rpi (tout est mis à jour car Raspbian n'a pas de dépôt distinct dédié à la sécurité) ainsi que sur le VPS (uniquement les MàJ de sécurité Debian).
Cf ce post et la documentation Debian.