Variaveis de ambiente do `tatuzim-agent`
Variaveis lidas no inicio de cada comando. Em systemd vem de /etc/tatuzim-agent/env.
Conexao com o server
`TATUZIM_SERVER_URL` (obrigatorio)
URL HTTPS do enroll endpoint do server.
TATUZIM_SERVER_URL=https://tatuzim.dev.borlot.com.br`TATUZIM_SERVER_MTLS_URL` (obrigatorio pra run, rotate)
URL HTTPS do mTLS endpoint do server (porta 8443).
TATUZIM_SERVER_MTLS_URL=https://tatuzim.dev.borlot.com.br:8443`TATUZIM_SERVER_CA_PATH` (recomendado)
Caminho do root CA do step-ca pra trust do server. Sem isso, fallback pra identity/ca.pem (intermediate apenas — funciona mas confianca menor).
TATUZIM_SERVER_CA_PATH=/etc/tatuzim-agent/stepca-root.pemIdentidade do agent
`TATUZIM_AGENT_HOSTNAME` (obrigatorio em enroll)
Hostname logico do agent. Deve bater com o hostname do enrollment token.
- Default:
hostnameretornado pelo SO (hostnamecommand) - Obrigatorio explicito em enroll pra evitar surpresas
TATUZIM_AGENT_HOSTNAME=vps-mautic-01`TATUZIM_AGENT_ROLE` (obrigatorio em enroll)
Role logico do agent. Deve bater com o role do enrollment token.
TATUZIM_AGENT_ROLE=mautic`TATUZIM_ENROLL_TOKEN` (obrigatorio em enroll, transitorio)
Token plaintext recebido do admin (single-use).
TATUZIM_ENROLL_TOKEN=EXEMPLO_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxApos enroll bem-sucedido, remova esta variavel do env. O agent nao precisa mais dela.
Diretorios
`TATUZIM_AGENT_DATA_DIR`
Diretorio principal de dados.
- Default:
/var/lib/tatuzim-agent - Owner:
tatuzim:tatuzim(criado pelo .deb postinst) - Perm:
0750
`TATUZIM_AGENT_OUT_DIR`
Onde escrever artefatos das cargas (cert, key, etc.).
- Default:
$DATA_DIR/out - Exemplo:
/var/lib/tatuzim-agent/out/traefik-cert.crt
TATUZIM_AGENT_OUT_DIR=/etc/traefik/certs # entregar direto onde Traefik le`TATUZIM_AGENT_STATE_DIR`
Estado interno (idempotencia).
- Default:
$DATA_DIR/state - Conteudo:
processed.jsoncom lista de entrega_ids ja processadas
`TATUZIM_AGENT_HOOK_DIR`
Diretorio dos hooks executaveis.
- Default:
$DATA_DIR/hooks - Arquivos:
post-csr-cert,post-selado(futuro), etc.
TATUZIM_AGENT_HOOK_DIR=/etc/tatuzim-agent/hooksLoop run
`TATUZIM_AGENT_POLL_INTERVAL`
Intervalo de poll do manifest. Formato humantime.
- Default:
30s - Range razoavel:
10sa5m
TATUZIM_AGENT_POLL_INTERVAL=30s
TATUZIM_AGENT_POLL_INTERVAL=2mTrade-off:
- Curto = latencia menor pra novas cargas + mais trafego
- Longo = menos carga + maior delay
`TATUZIM_AGENT_RENEWAL_THRESHOLD`
Renovar cert quando faltar menos que isso ate expirar.
- Default:
6h - Recomendado: 1/4 do lifetime do cert (ex: cert 24h → threshold 6h)
TATUZIM_AGENT_RENEWAL_THRESHOLD=6h
TATUZIM_AGENT_RENEWAL_THRESHOLD=2hLogs
`RUST_LOG`
Filtro de logs.
RUST_LOG=info # default
RUST_LOG=debug # tudo em debug
RUST_LOG=tatuzim_agent=debug,warn # agent em debug
RUST_LOG=tatuzim_agent::renewal=trace,info # so renewal em traceModulos disponiveis:
tatuzim_agent::commands::enrolltatuzim_agent::commands::runtatuzim_agent::processortatuzim_agent::renewaltatuzim_agent::hookstatuzim_agent::http_clienttatuzim_agent::update
Exemplo completo (`/etc/tatuzim-agent/env`)
# === Server ===
TATUZIM_SERVER_URL=https://tatuzim.dev.borlot.com.br
TATUZIM_SERVER_MTLS_URL=https://tatuzim.dev.borlot.com.br:8443
TATUZIM_SERVER_CA_PATH=/etc/tatuzim-agent/stepca-root.pem
# === Identidade ===
TATUZIM_AGENT_HOSTNAME=vps-mautic-01
TATUZIM_AGENT_ROLE=mautic
# === Diretorios ===
TATUZIM_AGENT_DATA_DIR=/var/lib/tatuzim-agent
# TATUZIM_AGENT_OUT_DIR=/etc/traefik/certs # opcional — entregar direto
# TATUZIM_AGENT_HOOK_DIR=/etc/tatuzim-agent/hooks # opcional
# === Loop ===
TATUZIM_AGENT_POLL_INTERVAL=30s
TATUZIM_AGENT_RENEWAL_THRESHOLD=6h
# === Logs ===
RUST_LOG=infoCompatibilidade com systemd
O EnvironmentFile=-/etc/tatuzim-agent/env da systemd unit le esse arquivo. Cada linha e KEY=value (sem export, sem comentarios inline).
Exemplo errado (vai falhar):
# NAO funciona:
export TATUZIM_AGENT_HOSTNAME=vps-01 # `export` ignorado por systemd
TATUZIM_AGENT_ROLE=mautic # com comentario # systemd interpreta o comentario como parte do valorCorreto:
TATUZIM_AGENT_HOSTNAME=vps-01
TATUZIM_AGENT_ROLE=mauticValidacao
Boot bem-sucedido do run:
INFO tatuzim_agent::commands::run: agent running hostname=vps-mautic-01 mtls_url=https://... poll_interval=30s renewal_threshold=21600s
INFO tatuzim_agent::events: emit agent_started ✓
DEBUG tatuzim_agent::commands::run: manifest emptyErros comuns:
| Erro | Causa | Solucao |
|---|---|---|
TATUZIM_SERVER_URL required |
env nao setado | Adicionar ao env file |
TATUZIM_ENROLL_TOKEN env var required |
enroll sem token | Set TATUZIM_ENROLL_TOKEN (so na primeira vez) |
TATUZIM_SERVER_MTLS_URL required for run |
run sem url mTLS | Adicionar var |
invalid TATUZIM_AGENT_POLL_INTERVAL '...' |
Formato invalido | Usar humantime (30s, 1m, 1h) |
read ca: .../stepca-root.pem: No such file |
Root CA do server nao copiado | Copiar via scp |
no identity at ... — run \tatuzim-agent enroll` first` |
Tentou run/identity/rotate sem enroll |
Fazer enroll primeiro |
Mudancas que requerem restart
Toda mudanca no env requer:
sudo systemctl restart tatuzim-agentExceto: RUST_LOG requer restart, mas nao quebra fluxo.