Lade till en play för förhandskontroll som kör samma kod som konvergeringen mot operatörens lokala hemligheter på ungefär en sekund, efter att en halvt tillämpad produktionskörning kraschade vid sin nionde uppgift med swapinställningarna redan skrivna till värden i drift.
Arbetet utfört: september 2026
produktionskörningen, repeterad på ungefär en sekund
Situation. De operativa hemligheterna hade nyss delats upp så att varje värd har sitt eget arkiv för säkerhetskopior, sin egen lösenfras och sin egen larmbrytare. Koden i repot var korrekt. Operatörens krypterade vault‑fil innehöll fortfarande det tidigare värdet för en enda värd, och ingenting kunde se avvikelsen, eftersom vault‑filen medvetet ligger lokalt på operatörens maskin och är osynlig för repots egen kvalitetsgrind.
Uppgift. Den sortens fel behövde ett ställe där det kunde misslyckas billigt, eftersom det just hade misslyckats dyrt.
Handling. Den första konvergenskörningen efter ändringen anslöt till den levande värden, körde åtta tasks och vägrade vid den nionde — korrekt, men inifrån en körning som redan hade skrivit swap‑inställningar till produktion. En halvt tillämpad konvergenskörning är ett sämre svar än en vägran, så en förhandskontroll skrevs som en egen play: den når ingen värd alls, körs lokalt, samlar inte in några fakta och kör samma två task‑filer som den riktiga konvergenskörningen använder, mot operatörens vault‑fil. Den svarar på ungefär en sekund, och provisioneringen kör den först. Det bärande beslutet är att den är samma kod och inte en andra implementation av samma regel, eftersom en kontroll som återger en regel i ett annat språk till slut säger emot den, och gör det i tysthet. När den skrevs kom en fälla i dagen som den nästan själv hade skapat: fakta som sätts under en play överlever den playen, så om förhandskontrollen och konvergenskörningen hade kedjats ihop i ett enda anrop skulle den riktiga rollen ha fått en lösenfras som förhandskontrollen redan hade slagit upp, och kontrollen hade godkänts på en vault‑fil som fortfarande var fel. Felet reproducerades innan skyddet lades in, i båda task‑filerna.
Resultat. En hemlighet som inte går att slå upp kostar nu en vägran på två sekunder på en bärbar dator i stället för en delvis tillämpad ändring på en levande server. Förhandskontrollen är medvetet inte taggad för att alltid köras och är medvetet inte serialiserad, och båda delarna är dokumenterade som beslut snarare än som standardval.
Se tillbaka på Fick check mode att tala sanning i hela plattformen efter att ha hittat sex sonder som fattade beslut utifrån ett värde som värddatorn aldrig gav, eftersom command‑modulen i Ansible rapporterar framgång under --check medan den hoppar över kommandot helt. Läs vidare: Driftsatte en containermiljö på Podman och Quadlet under systemd i stället för Docker, eftersom Docker publicerar containerportar ovanför värdbrandväggens egna regler — och gav driftsättningarna en oprivilegierad användare med ett enda fast kommando i stället för root. Eller ta en titt på hela portföljen.
En del av en längre historik — och den finns i sin helhet här.
Varje post är skriven på samma sätt: situationen, uppgiften, vad vi gjorde och vad som förändrades.