Marathon, le nouveau jeu de Bungie, vous donne envie, mais son genre vous refroidit, voire vous rebute franchement ? « Extraction shooter » ? Euh, non merci. « Jeu multi sans solo » ? Très peu pour moi. J'étais moi aussi dans ce vilain état d'esprit, pétri de tristesse et d'amertume, mais j'ai tout de même sauté le pas il y a quelques jours. Et je ne le regrette pas.
Je suis tombé sur Bio-Research avec la Sparkleaf occupant déjà un emplacement dans mon sac et j’ai réalisé que le terminal dont j’avais besoin était une marche trop loin. La course s’est réduite à une seule décision : grimper à l’échelle et espérer que le marqueur apparaisse, ou abandonner et perdre le contrat. Vous sentez le […]
J’étais à trois mètres au-dessus d’une extraction ratée quand le premier Fantôme a glissé dans le champ de vision. La console a clignoté en demandant trois couleurs que je n’avais pas. Un seul faux mouvement et toute l’opération s’effondre – alors j’ai resserré ma prise et j’ai commencé à compter. J’ai fait Parasitisme 1 suffisamment […]
Je me suis figé sur la carte quand un flux en sourdine s’est réveillé en plein milieu d’une patrouille. Vous connaissez cette sensation – un silence dans le bruit qui transforme tout le Périmètre en indice. J’ai compté six terminaux et réalisé qu’il ne s’agissait pas d’un accident. J’ai trouvé six points stables sur la […]
Je me faufile derrière l’entrepôt cyan et j’entends des bottes sur du métal au-dessus de moi. Le marqueur de quête brille ; un seul faux pas et je dois recommencer toute la chaîne. Vous n’avez pas besoin de chance, vous avez besoin de l’endroit exact et de la voie de sortie la plus propre. J’ai […]
Vous atterrissez à l’avant-poste de Marathon avec un ciel d’ardoise meurtri et une demi-douzaine de Gardiens qui échangent déjà des tirs. Mon Fantôme piaille : trois objectifs, une course et une barre de faction MIDA qui ne bougera pas d’elle-même. Si vous voulez la réputation sans gaspiller un ou deux emplacements, suivez mon chemin. J’ai […]
Je me suis engouffré dans la salle sécurisée et les lasers se sont allumés comme une sonnette d’alarme. Mon coéquipier a pingé la carte : deux tâches, une course, et un chronomètre que je pouvais sentir. Si vous manquez un boîtier d’alimentation ou un mur marqué, cette course s’effondre rapidement. J’ai fait Protect/Destroy 3 suffisamment […]
J’ai atterri à l’avant-poste avec un échantillon nécrotique brûlant mes boucliers. Vous sentez l’air se raréfier au moment où l’objectif apparaît sur l’ATH. Les escaliers derrière la porte rouge décident si cette course devient un moment fort ou un voyage en orbite. J’ai suffisamment effectué ce contrat pour éliminer les conjectures. Je vais vous expliquer […]
J’ai rejoint un lobby Marathon dès que les serveurs sont revenus en ligne et j’ai senti mon estomac se nouer en voyant le nombre de participants. Deux amis à côté de moi, trois de l’autre côté de la carte — et le matchmaker n’a pas bronché. On pouvait entendre la foule partagée entre excitation et […]
Il vous reste trois minutes avant l’extraction, vous êtes les mains vides, et l’armurerie affiche rupture de stock. Je me souviens exactement de cette piqûre – celle où un petit passage dans la liste des récompenses l’aurait empêchée. Vous vous dites que vous prendrez la prochaine ; puis le tour recommence. J’ai passé des heures à […]
J’étais accroupi derrière une caisse rouillée quand une vague de bots a convergé et mon flux est devenu rouge. On sent une partie basculer du statut inoffensif au catastrophique en l’espace d’un mauvais choix. Je me suis déconnecté ce soir-là en pensant : ces ennemis font plus de travail que nous ne leur en avons […]
J’ai entendu un buzzer et je me suis figé sur une crête, pendant qu’un Runner passait en glissant et attrapait la caisse que j’espionnais—c’était moi hier soir. La chaleur montait, les munitions étaient basses, et le monde de Tau Ceti IV semblait à la fois magnifique et hostile. J’ai appris dix façons d’empêcher cette scène […]
J’ai foncé vers le terminal de la Porte Ouest avec le cœur battant alors que des patrouilles convergeaient de trois directions. Le minuteur du malware clignotait et je n’avais qu’une seule tentative pour terminer Protect/Destroy 2 avant qu’une autre équipe n’efface le POI. Si vous ratez cette étape, le contrat MIDA vous échappe et vous […]
J’ai failli rater une manche parfaite de Marais Putride la première fois que j’ai tenté Protéger/Détruire 1. Vous sprintez dans la Quarantaine avec un scanner qui bipe et la manche ressemble à une mèche allumée. Si vous gardez la tête froide, je vais vous montrer l’itinéraire exact qui permet de conclure ce contrat en une […]
J’ai été paralysé lorsqu’un Runner m’a coupé la route au point d’extraction, souriant comme s’il possédait la carte. L’emblème de sa faction a clignoté – tout le combat a soudainement trouvé une explication. On apprend vite dans Marathon : les allégeances sont une monnaie d’échange, et les choix ont du poids. Toutes les factions et tous […]
Les alarmes étaient une rivière rouge coupant la carte. Je me suis arrêté, le cœur serré, alors que l’icône d’objectif clignotait sous mon réticule. Je vais vous guider à travers chaque étape pour que vous arrêtiez de deviner et que vous commenciez à terminer le contrat. J’ai fait Ordre/Chaos suffisamment de fois pour savoir où […]
J’ai entendu le craquement d’un fusil à silencieux et j’ai pensé que j’avais été repéré ; un coéquipier était déjà en train de grimper à une échelle de bunker. Je les ai regardés ouvrir une boîte métallique, puis déposer un objet de mission dans le DCON et s’enfuir en sprintant. On sent le jeu changer […]
Ansible, c'est bien. Mais du YAML à perte de vue pour configurer trois serveurs c'est pas non plus l'idéal. Hé bien ça tombe bien car y'a maintenant
pyinfra
, qui fait tout pareil sauf qu'on écrit du Python. En gros, votre script de déploiement c'est juste du code Python normal avec des imports, des boucles, des conditions... tout ça, tout ça...
Ce projet existe depuis 2014, il est sous licence MIT et côté perfs, c'est de ce que j'ai lu, jusqu'à 10 fois plus rapide qu'Ansible sur des déploiements massifs (genre plusieurs milliers de machines). Bon, sur le papier c'est bien, mais en fait ça dépend surtout de votre infra SSH et de la latence réseau.
Alors ça marche comment ?
Hé bien vous installez le bazar avec uv tool install pyinfra et hop, vous pouvez déjà lancer des commandes sur vos serveurs comme ceci :
Ça fonctionne en SSH sur le port 22, sur des conteneurs Docker, ou même en local. Le truc est complètement agentless, du coup pas besoin d'installer quoi que ce soit sur les machines cibles. Suffit d'un accès shell POSIX tout ce qu'il y a de plus classique et c'est réglé.
Bon, ça c'est pour l'ad-hoc mais en fait le vrai kiff, ce sont les opérations déclaratives. Je vous montre... Vous créez un fichier deploy.py et dedans, vous mettez ça :
from pyinfra.operations import apt, systemd
apt.packages(
name="Install nginx",
packages=["nginx"],
)
systemd.service(
name="Ensure nginx is running",
service="nginx.service",
running=True,
enabled=True,
)
C'est du bon vieux Python sans DSL bizarre (Domain-Specific Language), pas d'indentation YAML qui vous pète entre les doigts à 3h du mat parce qu'il manque un espace. Et si vous voulez une boucle ? bah for. Une condition ? bah if. Ou encore importer
boto3 pour causer avec AWS
depuis votre Debian 12 ? No problemo !
Et pour cibler vos machines, suffit de créer un fichier inventory.py comme ceci :
Puis ensuite un petit : pyinfra inventory.py deploy.py et c'est parti mon kiki. L'outil gère le parallélisme sur 50 serveurs, les diffs (pour voir ce qui va changer AVANT d'appliquer), et le mode dry-run pour les plus prudents.
Côté intégrations, ça cause avec Terraform, Docker, Vagrant... et comme c'est du Python, vous avez accès à tout l'écosystème. Genre, vous voulez checker l'état d'une API avant de déployer ? Un import requests et c'est plié. La doc sur
docs.pyinfra.com
est plutôt complète, et y'a même la gestion des secrets intégrée avec variables d'environnement, fichiers chiffrés, HashiCorp Vault ou AWS Secrets Manager.
Ça tourne depuis Linux et macOS (et Windows via WSL), mais les cibles doivent être des systèmes POSIX donc pas de déploiement natif sur Windows. Et si votre inventaire contient 3 000 machines avec des configs SSH différentes... bon courage pour le debug en cas de souci (le mode -vvv aide, mais bon...).
Bref, si vous en avez marre du YAML et que Python c'est votre truc, allez jeter un oeil.
J’ai cliqué sur Jouer et Steam a mouliné un instant, puis le jeu a disparu. Ma manette est restée allumée alors que la barre des tâches mentait, et une petite panique s’est installée. Vous êtes prêt à atterrir sur Tau Ceti IV et rien ne répond. J’ai suivi les discussions de lancement et testé les […]