#!/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·프로파일 시크릿 확보 후 기동할 것."