Le Wiki de Tchack

Guides et documentation sur le serveur tchack.xyz

Outils pour utilisateurs

Outils du site


adminsys:serveur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
adminsys:serveur [2019/04/03 21:20] – [Mises à jour] ajout screen jaxomadminsys:serveur [2023/12/06 16:59] (Version actuelle) – lien journald disk consumption jaxom
Ligne 2: Ligne 2:
 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|adminsys:apps]] 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|adminsys:apps]]
  
-===== Matériel =====+===== Architecture ===== 
 +Les services tchack sont assurés par 4 machines, réparties comme suit : 
 + 
 +^  Production  ^  Sauvegarde 
 +|  [[#materiel_nuc|NUC]]  |  [[adminsys:nas|NAS]] 
 +|  [[adminsys:vps|VPS]]  |  [[adminsys:vps-b|VPS-b]] 
 + 
 + 
 +:!: 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). 
 + 
 +===== Matériel NUC =====
 Le serveur matériel est constitué par : Le serveur matériel est constitué par :
 +  * un NUC Intel i7 - 8Go de RAM
 +  * 1 SSD 120Go(système) et 1 HDD 750Go
 +  * Virtualisation Proxmox avec image Debian/Ynh située sur le HDD.
 +
 +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 : [[adminsys:migration_hw|migration hardware]]. Auparavant, le serveur principal était :
   * Un Raspberry Pi modèle 3-B   * Un Raspberry Pi modèle 3-B
   * Un [[http://wdlabs.wd.com/products/wd-pidrive-berryboot-edition/|pack de stockage WDLabs]] composé de :   * Un [[http://wdlabs.wd.com/products/wd-pidrive-berryboot-edition/|pack de stockage WDLabs]] composé de :
Ligne 9: Ligne 26:
     * Un disque dur externe 2.5" Western Digital de 1To     * Un disque dur externe 2.5" Western Digital de 1To
  
-Le tout est hébergé à domicile, connecté via une Box Numéricable avec un débit câble assez faible. Une recherche de meilleure connexion est en cours. Il n'y a pas de système de secours d'alimentation.+===== Pile technique NUC =====
  
-Cette configuration "à bas coût" est suffisante pour la qualité de service attendue à ce jour, 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. +  * [[https://pve.proxmox.com/wiki/Downloads#Update_a_running_Proxmox_Virtual_Environment_5.x_to_latest_5.0|mise à jour ProxMox]] en gros, toujours utiliser 'dist-upgrade'.
- +
-:!: Depuis Aout 2018, ce matériel est secondé d'un [[VPS]] hébergé chez PulseHeberg. +
- +
-===== Pile technique ===== +
-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 [[https://yunohost.org|Yunohost]]. +
- +
-La [[adminsys:migration|migration]] a été réalisée depuis Jessie en octobre 2018. +
- +
-Les principales modifications au système sont les suivantes :  +
-  Envoi de SMS à la connexion SSH : [[adminsys:scriptSMS-SSH|script]] utilisant l'API de FreeMobile, appelé par ''/etc/ssh/sshrc'' +
-  * Extinction automatique à la perte du réseau : daemon [[https://raspi-ups.appspot.com/en/software.jsp|UPSD]] conçu pour la gestion d'onduleur à autonomie limitée +
-  * Suppression de la sortie rsyslog -> /dev/xconsole en commentant la fin de ''/etc/rsyslog.conf'' d'après [[https://blog.dantup.com/2016/04/removing-rsyslog-spam-on-raspberry-pi-raspbian-jessie/|ce lien]]. +
-  * Installation des outils ''mailutils'' pour envoi de mail par script (utilisé dans l'installation d'un application).+
  
 ===== Domaine ===== ===== Domaine =====
 Le domaine ''tchack.xyz'' est géré chez OVH, qui fournit également les serveurs de DNS. La zone DNS est sauvegardée à la main [[zoneDNS|ici]]. Le domaine ''tchack.xyz'' est géré chez OVH, qui fournit également les serveurs de DNS. La zone DNS est sauvegardée à la main [[zoneDNS|ici]].
  
 +===== DNS =====
 +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''.
 +
 +<note>classiquement les DNS sont définis par le serveur DHCP qui dit "hey il faudrait utiliser x.y.z.t comme DNS" et la stack réseau gère le /etc/resolv.conf avec ces infos, mais le service resolvconf overwrite ça pour dire que tu veux utiliser 127.0.0.01 pour deleguer les requetes à dnsmasq (etdans dnsmasq tu configure le machin comme tu veux). //Aleks_//</note> 
  
 ===== Sauvegardes ===== ===== Sauvegardes =====
 Voir l'article dédié : [[sauvegardes]] Voir l'article dédié : [[sauvegardes]]
  
-Deux mécanismes complémentaire :  +Plusieurs mécanismes complémentaires :  
-  * Sauvegardes effectuées manuellement avec ''yunohost backup create'' => fichiers résultants copiés manuellement sur d'autres disques : Freebox maison...  +  * Sauvegardes effectuées manuellement avec ''yunohost backup create'' <del>=> fichiers résultants copiés manuellement sur d'autres disques : Freebox maison...</del>  
-  * Automatisation quotidienne avec CRON et ''rsync'' vers le NAS distant d'Hervé.+  * Sauvegarde chiffrée des fichiers avec l'application borg, sur un VPS dédié à la sauvegarde
 +  * Automatisation avec CRON et copie ''rsync'' vers le NAS distant d'Hervé. ( FIXME en panne depuis 2022)
  
-:!: 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 Yunhost. Le [[adminsys:pra|Plan de Reprise d'Activité]] est donc plus complexe pour retrouver un fonctionnement à 100%.+:!: 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 [[adminsys:pra|Plan de Reprise d'Activité]] est donc plus complexe pour retrouver un fonctionnement à 100%.
  
  
-===== Securité =====+===== Sécurité =====
 Les services de base de yunohost sont bien entendus activés. De plus, en suivant les conseils [[https://yunohost.org/#/security|ici]], le port SSH est modifié à **2222**. Cela impacte également la connexion en SFTP pour les applications web utilisant cet accès. Les services de base de yunohost sont bien entendus activés. De plus, en suivant les conseils [[https://yunohost.org/#/security|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 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 pi@rpi donne accès à jaxadmin@VPS.+La clé id_rsa de p@rpi donne accès à jaxadmin@VPS. 
  
  
 ===== Mises à jour ===== ===== 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 [[https://raspberrypi.stackexchange.com/questions/72022/configuring-unattended-upgrades-on-raspbian-stretch | ce post]] et la [[https://wiki.debian.org/UnattendedUpgrades|documentation Debian]]. 
  
-Chaque serveur peut ê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''.+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''. 
 + 
 + 
 + 
 +===== Proxmox ===== 
 +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 ''
 + 
 +<code> 
 +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 
 +</code> 
 + 
 +Pour éviter de saturer le disque physique avec les images virtuelles des VM :  
 +  - activer TRIM : https://www.digitalocean.com/community/tutorials/how-to-configure-periodic-trim-for-ssd-storage-on-linux-servers 
 +  - enable timer + modifier /etc/fstab + réglage de l'option dans la config proxmox de chaque VM. 
 + 
 + 
 +===== Versions de Node JS ===== 
 +Ce [[https://forum.yunohost.org/t/how-to-free-up-space-node-uses-more-than-8-gb-space/17596/9 | 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 :  
 +  - Lister les versions utilisées : ''grep -nr "nodejs_version:" /etc/yunohost/apps/*/settings.yml'' 
 +  - Supprimer les autres dossiers dans ''/opt/node_n/n/versions/node'' ainsi que ''/usr/local/n/versions/node'' 
 + 
 +===== Taille des journaux ===== 
 +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 
 ===== Liens Divers ===== ===== Liens Divers =====
 cf [[adminsys:outils|Outils d'administration système]] cf [[adminsys:outils|Outils d'administration système]]
 +
 +
 +----
 +
 +DELETEME La suite de cette page n'est plus d'actualité.
 +
 +===== Pile technique RPi =====
 +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 [[https://yunohost.org|Yunohost]].
 +
 +La [[adminsys:migration|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 : 
 +  * <del>Envoi de SMS à la connexion SSH : [[adminsys:scriptSMS-SSH|script]] utilisant l'API de FreeMobile, appelé par ''/etc/ssh/sshrc''</del> retiré car incompatible Ansible.
 +  * <del>Extinction automatique à la perte du réseau : daemon [[https://raspi-ups.appspot.com/en/software.jsp|UPSD]] conçu pour la gestion d'onduleur à autonomie limitée</del> retiré car connexion instable
 +  * Suppression de la sortie rsyslog -> /dev/xconsole en commentant la fin de ''/etc/rsyslog.conf'' d'après [[https://blog.dantup.com/2016/04/removing-rsyslog-spam-on-raspberry-pi-raspbian-jessie/|ce lien]].
 +  * Installation des outils ''mailutils'' pour envoi de mail par script (utilisé dans l'installation d'un application).
 +
 +===== Swap RPi =====
 +Bien que rejetée par le [[https://github.com/maxnet/berryboot/issues/408 | 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 : 
 +
 +  - Créer un fichier de swap à l'aide de ''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''.
 +  - Monter ce fichier au sein de ''aufs'' en [[https://sourceforge.net/p/aufs/mailman/message/23085077/|mode Bind]] là où on souhaite placer la swap, en l'occurrence : ''mount --bind /boot/swap.file /var/swap.file''
 +  - Activer la swap à l'aide de la commande : ''swapon /var/swap.file''
 +
 +* Ajout sécurité : Alerte sur les connexions SSH via un script appelé à la connexion (d'après [[https://unix.stackexchange.com/a/7394|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 [[https://raspberrypi.stackexchange.com/questions/72022/configuring-unattended-upgrades-on-raspbian-stretch | ce post]] et la [[https://wiki.debian.org/UnattendedUpgrades|documentation Debian]].
adminsys/serveur.1554319246.txt.gz · Dernière modification : 2019/04/03 21:20 de jaxom