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

Установка на Linux

  • Linux x86_64 или aarch64 с systemd.
  • Root-доступ на время установки. Служба агента тоже работает от root — почему, объяснено ниже.
  • Исходящий доступ по HTTPS/WSS к nx.3fe.ru. Входящие порты не нужны.
  • Токен регистрации nyxet_… из кабинета («Админ → Агенты → Токены подключения»).
  • Бинарник nythronix-agent. В кабинете пока нет ссылки на сборку для Linux — получите её у команды Nythronix вместе с доступом к бете.

Для сессий tmux и zellij соответствующая программа должна быть установлена на машине — агент сообщит о ней панели сам.

После создания токена кабинет показывает одну готовую команду. Выполните её от root, предварительно положив бинарник в PATH:

Окно терминала
sudo install -m 0755 ./nythronix-agent /usr/local/bin/
sudo nythronix-agent enroll --token nyxet_… --url wss://nx.3fe.ru/agent/ws

enroll обменивает токен на постоянные учётные данные и пишет их вместе с ключом проверки обновлений в /etc/nythronix/agent.json (права 0600). Вывод выглядит так:

enrolled as agent-… (agent 3f1c…); 1 trusted key(s); config saved to /etc/nythronix/agent.json

Флаг --hostname NAME задаёт имя, под которым машина будет показана в кабинете; по умолчанию берётся hostname системы.

Создайте юнит:

/etc/systemd/system/nythronix-agent.service
[Unit]
Description=Nythronix agent
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/nythronix-agent
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target

и включите его:

Окно терминала
sudo systemctl daemon-reload
sudo systemctl enable --now nythronix-agent

Без подкоманды nythronix-agent запускает демон и читает учётные данные из /etc/nythronix/agent.json. Не добавляйте в юнит DynamicUser, NoNewPrivileges или ProtectSystem=strict — они ломают смену пользователя и запись sudoers, описанные ниже.

Демон работает от root, но не выполняет команды воркеров от root. Создайте системного пользователя:

Окно терминала
sudo useradd --system --home-dir /var/lib/nyx-worker --create-home \
--shell /usr/sbin/nologin nyx-worker

Если пользователь существует, агент переключается в него (runuser) для каждой команды AI-воркера и сообщает об этом панели — в «Админ → Агенты» у машины появится отметка как nyx-worker. Root нужен демону ровно для трёх вещей: сменить пользователя, записать файл sudoers и заменить собственный бинарник при обновлении.

Терминалы операторов по умолчанию открываются от пользователя, под которым запущен агент. Администратор может назначить оператору другой локальный логин («Админ → Операторы → Терминал → юзер») — тогда его сессии будут стартовать как login-shell этого пользователя.

По умолчанию у nyx-worker нет sudo. Когда воркеру действительно нужен root, администратор в «Админ → Агенты → Root воркера» нажимает «Выдать root» и выбирает срок: 15 минут, 1, 4 или 8 часов. Агент проверяет политику через visudo -cf и записывает /etc/sudoers.d/nyx-worker; по истечении срока файл удаляется самим агентом, даже если связь с панелью потеряна. Кнопка «Отозвать» снимает право досрочно. Вариант список ограничивает sudo перечнем команд.

Владелец машины может ограничить это локально файлом /etc/nythronix/agent-policy.json, который панель не видит и изменить не может:

{
"allow_remote_sudo": false,
"max_sudo_policy": "list",
"terminal_login_lock": "deploy"
}
  • allow_remote_sudo: false — отклонять любые выдачи sudo.
  • max_sudo_policy — потолок: none < list < all.
  • terminal_login_lock — все терминалы всегда открываются от этого пользователя.

Скрипт enroll-agent.sh записывает этот файл флагами --no-remote-sudo, --max-sudo none|list|all, --terminal-lock LOGIN.

Окно терминала
systemctl status nythronix-agent
journalctl -u nythronix-agent -f

В журнале должна появиться запись об успешном подключении, а на дашборде — карточка машины со статусом Online. При обрыве связи агент переподключается сам с нарастающей паузой от 1 до 30 секунд.

Типичные причины неудачи: токен уже использован или истёк (создайте новый), опечатка в --url, отсутствие исходящего доступа к nx.3fe.ru.

В «Админ → Агенты» задайте машине Update policy: auto — применять релизы сразу, auto_idle_only — только когда нет активных сессий, manual (по умолчанию) — только уведомлять. Агент скачивает новый бинарник, сверяет SHA-256 и подпись Ed25519 ключом, полученным при регистрации, заменяет файл и перезапускается сам. Сессии tmux/zellij при этом переживают перезапуск и подхватываются заново.

Окно терминала
sudo systemctl disable --now nythronix-agent
sudo rm /etc/systemd/system/nythronix-agent.service /usr/local/bin/nythronix-agent
sudo rm -rf /etc/nythronix
sudo rm -f /etc/sudoers.d/nyx-worker

Затем удалите запись машины в «Админ → Агенты», чтобы её учётные данные перестали действовать.