PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

blog-libre : Démarrer un service selon une condition avec systemd

dimanche 1 mars 2020 à 11:00

Aujourd’hui présentation de quelques commandes puis mise en place d’un drop-in avec condition.

Une petite entrée en matière avec les documentations claires et de qualité d’Adrien de Linuxtricks.fr dont je ne dis pas assez de bien :
systemd : les commandes essentielles
systemd : Créer des services, timers (unités)

Contexte

Dans mon job je dois régulièrement migrer des clients d’un serveur VPS (Virtual Private Server, une machine virtuelle ou VM) vers un dédié (serveur physique). Cette semaine pour la première fois, j’ai migré un client d’un dédié vers un VPS.

Notre manière de procéder est de rsync la totalité du serveur du client vers la nouvelle machine (physique ou virtuelle) bootée en rescue. À la fin de la migration le client a vraiment la même configuration que précédemment. Cependant des services peuvent devenir inutiles et restent en erreur, par exemple le service smartd pour monitorer la santé des disques n’a plus d’intérêt si on est sur une machine virtuelle.

systemd-detect-virt

systemd fournit un outil peu connu permettant de détecter le contexte d’exécution du système dans un environnement virtuel. Sur un serveur physique il retournera none, sur une VM au boulot kvm, dans un conteneur Docker docker simplement avec la commande systemd-detect-virt. Pour lister les différentes technos de virtualisations reconnues systemd-detect-virt --list : none kvm qemu bochs xen uml vmware oracle microsoft zvm parallels bhyve qnx acrn vm-other systemd-nspawn lxc-libvirt lxc openvz docker podman rkt wsl container-other. Le man de cet outil et un court article pour aller plus loin (attention de 2013).

Cet outil permet donc aisément de modifier/scripter une action en fonction du contexte d’exécution mais on veut aller plus loin, faire en sorte que le service smartd ne démarre tout simplement pas si on est dans une machine virtuelle.

Drop-in et conditions

Un drop-in est le moyen employé sur systemd pour « surcharger » la configuration d’un service. Je donne toujours le même article en Français pour expliquer et s’initier aux drop-ins systemd, la documentation nécessitant une recherche sur le mot drop-in.

On va influencer le démarrage du service avec une condition, on en retrouve plus d’une vingtaine ici dont : ConditionArchitecture=, ConditionVirtualization=, ConditionKernelVersion=, ConditionFirstBoot=, ConditionPathExists=, ConditionUser=…

On retient ConditionVirtualization= pour savoir si on est dans un contexte d’exécution virtualisé/conteneurisé/physique/alien/mutant/inconnu/horrible. Avec systemd-analyze condition 'ConditionVirtualization=false' on peut tester notre condition (disponible à partir de systemd 243, Debian « Buster » 10 propose la 241).

systemd-analyze condition 'ConditionVirtualization=false' # Sur mon pc fixe
test.service: ConditionVirtualization=false succeeded.
Conditions succeeded.

Drop-in smartd

Rentrons maintenant dans le vif du sujet, nous allons modifier le fonctionnement du service smartd avec notre condition.

[Unit]
ConditionVirtualization=false

Voici les commandes à lancer. Seules les trois premières sont nécessaires, les deux dernières permettent juste de vérifier que la condition est fonctionnelle.

mkdir -p /etc/systemd/system/smartd.service.d/ # On crée le dossier pour notre drop-in systemd
nano /etc/systemd/system/smartd.service.d/smartd.conf # On renseigne notre drop-in systemd avec notre condition
systemctl daemon-reload # On recharge la configuration systemd
systemctl restart smartd # On redémarre le service smartd
systemctl status smartd # On vérifie si notre condition a été prise en compte et si le service a démarré ou pas

systemctl cat smartd a pour grande qualité de vous montrer la configuration par défaut du système (/lib/systemd/system/smartd.service), le drop-in configuré (/etc/systemd/system/smartd.service.d/smartd.conf) et leurs emplacements.

systemctl cat smartd
# /lib/systemd/system/smartd.service
[Unit]
Description=Self Monitoring and Reporting Technology (SMART) Daemon
Documentation=man:smartd(8) man:smartd.conf(5)

[Service]
EnvironmentFile=-/etc/default/smartmontools
ExecStart=/usr/sbin/smartd -n $smartd_opts
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=syslog

[Install]
WantedBy=multi-user.target

# /etc/systemd/system/smartd.service.d/smartd.conf
[Unit]
ConditionVirtualization=false

Voici la sortie de la commande systemctl status smartd sur une machine virtuelle (donc smartd ne doit pas se lancer).

