Hecho con Chinaski

Actualizaciones Offline

Los releases de Chinaski se manejan como artefactos que viajan en medios extraíbles dentro de entornos con air-gap: un bundle firmado, su firma y tu clave pública de release.

El flujo de trabajo documentado

  1. En una máquina conectada: obtén el bundle de release más reciente (un tar.gz) más su archivo de firma .sig desde la ubicación de releases. Las firmas son firmas Ed25519 codificadas en hexadecimal de los bytes crudos del bundle, producidas por la herramienta de firma de releases contra una clave de release.
  2. Transfiere ambos archivos a la máquina con air-gap (USB, copia unidireccional, cualquiera que sea tu disciplina de transferencia).
  3. Ejecuta el script de actualización:
bash scripts/apply_update.sh \
    --bundle  chinaski-<version>.tar.gz \
    --sig     chinaski-<version>.tar.gz.sig \
    --pubkey  keys/chinaski_release.pub \
    [--prefix /opt/chinaski]

El script verifica primero la firma Ed25519 (los bundles manipulados se rechazan de inmediato), respalda la aplicación actual y luego aplica la actualización, manteniendo la versión anterior recuperable si algo falla después.

La variante en línea: nunca automática

La aplicación tiene una capacidad de verificación de actualizaciones, pero solo consulta una URL de manifiesto que tú establezcas explícitamente (mediante la variable de entorno CHINASKI_UPDATE_MANIFEST_URL) y solo cuando el modo air-gap está apagado. Nada "llama a casa" en busca de actualizaciones sin que ambas cosas estén configuradas. Las firmas del manifiesto se verifican contra la clave pública de release cuando hay una clave disponible.

Notas de operación

  • La verificación de firma es obligatoria en la ruta de actualización, no es solo una recomendación.
  • La clave pública de release que el actualizador usa por defecto es keys/chinaski_release.pub en la instalación; guárdala segura y actualízala junto con los bundles futuros cuando el proyecto anuncie las nuevas claves.
  • Los bundles se basan en la misma maquinaria de make-bundle usada para la primera instalación offline; el bundle lleva los tarballs de CPAN, así que actualizar a un release más nuevo también funciona sin acceso a red.
  • Antes de aplicar una actualización en un sistema en producción, conserva un backup actual y ten en cuenta que el script de aplicación respalda automáticamente la aplicación previa; el momento de aplicarlo es la ventana de mantenimiento, como con cualquier CMS.
Lee este sitio en