Skip to content

Отладочный shell ​

Инструменты для диагностики не входят в состав Selenite — в нормальной работе они не нужны. Но иногда для отладки требуется полноценное окружение: посмотреть файлы хоста, проверить сеть изнутри, запустить утилиты, которых нет в образе.

Для этого есть отладочный shell. Команда debug запускает привилегированный контейнер из образа на ваш выбор и открывает в нём сессию. Когда вы выходите, контейнер и образ удаляются.

Запуск ​

ssh -t <server> debug <image> [command...]

Параметры:

  • <image> — образ контейнера, например alpine или busybox
  • [command...] — команда для выполнения; если не указана, запускается sh

Флаг -t обязателен: команде нужен PTY.

Интерактивная сессия:

bash
ssh -t server debug alpine

Одна команда и выход:

bash
ssh -t server debug alpine cat /host/etc/hostname

Что происходит внутри ​

Контейнер запускается с полным доступом к устройствам и namespaces хоста, а корневая файловая система хоста примонтирована в /host и является рабочей директорией по умолчанию.

Права доступа ​

Разрешение на запуск контролируется через RBAC — ресурс debug, действие invoke:

yaml
access:
  roles:
    - name: debugger
      rules:
        - resources: [debug]
          verbs: [invoke]
  users:
    - name: alice
      roles: [debugger]
      keys:
        - ssh-ed25519 AAAAC3NzaC... alice@example.com

Пользователи с ролью root имеют доступ автоматически.