itsm_ysm/install/install.sh
itms-merge-dev 8adec35979 docs(itms): 지침서 4종(docx) + 설치 패키지 구성
- docs/ITMS_사용자지침서.docx: 접속·로그인(OTP)·주요 업무화면·FAQ
- docs/ITMS_운영자지침서.docx: 4포트 스택 구성·기관 프로파일·CI/CD·systemd 기동·헬스체크·트러블슈팅
- docs/ITMS_개발자지침서.docx: 멀티모듈 아키텍처·common 추출(키스토어 파라미터화)·빌드·기여 워크플로우·백로그
- docs/ITMS_서버설치가이드.docx: 사전요구사항·설치절차·CI연동·검증 체크리스트·제거

- install/ 설치 패키지 소스: preflight.sh·install.sh(멱등, 서비스 start 안 함)·uninstall.sh·README·make_package.sh
- make_package.sh → dist/itms-install-v1.0.tar.gz(152K): install+systemd+env+ci+docs 번들(재생성 가능, dist/ gitignore)

시크릿(접속정보·keystore 비번·연동 키) 문서·스크립트에 미포함(env/서버 로컬 관리 안내만). Tier2 기동은 DB/시크릿/JDK17 확보 환경 전제.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 22:55:12 +09:00

35 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# ITMS 멱등 설치: 계정·디렉터리·systemd 유닛·env 배치. 서비스 start 는 하지 않음(기동은 운영자가 4.6 절차로).
set -euo pipefail
[ "$(id -u)" = "0" ] || { echo "root 로 실행하세요 (sudo bash install.sh)"; exit 1; }
HERE="$(cd "$(dirname "$0")" && pwd)"
SVC_USER=itms
echo "== 1) 서비스 계정 =="
id "$SVC_USER" >/dev/null 2>&1 || useradd -r -s /usr/sbin/nologin "$SVC_USER" || useradd -r -s /sbin/nologin "$SVC_USER"
echo "== 2) 디렉터리 =="
mkdir -p /opt/itms/repo /opt/itms/artifacts /etc/itms
chown -R "$SVC_USER":"$SVC_USER" /opt/itms
echo "== 3) systemd 유닛 설치 =="
for u in "$HERE"/systemd/itms-*.service; do
install -m 644 "$u" /etc/systemd/system/"$(basename "$u")"
echo " installed $(basename "$u")"
done
systemctl daemon-reload
echo "== 4) env 템플릿 배치 (기존 파일 보존) =="
for m in auth api front batch datatrans; do
f=/etc/itms/itms-$m.env
if [ ! -f "$f" ]; then
install -m 600 -o "$SVC_USER" -g "$SVC_USER" "$HERE"/env/itms.env.example "$f"
echo " created $f (SPRING_PROFILES_ACTIVE 를 기관명으로 수정하세요)"
else
echo " keep $f (기존 유지)"
fi
done
echo
echo "설치 완료. 다음:"
echo " 1) 아티팩트: /opt/itms/artifacts/current/itms-<모듈>.war 배치(빌드 또는 CI)"
echo " 2) /etc/itms/itms-<모듈>.env 의 SPRING_PROFILES_ACTIVE=<기관> 설정"
echo " 3) 기동: for m in auth api front batch datatrans; do systemctl enable --now itms-\$m; done"
echo " ※ 런타임 DB(MariaDB/Oracle) 도달·keystore·프로파일 시크릿 확보 후 기동할 것."