Тема
Отладка
Selenite не предоставляет интерактивный shell на хосте. Вместо этого для диагностики и отладки используется команда debug, которая запускает привилегированный контейнер с примонтированной корневой файловой системой хоста в /host.
Команда debug
ssh -t <server> debug <image> [command...]Параметры:
<image>— образ контейнера (например,busybox,registry.access.redhat.com/ubi9/toolbox).[command...]— необязательная команда для выполнения внутри контейнера. Если не указана, запускаетсяsh.
Флаг -t обязателен, так как команда требует PTY (псевдотерминал).
Примеры
Открыть интерактивный shell в контейнере:
bash
ssh -t server debug alpineВыполнить одну команду и выйти:
bash
ssh -t server debug alpine cat /host/etc/hostnameЧто происходит внутри
Команда debug запускает временный привилегированный контейнер на хосте. Контейнер имеет полный доступ к устройствам и namespaces хоста, а его корневая файловая система примонтирована в /host внутри контейнера. Рабочая директория по умолчанию — /host, поэтому стандартные команды сразу работают с файлами системы.
После завершения сессии контейнер удаляется. Образ тоже удаляется, чтобы не занимать место на диске.
WARNING
Команда debug предоставляет неограниченный доступ к хосту. Разрешение на её использование контролируется через RBAC — ресурс debug, действие invoke.
Права доступа
Чтобы использовать debug, пользователю нужно разрешение invoke на ресурс debug:
yaml
access:
roles:
- name: debugger
rules:
- resources: [debug]
verbs: [invoke]
users:
- name: alice
roles: [debugger]
keys:
- ssh-ed25519 AAAAC3NzaC... alice@example.comПользователи с ролью root имеют доступ автоматически.