❌

Vue normale

Reçu — 9 octobre 2026 ⏭ Actualités libres

Scrippy : en finir avec script_final_old_v3_OK_last.py

Tout administrateur système a croisé un jour, au détour d'un serveur, un script_final_old_v3_OK_last.py sans logs, sans historique, avec un mot de passe en clair à la ligne 42 et un commentaire # TODO: gérer les erreurs daté de 2014.

Après cinq ans de développement en parallèle de mes activités professionnelles, je publie Scrippy, un framework Python sous licence MIT pour écrire des scripts d'exploitation standardisés, robustes et prêts pour la production.

Sommaire

Le constat : le script d'exploitation, ce grand oublié

Dans beaucoup d'équipes, les scripts d'exploitation sont écrits vite, chacun à sa manière, puis maintenus dans la douleur. Le cycle de vie typique est bien connu :

  1. « C'est juste un petit script, je l'écris vite fait. »
  2. Le petit script part en production.
  3. L'auteur part en vacances (ou change d'entreprise).
  4. Le script plante un dimanche à 3 h du matin.
  5. L'astreinte découvre qu'il n'y a ni logs, ni historique, ni documentation, et que la configuration est codée en dur entre deux print("ici").

Le tout agrémenté d'un mot de passe qui s'affiche fièrement dans la sortie standard. Oui, hunter2, on te voit.

Le principe : un en-tête déclaratif

Avec Scrippy, un script décrit son comportement dans un en-tête déclaratif : auteur, version, description, configuration attendue, options acceptées, utilisateurs autorisés, nombre d'exécutions simultanées. Une seule instruction with dans le code suffit ensuite pour bénéficier de l'ensemble des fonctionnalités, sans écrire une seule ligne de plomberie :

  • un fichier de log par exécution, avec sortie colorée sur le terminal ;
  • un historique complet des exécutions (paramètres, durée, code retour) ;
  • un fichier de configuration par script, chargé et validé au démarrage ;
  • des options de ligne de commande analysées et validées depuis l'en-tête, avec un --help généré automatiquement (personne n'aura plus d'excuse pour ne pas RTFM) ;
  • le masquage automatique des secrets dans les logs et l'historique ;
  • la restriction des utilisateurs et groupes autorisés à lancer le script ;
  • une limite d'exécutions simultanées, avec file d'attente ;
  • un répertoire de travail temporaire par exécution, supprimé automatiquement ;
  • une gestion d'erreurs propre et des codes retour exploitables par votre ordonnanceur préféré.

Un exemple vaut mieux qu'un long discours

Voici un script de surveillance de l'occupation d'un système de fichiers. Toute ressemblance de l'auteur avec un personnage des Monty Python n'est évidemment pas fortuite : on fait du Python, on a des traditions.

#!/usr/bin/env python3
"""
--------------------------------------------------------------------------------
  @author         : Luiggi Vercotti
  @date           : 2026-10-08
  @version        : 1.0.0
  @description    : Monitor filesystem usage
--------------------------------------------------------------------------------
  Configuration:
    @conf:thresholds|warning|int|false
--------------------------------------------------------------------------------
  Options:
    @args:mount-point|str|Mount point to check|1|/|||false|false
--------------------------------------------------------------------------------
"""
import shutil
import scrippy_core
from scrippy_core import logger

def main():
  with scrippy_core.ScriptContext() as _context:
    usage = shutil.disk_usage(_context.args.mount_point)
    percent = round(usage.used * 100 / usage.total, 1)
    if percent >= _context.config.get("thresholds", "warning", "int"):
      logger.warning(f"[+] {_context.args.mount_point}: {percent}% used")

if __name__ == '__main__':
  main()

Ce court script dispose déjà de --help, --version, d'un fichier de configuration validé, d'une option --mount-point validée, d'un log par exécution (--log), d'un historique (--hist), d'un mode debug (--debug) et d'un espace de travail temporaire. Le tout sans avoir vendu son âme à un fichier YAML de 800 lignes, ni avoir à relire une n-ième fois la doc de argparse, ni sans incantation mystique pour la configuration de log, ni pentacle renversé. Ni !

