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.pemairctl 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,ubuntuairctl users ls
Список пользователей.
airctl users lsairctl users rm
Удаление пользователей.
airctl users rm <logins>
airctl users rm sally,timairctl users reset
Сброс пароля локального пользователя.
airctl users reset <account> [--ttl=8h]airctl users update
Обновление учётной записи.
airctl users update [<flags>] <account>airctl nodes add
Генерация токена для присоединения узла.
airctl nodes add [<flags>]| Флаг | Описание |
|---|---|
--roles | proxy, auth, node, db, app, windowsdesktop |
--ttl | Срок действия токена (по умолчанию 30m) |
--token | Пользовательское значение токена |
airctl nodes add
airctl nodes add --roles=node,proxy --ttl=1hairctl nodes ls
Список активных SSH-узлов.
airctl nodes ls [--namespace=<ns>]airctl tokens add
Создание токена приглашения.
airctl tokens add --type=TYPE [<flags>]| Флаг | Описание |
|---|---|
--type | proxy, 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,dbairctl 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>,...| Флаг | Описание |
|---|---|
--format | yaml, 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.yamlairctl 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/aliceairctl rm
Удаление ресурса.
airctl rm <resource-type/resource-name>airctl rm users/admin
airctl rm role/old-roleairctl auth export
Экспорт публичных CA-сертификатов кластера.
airctl auth export [--type=tls-host] [--fingerprint=SHA256:...]| Флаг | Описание |
|---|---|
--type | user, 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 | Путь к файлу |
--format | file, 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.pemairctl 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-1airctl 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-suggestionairctl top
Диагностическая информация (требуется airlock start --diag-addr=<bind-addr>).
airctl top http://127.0.0.1:3000 5sairctl help
airctl help
airctl help users add