1. ansible -e cle=valeur DECOUPE SUR LES BLANCS — c est ainsi qu on passe
plusieurs variables. Un chemin avec une espace y perd tout ce qui suit le
premier blanc, et l erreur parle d un repertoire introuvable au nom tronque.
Passage en JSON. Le depot avait deja appris ca pour le clonage de VM ; la
lecon ne s etait pas propagee. Quatrieme fois.
2. /srv/restic est en 0711 — traversable, NON listable, pour qu un locataire
n apprenne pas qui d autre depose ici. La consequence tombe sur rsync :
opendir Permission denied, un message qui accuse un droit sans dire lequel.
--rsync-path=sudo rsync fait lire la SOURCE en root.
3. rsync_opts ne protege pas ses elements : le shell coupait
--rsync-path=sudo rsync en deux. Guillemets internes.
Resultat mesure : COPIE FIDELE, 233 fichiers, 95,7 Mo, empreintes identiques
une a une — comparees entre la source et la copie, pas supposees.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
Le depot heberge la racine de l AC, la forge du genome, et l etat de CHAQUE
locataire — 109 Mo sur une seule machine, dans un seul batiment. C est le
probleme du filet range dans la flotte qu il protege, un etage plus haut.
On emporte AUSSI les depots des locataires : si le site brule, ils perdent
leurs sauvegardes avec lui, et eux ne peuvent rien y faire. Ils ont depose chez
l hebergeur, c est a l hebergeur de tenir cette promesse.
La copie est OPAQUE — chiffree cote client, illisible par qui la porte. C est
ce qui permet de la deposer chez un pair sans lui demander autre chose que de
la disponibilite.
L empreinte est prise A LA SOURCE avant la copie, puis recalculee sur la copie
et comparee une a une. Sans ca on rentre chez soi avec un repertoire.
Un pipe sans pipefail masque l echec de tout ce qui n est pas le dernier
maillon : ici sed, qui reussit toujours. Une empreinte vide des deux cotes
aurait passe la comparaison.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on