44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
"""webhook 서버 포트 충돌 해결 + Jenkinsfile Gitea push"""
|
|
import paramiko, sys, subprocess, os
|
|
sys.stdout.reconfigure(encoding='utf-8', errors='replace')
|
|
|
|
client = paramiko.SSHClient()
|
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
client.connect('101.79.17.164', username='root', password='1q2w3e!Q', timeout=15)
|
|
|
|
def run(label, cmd, timeout=30):
|
|
print(f'\n[{label}]')
|
|
_, o, e = client.exec_command(cmd, timeout=timeout)
|
|
out = o.read().decode('utf-8', 'replace').strip()
|
|
print(out[:600] if out else '(empty)')
|
|
return out
|
|
|
|
# 1. 포트 9999 점유 프로세스 강제 종료
|
|
run('포트 9999 프로세스 확인', 'ss -tlnp | grep 9999')
|
|
run('포트 9999 kill', 'fuser -k 9999/tcp 2>/dev/null; sleep 1; ss -tlnp | grep 9999 || echo "포트 해제됨"')
|
|
|
|
# 2. systemd 서비스 재시작
|
|
run('서비스 재시작', 'systemctl restart zioinfo-deploy && sleep 3 && systemctl is-active zioinfo-deploy')
|
|
run('서비스 상태', 'systemctl status zioinfo-deploy --no-pager | head -10')
|
|
|
|
# 3. webhook 동작 확인
|
|
run('webhook 트리거 테스트', """
|
|
curl -sf -X POST http://localhost:9999 \
|
|
-H 'Content-Type: application/json' \
|
|
-H 'X-Gitea-Event: push' \
|
|
-d '{"repository":{"name":"guardia-itsm"}}' 2>/dev/null || echo "연결 실패"
|
|
""")
|
|
|
|
# 4. Gitea webhook 등록 상태 확인 (zioinfo-web 포함 5개)
|
|
REPOS = ["zioinfo-web", "guardia-itsm", "guardia-manager", "guardia-messenger", "guardia-docs"]
|
|
for repo in REPOS:
|
|
run(f'webhook {repo}', f"""
|
|
R=$(curl -sf 'http://127.0.0.1:9003/api/v1/repos/zio/{repo}/hooks' \
|
|
-u 'zio:Zio@Admin2026!' 2>/dev/null | \
|
|
python3 -c "import sys,json; d=json.load(sys.stdin); [print(h.get('id'), h.get('config',{{}}).get('url',''), 'active:', h.get('active')) for h in d]" 2>/dev/null)
|
|
[ -z "$R" ] && echo "webhook 없음" || echo "$R"
|
|
""")
|
|
|
|
client.close()
|
|
print('\n=== webhook 서버 수정 완료 ===')
|