Files
vps-control/scripts/README_RU.md
DizelBadCoder cf1c31eb2a
Some checks are pending
CI / agent (push) Waiting to run
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run
CI / containers (push) Waiting to run
cringe
2026-09-20 11:03:09 +03:00

88 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Скрипт управления жизненным циклом агента
`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
```