ci(itms): dev->prod front 자동 승격 스크립트 추가 (deploy_itms_prod.sh)
deploy_server.py itms 블록의 dev health 게이트 통과 후 호출. front war tar-over-ssh → prod(itms.wise.ai.kr) 재기동 → prod health. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
d85b47fa08
commit
c93f916959
37
deploy/deploy_itms_prod.sh
Normal file
37
deploy/deploy_itms_prod.sh
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# ITMS 운영 승격 (dev -> prod, front-only, 무빌드 tar-over-ssh).
|
||||||
|
# deploy_server.py itms 블록의 dev health 게이트 통과 후에만 호출된다.
|
||||||
|
# 실패 시 exit!=0 (운영 미반영 — 직전 war 유지).
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
KEY=/var/lib/jenkins/.ssh/id_ed25519_prod
|
||||||
|
PROD_HOST=211.37.173.197
|
||||||
|
PROD_PORT=9271
|
||||||
|
PROD_DOMAIN=itms.wise.ai.kr
|
||||||
|
SRC_WAR=/opt/itms/artifacts/current/itms-front.war
|
||||||
|
H=$(basename "$(readlink -f /opt/itms/artifacts/current)")
|
||||||
|
SSH="ssh -p ${PROD_PORT} -i ${KEY} -o StrictHostKeyChecking=no -o ConnectTimeout=20"
|
||||||
|
|
||||||
|
echo "[prod-promote] target=${PROD_HOST} hash=${H}"
|
||||||
|
|
||||||
|
# 1) prod 디렉터리 준비
|
||||||
|
${SSH} root@${PROD_HOST} "mkdir -p /opt/itms/artifacts/${H} /etc/itms"
|
||||||
|
|
||||||
|
# 2) front war 전송 (무빌드)
|
||||||
|
scp -P ${PROD_PORT} -i ${KEY} -o StrictHostKeyChecking=no "${SRC_WAR}" \
|
||||||
|
root@${PROD_HOST}:/opt/itms/artifacts/${H}/itms-front.war
|
||||||
|
|
||||||
|
# 3) 심볼릭 갱신 + 재기동 + 헬스 게이트 (Host 헤더 필수)
|
||||||
|
${SSH} root@${PROD_HOST} "
|
||||||
|
ln -sfn /opt/itms/artifacts/${H} /opt/itms/artifacts/current &&
|
||||||
|
systemctl restart itms-front &&
|
||||||
|
for i in \$(seq 1 30); do
|
||||||
|
sleep 3
|
||||||
|
code=\$(curl -s -m5 -o /dev/null -w '%{http_code}' -H 'Host: ${PROD_DOMAIN}' http://127.0.0.1:11020/)
|
||||||
|
if [ \"\$code\" = '200' ] || [ \"\$code\" = '301' ] || [ \"\$code\" = '302' ]; then
|
||||||
|
echo \"[prod-promote] health OK (\$code)\"; exit 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo '[prod-promote] health FAIL'; systemctl is-active itms-front; exit 1
|
||||||
|
"
|
||||||
|
echo "[prod-promote] done"
|
||||||
Loading…
Reference in New Issue
Block a user