Le double bénéfice

D'une part, tous les scripts d'exploitation suivent le même standard : ils se lisent, s'exploitent et se maintiennent de la même façon, quel que soit leur auteur. Le script du collègue parti n'est plus une boîte noire.

D'autre part, ils s'écrivent beaucoup plus vite : inutile de recoder ces contrôles dans chaque script, on se concentre sur ce qu'il doit réellement faire. Le temps gagné peut être réinvesti dans des activités à haute valeur ajoutée, comme le troll sur systemd.

Les modules

Le cœur (scrippy-core) est complété par des modules optionnels :

  • scrippy-remote : exécution distante et transferts de fichiers (SSH/SFTP, FTP/FTPS, CIFS) ;
  • scrippy-api : client d'API REST, avec prise en charge d'OpenAPI ;
  • scrippy-db : requêtes PostgreSQL, MySQL et SQLite ;
  • scrippy-mail : envoi et lecture de courriels (SMTP, IMAP, POP3) ;
  • scrippy-snmp : opérations SNMP get, walk et set ;
  • scrippy-git : gestion de dépôts Git ;
  • scrippy-template : génération de documents à partir de modèles Jinja2.

Pas un prototype

Scrippy n'est pas né d'un week-end pluvieux. Il tourne depuis plusieurs années en production, sur des usages bien réels. Il a donc survécu à des mises à jour, des migrations et des vendredis après-midi, ce qui constitue une forme de certification assez exigeante.

Pourquoi seulement maintenant ?

Parce que je n'étais pas satisfait de la documentation. Un outil mal documenté ou dont la documentation n'est pas à jour est un outil qu'on n'adopte pas, et, même si jusque là celà a été le cas pour Scrippy, « Use The Source, Luke » n'est pas une stratégie d'adoption. Je ne voulais pas publier un projet que d'autres ne pourraient pas s'approprier.

Dans les faits le code a toujours été publié mais n'ayant jamais fait aucune annonce l'adoption de Scrippy est relativement comparable à celle de GNU Hurd !

La question qui fâche : et l'IA dans tout ça ?

Avant que le Jihad butlérien ne se lève dans les commentaires, par souci de transparence : le code de Scrippy a été écrit par un humain, sur cinq ans.

Claude m'a aidé à remettre à plat la documentation, à l'enrichir d'un tutoriel progressif (voir la documentation pas à pas) et à maintenir à jour les README.md des dépôts. Il m'a également permis de détecter et corriger quelques bogues passés sous les radars malgré des années d'exploitation, ce qui est à la fois utile et clairement vexant.

L'IA reste un outil. Le meilleur des outils, entre les mains de quelqu'un qui ne sait pas ce qu'il fait, ne le rendra pas meilleur : un rm -rf reste un rm -rf, quelle que soit la qualité du clavier. C'est l'expérience, la compréhension du besoin et l'exigence qui font la qualité d'un projet. L'outil permet d'aller plus loin et plus vite.

Licence

Scrippy est un logiciel libre distribué sous licence MIT : vous pouvez l'utiliser, le modifier, le redistribuer et l'intégrer à vos projets, y compris commerciaux, à la seule condition de conserver la mention de copyright et le texte de la licence.

Vos retours sont les bienvenus

Si vous écrivez des scripts d'exploitation en Python, je serais ravi d'avoir vos retours, critiques comprises : la syntaxe de l'en-tête, les fonctionnalités manquantes, ou la comparaison avec ce que vous utilisez aujourd'hui.

Les rapports de bogues sont acceptés. Les trolls aussi, tant qu'ils sont de qualité (et vous pouvez y aller car mon Prumpleffer a été calibré par tTh).

Commentaires : voir le flux Atom ouvrir dans le navigateur

Python 3.15 released

Par : jzb
9 octobre 2026 à 17:15

Version 3.15 of the Python programming language has been released. Notable changes in this release include the addition of the sentinel and frozendict built-in types, the use of UTF-8 encoding by default, package start-up configuration files, as well as improvements in the experimental JIT compiler. See the "What's new in Python 3.15" article for an in-depth look at new features in this release, and the changelog for a full list of changes.

