Перейти к содержимому

Начало работы в air-gapped площадке

Olivares AI готов к air-gap по проектированию: один статический бинарник, встроенное хранилище SQLite, офлайн-валидация лицензии (Ed25519) и никаких обязательных исходящих вызовов при запуске — нет телеметрии «домой», которую нужно отключать. Этот туториал достигает первой ценности в сети без интернета вообще, одним из двух честных путей:

  • Путь A — статический бинарник. Простейший air-gap, какой только есть: перенесите один проверенный файл через разрыв и запустите его (с systemd, как в туториале по одному узлу).
  • Путь B — подписанный bundle, для кластера. Перенесите релизный bundle, проверьте каждый образ и чарт полностью офлайн, зеркалируйте в ваш приватный реестр по digest и установите с Helm.

Механика скриптов bundle (airgap-bundle.sh, airgap-mirror.sh, офлайн-проверка cosign) задокументирована в установке в air-gapped среде — эта страница представляет собой сквозное прохождение, которое их использует.

  1. На подключённой стороне соберите (или, когда релизы начнут выходить, скачайте и проверьте) бинарник и запишите его digest:

    Окно терминала
    task build
    sha256sum bin/olivares > olivares.sha256
  2. Перенесите оба файла через разрыв на вашем утверждённом носителе и проверьте digest на отключённой стороне:

    Окно терминала
    sha256sum --check olivares.sha256
  3. Установите и запустите ровно так, как в туториале по одному узлу — systemd-юнит, одноразовый setup-токен, первая организация. Ничто в этом потоке не обращается к сети: материал TLS генерируется локально, лицензия (если она у вас есть) валидируется офлайн, а хранилище — это встроенный SQLite.

  4. Подключите источники, наблюдающие локальные системы — «хвосты» журналов pgAudit, файлы CloudTrail, доставляемые внутри периметра, потоки eBPF/Tetragon. Конфигурация источников — это локальный файл; ни один коннектор не звонит наружу, пока вы не настроите его на обращение к чему-либо.

Это рекомендуемая стартовая форма для отключённой площадки: один узел, SQLite, локальные источники. Это тот же движок — вы можете позже вырасти в кластерный путь, не меняя того, чему научились.

  1. Онлайн, однократно: мейнтейнер собирает самодостаточный bundle — каждый образ закреплён по digest, чарт Helm упакован и подписан, собраны SBOM/OpenVEX/provenance, плюс публичный ключ и VERIFY.md с точным офлайн-прохождением:

    Окно терминала
    scripts/airgap-bundle.sh --version <v> \
    --image <olivares-image-ref> \
    --chart deploy/helm/olivares \
    --cosign-key cosign.key
  2. Внутри разрыва проверьте всё офлайн. Вам нужны лишь cosign, crane, helm и tar — доверие исходит от вложенного cosign.pub, а не от какого-либо онлайнового transparency log:

    Окно терминала
    for d in images/*/; do
    cosign verify --local-image "$d" --insecure-ignore-tlog --key cosign.pub
    done
    cosign verify-blob --key cosign.pub --insecure-ignore-tlog \
    --signature chart/*.tgz.sig chart/*.tgz
  3. Зеркалируйте в ваш приватный реестр по digest (скрипт перезакрепляет и подтверждает, что digest пережил зеркалирование):

    Окно терминала
    scripts/airgap-mirror.sh --bundle olivares-airgap-<v>.tar.gz \
    --registry registry.internal:5000
  4. Устанавливайте по digest, никогда по тегу, затем следуйте туториалу по Kubernetes начиная с токена первого запуска — это тот же чарт и тот же поток:

    Окно терминала
    helm install olivares \
    oci://registry.internal:5000/charts/olivares \
    --version <chart-version> \
    --set image.repository=registry.internal:5000/olivares \
    --set image.digest=<digest-from-digests.txt>
  • Резервные копии работают идентично (olivares dr backup — зашифрованный bundle, локальный KEK): резервное копирование и восстановление. Храните bundle-ы на отдельных носителях; правило 3-2-1 применяется вдвойне при отсутствии офсайт-сети.
  • Проверка ledger полностью офлайн по проектированию: olivares audit verify --strict с вашим закреплённым публичным ключом — устранение неполадок § ledger.
  • Мониторинг — это локальный Prometheus, скрейпящий /metrics; поставляемые правила алертов не нуждаются ни в чём внешнем — мониторинг.
  • Обновления повторяют цикл перенос-проверка-зеркалирование с новым bundle. Манифест digest-ов (digests.txt) — это ваша запись о том, что именно работает.