71 lines
2.2 KiB
Markdown
71 lines
2.2 KiB
Markdown
# TRUF worker: шпаргалка Linux без Docker
|
||
|
||
Нужны системный Python 3.12 и package-local Git, TruffleHog и Python dependencies
|
||
из проверенного artifact. Native executable authority должна находиться под
|
||
root-owned путём, поэтому один раз перенесите распакованный package в `/opt`:
|
||
|
||
## Один раз
|
||
|
||
```sh
|
||
sudo mv ./truf-worker-linux-x86_64 /opt/truf-worker
|
||
cd /opt/truf-worker
|
||
```
|
||
|
||
Подготовьте доверенные ownership и permissions package. Скрипт оставляет
|
||
application code приватным для текущего user, а native Git и TruffleHog -
|
||
неизменяемыми для него:
|
||
|
||
```sh
|
||
sudo ./prepare-worker.sh
|
||
```
|
||
|
||
Затем создайте `~/.config/truf/worker-install.yaml` через локальный текстовый
|
||
редактор:
|
||
|
||
```sh
|
||
install -d -m 700 ~/.config/truf
|
||
nano ~/.config/truf/worker-install.yaml
|
||
```
|
||
|
||
```yaml
|
||
server: https://pregnant.horsecock.store
|
||
token: PASTE_DEVICE_TOKEN_HERE
|
||
parallelism: 1
|
||
```
|
||
|
||
Затем выполните:
|
||
|
||
```sh
|
||
chmod 600 ~/.config/truf/worker-install.yaml
|
||
./truf-worker install --config ~/.config/truf/worker-install.yaml
|
||
rm -- ~/.config/truf/worker-install.yaml
|
||
./truf-worker doctor --json
|
||
```
|
||
|
||
## Каждый день
|
||
|
||
```sh
|
||
./truf-worker start --startup-timeout 30
|
||
./truf-worker status
|
||
./truf-worker attach --follow-seconds 300
|
||
./truf-worker watch --follow-seconds 300
|
||
./truf-worker stop --timeout 120 --json
|
||
```
|
||
|
||
`q` или `Ctrl-C` отсоединяет `attach`/`watch`, но не останавливает worker.
|
||
Portable package не устанавливает systemd unit: после перезагрузки выполните
|
||
`start` из того же package под тем же OS user.
|
||
|
||
## Диагностика
|
||
|
||
```sh
|
||
./truf-worker status --json
|
||
./truf-worker logs --tail 200
|
||
./truf-worker logs --follow --follow-seconds 300
|
||
./truf-worker history --limit 50
|
||
./truf-worker doctor --json
|
||
```
|
||
|
||
Clean stop должен вернуть `state: stopped`, `drained: true`, `exit_code: 0`.
|
||
Иначе сохраните state и диагностику; не удаляйте work или bundles.
|