systemctl status smartd
● smartd.service - Self Monitoring and Reporting Technology (SMART) Daemon
   Loaded: loaded (/lib/systemd/system/smartd.service; disabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/smartd.service.d
           └─smartd.conf
   Active: failed (Result: exit-code) since Sat 2020-02-28 07:03:36 CET; 24s ago
Condition: start condition failed at Sat 2020-02-28 07:03:58 CET; 2s ago
           └─ ConditionVirtualization=false was not met
     Docs: man:smartd(8)
           man:smartd.conf(5)

Conclusion

On aurait pu utiliser systemctl edit smartd (à la place du mkdir -p /etc/systemd/system/smartd.service.d/ et nano /etc/systemd/system/smartd.service.d/smartd.conf) qui crée automatiquement le dossier /etc/systemd/system/smartd.service.d/ et le fichier override.conf qu’il ouvre en édition mais je suis pas fan, il est notamment pas foutu d’ouvrir un fichier nommé autrement que override.conf.

Les drop-ins systemd sont délicieux, je vous les recommande, je vous souhaite un bon dimanche et reste disponible dans les commentaires.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

G3L : Libre en Fête à Valence !

dimanche 1 mars 2020 à 08:44

Découvrez le monde du Libre !

Samedi 28 mars 2020, venez découvrir le Libre à la MJC Chateauvert, 3 Place des Buissonets à Valence (Drôme).

Entrée libre et gratuite.

Au programme :

14h30 Logiciels Libres : vivez la liberté

Qu'est-ce qu'un logiciel libre et pourquoi il est intéressant de les utiliser.

15h00 Notre vie privée, que savent-ils ?

À l'heure du cloud et du smartphone

15h30 Fédération et alternatives aux GAFAM

Comment vivre libéré avec des CHATONS ?

16h00 Démo GNU/Linux

Marre de Windows, d'autres solutions existent

16h30 Musique libre et Install Party

Pendant une session de musique traditionnelle (Irlande, France, Quebec…), on vous aide à remplacer Windows par une distribution GNU/Linux sur votre machine. Si vous souhaitez franchir le pas, venez avec votre PC et une sauvegarde de vos fichiers sur une disque externe ou une clé USB

Si vous voulez préparer au mieux votre ordinateur avant d'y installer une distribution GNU/Linux, vous pouvez participer à l'atelier de préparation à Valence Atelier Libre le 18 mars à 18h, 13bis rue Montplaisir à Valence

Affiche

Gravatar de G3L
Original post of G3L.Votez pour ce billet sur Planet Libre.

Mathias : Sparrow : Wazo PBX sur Raspberry Pi

samedi 29 février 2020 à 15:39

Le jeune projet Sparrow propose un build non officiel de l’architecture armhf de plateforme Wazo. Il vous permet d’héberger un système téléphonique VoIP Open Source complet et programmable sur un Raspberry Pi. Un autre projet qui semble maintenant peu maintenu permettait d’installer un système Xivo ou Wazo (mais en 18.03) sur Raspberry, Raspvivo.

J’apprécie particulièrement cette architecture, car elle permet de manière efficace et avec une faible consommation de faire fonctionner des services performants. Dans la même veine, mais j’en parlerai dans un autre article, j’ai fait fonctionner la plateforme de class 4 de Wazo sur un cluster Kubernetes à base de cartes Raspberry.

J’aime bien la définition de Wazo :

Wazo Platform is an Open Source project writen in python who gets the best from Asterisk and Kamailio to build a telecom platform.

Sparrow peut fonctionner sur n’importe quel système avec une architecture armhf. Il est néanmoins recommandé 2 Go de RAM et une carte SD rapide industrielle d’une taille d’au moins 16 Go. Attention au volume des messages de logs, des backups et surtout des messages vocaux, le chiffre annoncé étant un minimum !

La dernière version est basée sur Wazo 20.01. C’est la seconde version de Sparrow, la première release datant du 3 janvier 2020.

L’ensemble des fonctionnalités de Wazo Platform sont disponibles sous Sparrow  sauf le codec OPUS qui n’est pas fonctionnel. Mais cela n’impactera que les applications WebRTC. De plus, du fait des faibles ressources d’une carte raspberry PI, les capacités de transcodage sont fortement limitées. Veillez bien à correctement configurer vox paramètres SIP.

Le process d’installation est assez simple. Après avoir installé la distribution Raspbian en version minimale (basée sur debian Buster, les dernières releases de Wazo ne supportant plus Jessie mais uniquement Buster), l’installation se déroule en quelques simples lignes de commandes. Le process prend du temps, profitez en pour prendre un bon café et marcher un peu !

Je n’ai pas eu le temps de faire des tests de performances, mais on peut facilement estimer que pour une petite entreprise équipée de 1 ou 2 T0 (2 à 4 appels simultannés) ou une utilisation en homelab, le Raspberry sera suffisament performant.

La documentation est accessible ici : https://sparrow.b5.pm/docs

et le repo github : https://github.com/benasse/sparrow

Merci Benoit Stahl pour ce superbe travail qui met en valeur la force d’une communauté Open Source.

Cet article Sparrow : Wazo PBX sur Raspberry Pi est apparu en premier sur Blog des télécoms - Par Mathias, expert télécom rédigé par Mathias.

Gravatar de Mathias
Original post of Mathias.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Le prix du Raspberry Pi 4 version 2 Go de RAM baisse à 35$ !

samedi 29 février 2020 à 10:11

À l’occasion du huitième anniversaire du Raspberry Pi, la fondation a annoncé dans un billet de blog une baisse du prix du dernier modèle de Raspberry Pi, et ce pour la version milieu de gamme, c’est-à-dire celui à 2 Go de RAM.

Vous pouvez dès à présent retrouver le Raspberry Pi 4 2 Go au nouveau prix de 38€ chez kubii.fr, mais il faudra attendre un peu pour une mise à jour chez Amazon.

Voir le prix chez kubii.fr Voir le prix chez amazon.fr

Avec le Pi 4, la fondation avait introduit un système de gamme.

Jusqu’en juin 2019 et la sortie du Pi 4 s’il existait bien entendu différents modèles de Pi (1A, 1A+, 1B, zéro, 2B, 3B, etc.), un même modèle n’existait qu’en une seule version, ce qui avait l’avantage de rendre le catalogue relativement clair.

Le Raspberry Pi 4 avait changé les choses puisqu’il se déclinait en 3 versions, la différence étant la quantité de RAM (1, 2 et 4 Go), et bien-sur le prix (35$, 45$ et 55$).

Cette modification a certes eu l’inconvénient de rendre le catalogue un peu moins clair, mais elle avait permis à la fondation de maintenir son prix historique de 35$, tout en laissant la possibilité de passer sur une configuration plus musclée. Un moyen pour la fondation de ne pas se laisser déborder par ses concurrents.

Une baisse du prix de la RAM côté fournisseurs qui permet à la fondation de baisser ses prix

Comment la fondation a t-elle pu baisser le prix du Raspberry Pi 4 dans sa version 2 Go ? Et bien là dessus, pas de secret, un vendeur qui baisse son prix ne peut jouer que sur 3 leviers. Baisser sa marge, la fondation n’en fait déjà pas beaucoup ; Améliorer son process de fabrication, on peut imaginer que celui de la fondation est déjà bien optimisé ; Diminuer le coût de ses matières premières, seule solution possible.

Actuellement la seule différence justifiant un écart de prix entre les trois versions du Raspberry Pi est la quantité de RAM. Il se trouve qu’après un pic en 2018, le prix de la RAM ne cesse de baisser, notamment en raison d’investissements massifs de la Chine dans ce secteur.

Évolution du prix d’un kit de RAM DDR4 de marque Corsair. (Source: linuxreviews.org).

C’est cette baisse de prix, directement répercutée sur les clients qui permet aujourd’hui à la fondation de diminuer le prix de la version 2 Go.

Un prix déjà à jour chez Kubii, mais pas encore répercuté partout.

Bien entendu, il faudra peut être un peu de temps pour que la baisse de prix soit répercutée partout.

Mais comme toujours, notre partenaire kubii.fr a été très réactif et vous pouvez dès à présent trouver le Raspberry Pi 4 2 Go aux alentours de 38€ chez eux !

Pour les autres vendeurs, on imagine qu’une baisse de prix devrait suivre très rapidement, notamment chez Amazon.

Quelques questions se posent après le changement de prix.

S’agit-il d’une simple promotion ou d’une baisse de prix permanente ?

Si la baisse de prix vient d’une évolution du marché, et même si la fondation a attendu une occasion un peu spéciale (les 8 ans du Pi), la baisse est bien annoncée comme permanente.

Inutile de faire des stocks donc, le prix ne risque pas de remonter !

Quel avenir pour les autres modèles ?

Dernière question qui se pose, maintenant que le modèle 1 Go coûte le même prix que le modèle 2 Go, que va-t-il advenir de lui ?

Là encore, la réponse de la fondation est claire. La production du modèle 1 Go sera maintenue pour des raisons de support, mais son prix restera à 35$. Pour le même prix on peut néanmoins imaginer que la plupart des gens choisiront le modèle 2 Go.

Quand au modèle à 4 Go son prix reste le même que précédemment, 55$, espérons donc que le prix de la RAM continue à chuter !

Lire l'article complet : Le prix du Raspberry Pi 4 version 2 Go de RAM baisse à 35$ !

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Guillaume Vaillant : DNS over TLS (DoT) and HTTPS (DoH)

vendredi 28 février 2020 à 18:00
This is not about arquing with the usefulness of it. It’s not even about the evenutal gain in privacy or security that it brings. Even if obviously, this thing is a bit useless if you need a hostname to use it, since you would have to do a traditionnal clear text DNS query :-) Prerequisite Ideally, if you want to run your own DoT/DoH server, a good starting point would be to already have your own DNSSEC enabled DNS server.

Gravatar de Guillaume Vaillant
Original post of Guillaume Vaillant.Votez pour ce billet sur Planet Libre.

Articles similaires