# Скрипт управления жизненным циклом агента `vps-agentctl.sh` устанавливает подписанные и проверенные по контрольной сумме артефакты релизов, не передавая сетевой ответ напрямую в shell. Запускайте локально проверенную копию скрипта от имени `root`. ```bash ./vps-agentctl.sh install --version v0.1.0 ./vps-agentctl.sh update --version v0.1.1 ./vps-agentctl.sh status ./vps-agentctl.sh restart ./vps-agentctl.sh version ./vps-agentctl.sh rollback ./vps-agentctl.sh remove ./vps-agentctl.sh remove --purge --yes ``` Укажите переменную окружения `VPS_AGENT_RELEASES_URL` или передайте параметр `--releases-url`, чтобы задать корневой URL репозитория релизов, совместимого с GitHub Releases. Чтобы сделать обязательной проверку файла `SHA256SUMS.minisig`, задайте переменную `VPS_AGENT_MINISIGN_PUBLIC_KEY`. Проверка контрольных сумм обязательна всегда. Поддерживаются следующие имена артефактов: - `vps-agent-linux-amd64` - `vps-agent-linux-arm64` Каждую архитектуру можно собрать и упаковать независимо на соответствующей Linux-машине. Для релиза только под amd64 второй бинарный файл не нужен: ```bash ./scripts/build-agent-native.sh dist ``` Скрипт определит архитектуру текущего Linux-хоста, выполнит release-сборку и создаст только соответствующий артефакт. Например, на Linux x86_64 будут созданы `dist/vps-agent-linux-amd64` и `dist/SHA256SUMS`. Если бинарный файл уже собран, можно запустить только упаковку: ```bash ./package-agent-release.sh \ --output dist \ --amd64 path/to/x86_64/vps-agent ``` На отдельном Linux arm64 builder используется независимый запуск: ```bash ./package-agent-release.sh \ --output dist \ --arm64 path/to/aarch64/vps-agent ``` Если оба Linux-бинарника уже скопированы на одну машину, их можно упаковать одним запуском: ```bash ./package-agent-release.sh \ --output dist \ --amd64 path/to/x86_64/vps-agent \ --arm64 path/to/aarch64/vps-agent ``` Скрипт создаёт файлы с каноническими именами и пересобирает `SHA256SUMS` для всех артефактов, находящихся в выходном каталоге. На Linux используется `sha256sum`, а на macOS — `shasum -a 256`. Если задана переменная `VPS_AGENT_MINISIGN_SECRET_KEY`, дополнительно создаётся файл подписи `SHA256SUMS.minisig`. Нативная сборка на macOS создаёт Mach-O и для Linux-релиза не подходит. На macOS можно объединять и подписывать уже собранные Linux-артефакты, но сами `linux/amd64` и `linux/arm64` бинарники собираются независимо на Linux-хостах соответствующей архитектуры. Во время установки скрипт: - проверяет наличие прав `root`; - проверяет, что система работает под Linux и использует `systemd`; - определяет и проверяет архитектуру процессора; - создаёт изолированного системного пользователя и необходимые директории; - проверяет бинарный файл перед установкой; - создаёт безопасную конфигурацию и случайный токен; - устанавливает настройки усиления безопасности (`hardening`); - запускает systemd-службу агента. При обновлении новая версия бинарного файла сначала устанавливается во временное состояние. После этого выполняется проверка работоспособности службы. Если проверка завершается неудачно, автоматически восстанавливается предыдущая версия. Команда `rollback` меняет местами текущую и предыдущую версии агента. По умолчанию команда удаления сохраняет каталог: ```text /etc/vps-agent ``` Параметр `--purge` дополнительно удаляет конфигурацию и учётные данные агента. Для этого требуется подтверждение через терминал либо явное указание флага: ```bash --yes ```