Agent 설치
빠른 시작에서는 포그라운드로 한 번 실행해 봤어요.
이 문서는 실제 프로덕션 환경에서 안정적으로 Agent를 운영하는 방법을 다뤄요.
디렉토리 레이아웃
Agent는 세 디렉토리를 사용해요. 각각의 역할을 알아 두면 백업·권한 설정이 수월해져요.
| 경로 | 역할 | 백업 |
|---|---|---|
./workflows | 실행할 YAML 워크플로우 파일들 | 필수 (Git 관리 권장) |
./creds | agent.id, agent.key(개인키), server.pub | 필수, 권한 600 |
./logs | Job 로그(JSONL), 레이트리밋 상태 | 선택 (retention 자동 정리) |
중요: ./creds/agent.key는 Agent의 신원이에요.
유출되면 즉시 대시보드에서 해당 Agent를 revoke하고 새 Enrollment Token으로 재등록하세요.
환경변수
| 변수 | 설명 | 기본값 |
|---|---|---|
DEPLITE_TOKEN | Enrollment Token. 최초 등록 시 1회만 필요해요. | (없음) |
DEPLITE_WORKFLOWS_DIR | 워크플로우 디렉토리 경로 | ./workflows |
등록이 끝나면 DEPLITE_TOKEN은 더 이상 필요 없어요.
systemd로 운영하기
/etc/systemd/system/deplite-agent.service
[Unit]
Description=Deplite Agent
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=deplite
Group=deplite
WorkingDirectory=/var/lib/deplite
ExecStart=/usr/local/bin/deplite-agent
Restart=always
RestartSec=5
EnvironmentFile=-/etc/deplite/agent.env
# 보안 hardening
NoNewPrivileges=true
ProtectSystem=strict
ReadWritePaths=/var/lib/deplite
ProtectHome=true
PrivateTmp=true
[Install]
WantedBy=multi-user.targetsudo useradd --system --home /var/lib/deplite --shell /usr/sbin/nologin deplite
sudo mkdir -p /var/lib/deplite/{workflows,creds,logs}
sudo chown -R deplite:deplite /var/lib/deplite
sudo chmod 700 /var/lib/deplite/creds
echo "DEPLITE_TOKEN=enr_..." | sudo tee /etc/deplite/agent.env
sudo chmod 600 /etc/deplite/agent.env
sudo systemctl daemon-reload
sudo systemctl enable --now deplite-agent
sudo systemctl status deplite-agentDocker로 운영하기
# docker-compose.yml
services:
agent:
image: deplite/agent:0.2.0
restart: unless-stopped
environment:
DEPLITE_TOKEN: ${DEPLITE_TOKEN}
volumes:
- ./workflows:/workflows:ro
- ./creds:/creds
- ./logs:/logsDEPLITE_TOKEN=enr_... docker compose up -d
docker compose logs -f agent주의: workflows 볼륨을 :ro로 마운트하면, Agent 컨테이너 내부에서 워크플로우 파일이 수정되지 않도록 보호돼요. Git에서 pull하는 별도 사이드카를 두면 깔끔해요.
Kubernetes로 운영하기
각 노드에 1개씩 띄우는 DaemonSet 패턴이 일반적이에요.
Secrets와 PVC로 creds를 관리하고, ConfigMap이나 Git-sync로 workflows를 동기화하세요.
(상세 예제는 Agent 운영 문서를 참고하세요.)
업그레이드
새 버전의 바이너리로 교체한 뒤 재시작하면 끝이에요.
agent.id와 agent.key가 그대로 유지되므로 재등록은 필요하지 않아요.
sudo systemctl stop deplite-agent
sudo curl -L -o /usr/local/bin/deplite-agent https://releases.deplite.io/agent/v0.3.0/linux-amd64/deplite-agent
sudo chmod +x /usr/local/bin/deplite-agent
sudo systemctl start deplite-agent문제 해결
- 등록 실패:
DEPLITE_TOKEN이 만료되었거나 이미 사용됐을 수 있어요. 대시보드에서 새 토큰을 발급하세요. - “agent revoked”: 서버에서 Agent를 회수한 상태예요.
./creds/를 비우고 새 토큰으로 재등록하세요. - SSE 끊김: 1초→60초 지수 백오프로 자동 재연결돼요. 30초 유휴 시 재연결 트리거. 네트워크/방화벽 점검을 해보세요.
다음으로
최종 수정 일자: