airctl — CLI-инструмент администратора для управления ресурсами кластера: пользователями, узлами, токенами, сертификатами и конфигурацией.

Аутентификация airctl

Перед выполнением команд администратор должен аутентифицироваться в кластере.

С файлом идентичности на удалённом хосте

airctl --identity=identity.pem --auth-server=proxy.example.com:443 status

Файл идентичности создаётся через airctl auth sign или airsh login --out=<path>.

На том же хосте, что и Auth Service

Если на хосте есть /etc/airlock.yaml, airctl аутентифицируется к Auth Service из конфигурации.

При локальном запуске на Auth Service в журнале аудита действие будет отображаться как выполненное самим Auth Service. Рекомендуется ограничить прямой SSH-доступ к Auth Service.

После airsh login на удалённом хосте

Если нет локального конфига и файла идентичности, airctl использует профиль airsh, созданный командой airsh login. Убедитесь, что AIRLOCK_CONFIG_FILE пуст или /etc/airlock.yaml отсутствует.

Глобальные флаги

ФлагОписание
-d, --debugПодробный вывод
-c, --configПуть к конфигурации (по умолчанию /etc/airlock.yaml)
--auth-serverАдрес Auth/Proxy Service
-i, --identityФайл идентичности
--insecureНе проверять TLS-сертификат (опасно)

airctl status

Статус кластера.

airctl status
airctl status --auth-server=192.168.99.102:3025 --identity=identity.pem

airctl users add

Создание пользователя и токена приглашения.

airctl users add [<flags>] <account>
ФлагОписание
--rolesРоли (через запятую)
--loginsРазрешённые SSH-логины
--kubernetes-groupsГруппы Kubernetes
--kubernetes-usersПользователи Kubernetes
--db-usersПользователи БД
--db-namesИмена баз данных
--ttlСрок действия токена (макс. 48ч)
airctl users add joe --roles=access,editor --logins=joe,ubuntu

airctl users ls

Список пользователей.

airctl users ls

airctl users rm

Удаление пользователей.

airctl users rm <logins>
airctl users rm sally,tim

airctl users reset

Сброс пароля локального пользователя.

airctl users reset <account> [--ttl=8h]

airctl users update

Обновление учётной записи.

airctl users update [<flags>] <account>

airctl nodes add

Генерация токена для присоединения узла.

airctl nodes add [<flags>]
ФлагОписание
--rolesproxy, auth, node, db, app, windowsdesktop
--ttlСрок действия токена (по умолчанию 30m)
--tokenПользовательское значение токена
airctl nodes add
airctl nodes add --roles=node,proxy --ttl=1h

airctl nodes ls

Список активных SSH-узлов.

airctl nodes ls [--namespace=<ns>]

airctl tokens add

Создание токена приглашения.

airctl tokens add --type=TYPE [<flags>]
ФлагОписание
--typeproxy, auth, trusted_cluster, node, db, kube, app, windowsdesktop
--ttlСрок действия (по умолчанию 1h)
--labelsМетки токена
--valueЗначение токена
airctl tokens add --type=node
airctl tokens add --type=trusted_cluster --ttl=5m
airctl tokens add --type=kube
airctl tokens add --type=node,db

airctl tokens ls

Список токенов.

airctl tokens ls [--format=json]

airctl tokens rm

Удаление (отзыв) токена.

airctl tokens rm <token>

airctl get

Получение ресурсов в YAML/JSON.

airctl get [<flags>] <resource-type/resource-name>,...
ФлагОписание
--formatyaml, json, text
--with-secretsВключить секреты
airctl get users
airctl get user/joe > joe.yaml
airctl get cluster/east
airctl get clusters,users
airctl get all > state.yaml

airctl create

Создание ресурса из файла.

airctl create -f <file.yaml>

airctl edit

Редактирование ресурса в текстовом редакторе.

airctl edit <resource-type/resource-name>

Редактор выбирается по приоритету: AIRLOCK_EDITOR → VISUAL → EDITOR → vi.

airctl edit role/sre
AIRLOCK_EDITOR=nano airctl edit user/alice

airctl rm

Удаление ресурса.

airctl rm <resource-type/resource-name>
airctl rm users/admin
airctl rm role/old-role

airctl auth export

Экспорт публичных CA-сертификатов кластера.

airctl auth export [--type=tls-host] [--fingerprint=SHA256:...]
ФлагОписание
--typeuser, host, tls-host, tls-user, db, openssh, saml-idp
--fingerprintФильтр по отпечатку
--keysЭкспорт закрытых ключей

airctl auth sign

Создание файла идентичности для пользователя или хоста.

airctl auth sign -o <filepath> [--user <user> | --host <host>] [<flags>]
ФлагОписание
--userИмя пользователя Airlock
--hostИмя хоста Airlock
-o, --outПуть к файлу
--formatfile, openssh, tls, kubernetes
--ttlСрок действия (по умолчанию 12h)
airctl auth sign --ttl=24h --user=jenkins --out=jenkins.pem
airctl auth sign --format=openssh --host grav-00
airctl auth sign --user=admin --out=identity.pem

airctl auth rotate

Ротация центров сертификации.

airctl auth rotate [--type=user|host] [--grace-period=200h]

airctl request create / approve / deny / ls / rm

Управление запросами доступа.

airctl request create myuser --roles=prod --reason="Fix an outage"
airctl request approve request-id-1,request-id-2
airctl request deny request-id-1
airctl request ls
airctl request rm request-id-1

airctl alerts create / list / ack

Управление оповещениями кластера.

airctl alerts create --severity=LOW "System under maintenance"
airctl alerts list
airctl alerts ack --reason="scheduled" upgrade-suggestion
airctl alerts ack --clear upgrade-suggestion

airctl top

Диагностическая информация (требуется airlock start --diag-addr=<bind-addr>).

airctl top http://127.0.0.1:3000 5s

airctl help

airctl help
airctl help users add