- 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>
49 lines
1.4 KiB
Bash
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
|