itsm_ysm/install/preflight.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

25 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# ITMS 설치 사전 점검 (읽기 전용). 실패해도 설치를 막지 않으나 경고를 남긴다.
set -u
echo "== ITMS preflight =="
# JDK17
if command -v javac >/dev/null 2>&1 && javac -version 2>&1 | grep -q ' 17'; then
echo "[OK] JDK17 (javac): $(javac -version 2>&1)"
elif ls /usr/lib/jvm/ 2>/dev/null | grep -qi 'java-17'; then
echo "[OK] JDK17 설치 경로 존재: $(ls -d /usr/lib/jvm/*17* 2>/dev/null | head -1)"
else
echo "[WARN] JDK17 미검출 — 'apt-get install -y openjdk-17-jdk' 또는 'dnf install -y java-17-openjdk-devel'"
fi
# systemd
command -v systemctl >/dev/null 2>&1 && echo "[OK] systemd 존재" || echo "[WARN] systemd 미검출"
# disk
avail=$(df -Pm /opt 2>/dev/null | awk 'NR==2{print $4}'); echo "[INFO] /opt 여유: ${avail:-?} MB (권장 2000+)"
# mem
mem=$(free -m 2>/dev/null | awk '/Mem:/{print $2}'); echo "[INFO] 총 메모리: ${mem:-?} MB (권장 4096+)"
# DB 포트 도달성(선택; 인자로 host:port 전달)
for hp in "$@"; do
h=${hp%:*}; p=${hp#*:}
timeout 4 bash -c "echo > /dev/tcp/$h/$p" 2>/dev/null && echo "[OK] DB 도달 $hp" || echo "[WARN] DB 미도달 $hp (api/batch 기동 전 필요)"
done
echo "== preflight 완료 =="