61 lines
2.5 KiB
Python
61 lines
2.5 KiB
Python
"""guardia-manager /var/www/manager 수정 + guardia-itsm 재검증"""
|
|
import paramiko, sys, time, subprocess, os
|
|
sys.stdout.reconfigure(encoding='utf-8', errors='replace')
|
|
c = paramiko.SSHClient(); c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect('101.79.17.164', username='root', password='1q2w3e!Q', timeout=15)
|
|
|
|
def run(label, cmd, timeout=120):
|
|
print(f'\n[{label}]')
|
|
_, o, _ = c.exec_command(cmd, timeout=timeout)
|
|
out = o.read().decode('utf-8','replace').strip()
|
|
if out: print(out[:500])
|
|
return out
|
|
|
|
# 1. 빌드 산출물 경로 확인
|
|
run('빌드 산출물 위치 확인',
|
|
'find /tmp -name "index.html" -path "*/dist/*" 2>/dev/null | head -5 || echo "없음"')
|
|
|
|
# 이미 삭제됐으면 재빌드
|
|
run('Manager 재빌드',
|
|
'rm -rf /tmp/mgr2 && '
|
|
'git clone /tmp/mgr.bundle /tmp/mgr2 2>/dev/null || '
|
|
'git clone http://zio:Zio%40Admin2026%21@127.0.0.1:9003/zio/guardia-manager.git /tmp/mgr2 2>/dev/null && '
|
|
'echo "clone OK"', timeout=60)
|
|
|
|
run('vite 빌드 (outDir 확인)',
|
|
'cat /tmp/mgr2/frontend/vite.config.ts 2>/dev/null || cat /tmp/mgr2/frontend/vite.config.js 2>/dev/null | grep -A3 "build\|outDir"')
|
|
|
|
run('npm 빌드',
|
|
'cd /tmp/mgr2/frontend && '
|
|
'npm ci --legacy-peer-deps 2>/dev/null || npm install --legacy-peer-deps && '
|
|
'npm run build 2>&1 | tail -5', timeout=300)
|
|
|
|
run('dist 위치 탐색',
|
|
'find /tmp/mgr2 -name "index.html" -not -path "*/node_modules/*" 2>/dev/null')
|
|
|
|
# 실제 dist 폴더를 /var/www/manager에 복사
|
|
run('www/manager 복사',
|
|
'''DIST=$(find /tmp/mgr2 -name "index.html" -not -path "*/node_modules/*" 2>/dev/null | head -1 | xargs dirname 2>/dev/null)
|
|
if [ -n "$DIST" ]; then
|
|
echo "dist 폴더: $DIST"
|
|
mkdir -p /var/www/manager
|
|
cp -r $DIST/. /var/www/manager/
|
|
echo "복사 완료: $(ls /var/www/manager/ | wc -l) 파일"
|
|
stat /var/www/manager/index.html | grep Modify
|
|
else
|
|
echo "dist 폴더 없음"
|
|
fi''')
|
|
|
|
run('Manager 서비스 재기동', 'systemctl restart guardia-manager && sleep 3 && systemctl is-active guardia-manager')
|
|
run('정리', 'rm -rf /tmp/mgr2 /tmp/mgr.bundle 2>/dev/null; echo "정리 완료"')
|
|
|
|
# 2. guardia-itsm diff 재확인
|
|
run('ITSM app vs src 최종 확인',
|
|
'diff -rq /opt/guardia/src /opt/guardia/app '
|
|
'--exclude="*.pyc" --exclude="__pycache__" --exclude=".git" '
|
|
'--exclude="*.db" --exclude="uploads" --exclude=".env" '
|
|
'--exclude=".pytest_cache" --exclude="rpa_rules.json" --exclude="rpa" '
|
|
'--exclude="scripts" 2>/dev/null || echo "차이 없음"')
|
|
|
|
c.close()
|