Fait avec Chinaski

Mises à jour hors ligne

Les versions de Chinaski sont traitées comme des artefacts qui voyagent sur des supports amovibles à l'intérieur des environnements air-gap : un bundle signé, sa signature, et votre clé publique de release.

Le flux documenté

  1. Sur une machine connectée: récupérez le bundle de la version la plus récente (un tar.gz) plus son fichier de signature .sig depuis l'emplacement des releases. Les signatures sont des signatures Ed25519 hex-encodées des octets bruts du bundle, produites par l'outil de signature de release contre une clé de release.
  2. Transférez les deux fichiers vers la machine air-gap (USB, copie à sens unique, quelle que soit votre discipline de transfert).
  3. Exécutez le script de mise à jour :
bash scripts/apply_update.sh \
    --bundle  chinaski-<version>.tar.gz \
    --sig     chinaski-<version>.tar.gz.sig \
    --pubkey  keys/chinaski_release.pub \
    [--prefix /opt/chinaski]

Le script vérifie d'abord la signature Ed25519 (les bundles altérés sont rejetés d'emblée), sauvegarde l'application actuelle, puis applique la mise à jour, en gardant la version précédente récupérable si quelque chose se passe mal ensuite.

La variante en ligne : jamais automatique

L'application a une capacité de vérification de mise à jour, mais elle ne consulte jamais qu'une URL de manifest que vous définissez explicitement (via la variable d'environnement CHINASKI_UPDATE_MANIFEST_URL) et uniquement quand le mode air-gap est désactivé. Rien ne « téléphone à la maison » pour des mises à jour sans que les deux soient configurés. Les signatures de manifest sont vérifiées contre la clé publique de release quand une clé est disponible.

Notes d'exploitation

  • La vérification de signature est obligatoire dans le chemin de mise à jour, pas seulement une recommandation.
  • La clé publique de release que l'updater utilise par défaut est keys/chinaski_release.pub dans l'installation ; gardez-la en sécurité et à jour avec les futurs bundles quand le projet annonce les nouvelles clés.
  • Les bundles sont basés sur la même mécanique make-bundle utilisée pour la première installation hors ligne ; le bundle transporte les tarballs CPAN, donc la mise à jour vers une version plus récente fonctionne aussi sans accès réseau.
  • Avant d'appliquer une mise à jour sur un système en production, gardez une sauvegarde à jour et notez que le script d'application sauvegarde automatiquement l'application précédente ; le moment d'appliquer est une fenêtre de maintenance, comme pour tout CMS.
Lisez ce site en