[$] Adding kernel control-flow-integrity checking to GCC

Par : corbet
9 octobre 2026 à 17:06
While many developers are struggling to keep up with the flood of vulnerability reports, others are still focused on preventing those reports from happening in the first place. Control-flow integrity (CFI) is the term for preventing (or at least detecting) exploits that divert the flow of control from its intended paths. At the 2026 GNU Tools Cauldron, Kees Cook presented his changes to the GCC compiler suite to support forward-edge CFI for the kernel.

BYD met à jour sa Dolphin Surf : 5 places, Google à bord…et le bonus en ligne de mire ?

9 octobre 2026 à 16:03

La citadine électrique la plus accessible de BYD revoit un peu sa configuration. La Dolphin Surf gagne une cinquième place, intègre Google et profite de rabais en octobre en attendant un éventuel bonus.

Révolution pour le bus et le tram à Nice : la carte Lignes d’Azur arrive sur iPhone dans quelques jours

9 octobre 2026 à 15:59

Après l'Île-de-France et les cartes Navigo, la métropole Nice Côte d'Azur sera la seconde à intégrer ses titres de transport dans l'application Apple Cartes sur iPhone et Apple Watch. Il devrait bientôt être possible d'acheter des tickets ou de gérer son abonnement sur iPhone.

[$] The state of systemd: 2026 edition

Par : jzb
9 octobre 2026 à 14:58

At the 2026 All Systems Go! conference, systemd maintainers Luca Boccassi and Zbigniew Jędrzejewski-Szmek delivered the traditional "state of the project" session with an overview of the systemd project's accomplishments in the past year. That was followed by a maintainer round table where Boccassi, Jędrzejewski-Szmek, Daan De Meyer, and project leader Lennart Poettering fielded questions about systemd's size, health, and if it might replace Kubernetes. (It will not.)

Ledger lance l’alerte sur un revendeur après des vols de cryptos estimés à 86 millions de dollars

9 octobre 2026 à 14:15

Ledger enquête actuellement sur des vols de cryptomonnaies qui touchent des clients d’un revendeur, CryptoBilis, actif en Asie du Sud-Est. Selon un enquêteur on-chain, plus de 86 millions de dollars auraient déjà été siphonnés sur des wallets de la marque.

Let's Encrypt moving to 64-day certificate lifetimes in 2027

Par : jzb
9 octobre 2026 à 14:02

Let's Encrypt, the nonprofit that provides free TLS certificates for millions of sites, has announced that it will be moving to certificates with 64-day lifetimes on February 10, 2027:

This means that any certificate we issue or renew on and after that date will have a 64 day validity period, and we expect the last 90-day certificate to expire on May 11, 2027. We will not revoke valid certificates as a part of this process.

This is the second stage of Let's Encrypt's plan, announced in 2025, to move to 45-day certificate lifetimes as required by the the CA/Browser Forum Baseline Requirements. In 2028, Let's Encrypt will switch to 45-day certificates.

Successeur du Rafale : la France fixe seule les jalons 2027 et 2029 du NGF, après le retrait de l’Allemagne

9 octobre 2026 à 14:00

Le ministère des Armées lancera en 2027 la phase qui doit faire voler un prototype du successeur du Rafale, puis en 2029 le développement de l'avion de série, selon les documents du budget 2027. La France mène désormais ce chantier seule, après le retrait de l'Allemagne en juin.

Security updates for Friday

