58 lines
3.7 KiB
Markdown
58 lines
3.7 KiB
Markdown
# Скрипт управления жизненным циклом агента
|
||
|
||
`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`
|
||
|
||
Сопровождающие проект разработчики могут сформировать необходимую структуру релиза из двух заранее скомпилированных бинарных файлов:
|
||
|
||
```bash
|
||
./package-agent-release.sh path/to/x86_64/vps-agent path/to/aarch64/vps-agent dist
|
||
```
|
||
|
||
Этот скрипт создаёт файлы с каноническими именами, а также `SHA256SUMS`. Если задана переменная `VPS_AGENT_MINISIGN_SECRET_KEY`, дополнительно создаётся файл подписи `SHA256SUMS.minisig`.
|
||
|
||
Во время установки скрипт:
|
||
|
||
- проверяет наличие прав `root`;
|
||
- проверяет, что система работает под Linux и использует `systemd`;
|
||
- определяет и проверяет архитектуру процессора;
|
||
- создаёт изолированного системного пользователя и необходимые директории;
|
||
- проверяет бинарный файл перед установкой;
|
||
- создаёт безопасную конфигурацию и случайный токен;
|
||
- устанавливает настройки усиления безопасности (`hardening`);
|
||
- запускает systemd-службу агента.
|
||
|
||
При обновлении новая версия бинарного файла сначала устанавливается во временное состояние. После этого выполняется проверка работоспособности службы. Если проверка завершается неудачно, автоматически восстанавливается предыдущая версия.
|
||
|
||
Команда `rollback` меняет местами текущую и предыдущую версии агента.
|
||
|
||
По умолчанию команда удаления сохраняет каталог:
|
||
|
||
```text
|
||
/etc/vps-agent
|
||
```
|
||
|
||
Параметр `--purge` дополнительно удаляет конфигурацию и учётные данные агента. Для этого требуется подтверждение через терминал либо явное указание флага:
|
||
|
||
```bash
|
||
--yes
|
||
``` |