zioinfo-mail/itsm/deploy/guardia_deploy.sh
DESKTOP-TKLFCPR\ython 11c670f2a0 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

49 lines
1.4 KiB
Bash

#!/bin/bash
# GUARDiA ITSM 자동 배포 스크립트 (Deploy Webhook / CI 트리거 시 실행)
# 경로: /opt/guardia/app/deploy/guardia_deploy.sh
set -euo pipefail
LOG=/opt/guardia/logs/deploy.log
APP=/opt/guardia/app
REPO=http://zio:Zio%40Admin2026%21@localhost:3000/zio/guardia-itsm.git
SRC=/opt/guardia/src
echo "[$(date '+%Y-%m-%d %H:%M:%S')] === GUARDiA 배포 시작 ===" >> $LOG
# 1. 소스 갱신
if [ ! -d "$SRC/.git" ]; then
echo "[$(date)] git clone..." >> $LOG
git clone $REPO $SRC
else
echo "[$(date)] git pull..." >> $LOG
cd $SRC && git pull origin main
fi
echo "[$(date)] 소스 갱신 완료" >> $LOG
# 2. 새 파일 복사 (test_, __pycache__ 제외)
rsync -av --exclude="__pycache__" --exclude="test_*.py" \
--exclude="*.db" --exclude="*.bak" --exclude=".git" \
$SRC/ $APP/ >> $LOG 2>&1
echo "[$(date)] 파일 복사 완료" >> $LOG
# 3. 패키지 업데이트
if [ -f "$SRC/requirements.txt" ]; then
/opt/guardia/venv/bin/pip install -r $SRC/requirements.txt -q >> $LOG 2>&1
echo "[$(date)] 패키지 업데이트 완료" >> $LOG
fi
# 4. 서비스 재시작
systemctl restart guardia
sleep 5
# 5. 헬스체크
HTTP=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8001/docs 2>/dev/null)
if [ "$HTTP" = "200" ]; then
echo "[$(date)] 배포 성공 (HTTP $HTTP)" >> $LOG
else
echo "[$(date)] 배포 실패 (HTTP $HTTP)" >> $LOG
exit 1
fi
echo "[$(date)] === GUARDiA 배포 완료 ===" >> $LOG