Par : jzb
9 octobre 2026 à 13:08
Security updates have been issued by AlmaLinux (bind, bind9.16, freerdp, glibc, kbd, mod_auth_openidc, openssl, perl-DBI, python3.12, python3.14, and tftp), Debian (rails and twitter-bootstrap3), Fedora (barman, cockpit, hcloud, libmodsecurity, nginx-mod-modsecurity, perl-DBI, sudo, and xorg-x11-server-Xwayland), Mageia (libxfont2), Oracle (bind9.18, firefox, kernel, nodejs24, perl-DBI, and vim), Red Hat (kernel, libreswan, opentelemetry-collector, osbuild-composer, rhc, and runc), SUSE (alloy, amazon-ecs-init, bind, busybox, distribution, emacs, ghostscript, glibc, GraphicsMagick, hauler, helm, helm3, jackson-annotations, jackson-core, jackson-databind, kernel, libpoppler-cpp3, libxtst, logback, nvidia-open-driver-G07-signed, perl-DBI, php-composer2, pi-coding-agent, portprotonqt, pvetui, python-hpack, python313-GitPython, and wpa_supplicant), and Ubuntu (apache2, bluez, libarchive, libde265, libgit2, libpng1.6, libxml2, linux, linux-aws, linux-aws-6.8, linux-aws-fips, linux-fips, linux-realtime, linux-realtime-6.8, linux-aws-7.0, linux-azure, linux-azure-6.8, linux-azure-fde, linux-azure-fde-6.8, linux-azure-fips, linux-azure-7.0, linux-azure-fde-7.0, linux-gcp, linux-gcp-6.8, linux-gcp-fips, linux-gcp-7.0, linux-hwe-7.0, linux-oracle-7.0, linux-gke, linux-gkeop, linux-ibm, linux-lowlatency, linux-lowlatency-hwe-6.8, linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency, linux-oracle, linux-ibm-6.8, linux-nvidia, and linux-oem-6.17).

3,10 % brut pendant un an : combien rapporte réellement le livret boosté Bfor+ de BforBank ? [Sponso]

9 octobre 2026 à 12:17

Cet article a été réalisé en collaboration avec BforBank

Offre de bienvenue chez BforBank : le livret Bfor+, rémunéré à 3,10 % brut pendant un an sur un maximum de 200 000 €, bonifie votre épargne qui reste disponible à tout moment.

Cet article a été réalisé en collaboration avec BforBank

Il s’agit d’un contenu créé par des rédacteurs indépendants au sein de l’entité Humanoid xp. L’équipe éditoriale de Numerama n’a pas participé à sa création. Nous nous engageons auprès de nos lecteurs pour que ces contenus soient intéressants, qualitatifs et correspondent à leurs intérêts.

En savoir plus

Les bulletins sont intacts, mais des électeurs sont bloqués : une attaque DDoS frappe la primaire socialiste

9 octobre 2026 à 10:43

Depuis l’ouverture du premier tour, vendredi 9 octobre, la plateforme de vote de la primaire socialiste est saturée de connexions automatisées. Les bulletins ne sont pas menacés, mais une partie des électeurs n’a pas pu voter.

Micromania ouvre les précommandes du display Cyberpunk TCG, le jeu de cartes qui a affolé Kickstarter

9 octobre 2026 à 10:30

[Précommande] Le jeu de cartes à collectionner tiré de Cyberpunk 2077 arrive en boutique le 6 novembre 2026. Micromania prend déjà les précommandes de son display de 24 boosters en français, à 139,99 €.

Volkswagen ID. Tiguan : on a vu le SUV qui veut faire oublier l’ID.4

9 octobre 2026 à 10:00

Après vous avoir dévoilé son nom et nos premières impressions à son volant, voilà tout ce qu’il faut savoir sur l'ID. Tiguan : nouveau design affirmé, habitacle transfiguré et des caractéristiques techniques solides.

Un Starlink chinois pour la Russie ? Zelensky demande aux États-Unis d’aider l’Ukraine à « contrôler le ciel »

9 octobre 2026 à 09:56

Volodymyr Zelensky a accusé la Chine, ce jeudi 8 octobre, de mettre au point une alternative à Starlink pour la transmettre à la Russie. Le président ukrainien s'en sert pour réclamer l'aide des États-Unis dans le ciel.

One Piece OP17 : où acheter les nouvelles Mini Tins Luffy, Shanks et Boa Hancock TS-03 ?

9 octobre 2026 à 08:45

[Précommande] Les nouvelles Mini Tins One Piece Card Game TS-03 sortent le vendredi 30 octobre. Vous voulez mettre la main sur les boîtes Luffy, Shanks ou Boa Hancock ? Voici les liens à surveiller pour tenter de trouver du stock au meilleur prix.

❌