- 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>
25 lines
1.2 KiB
Bash
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 완료 =="
|