Tomcat 설치
3. 코드 예제
예제 1: 반입 파일 sha256 확인 — 01_tomcat_install.sh 발췌
sha256sum "$DIST/apache-tomcat-$TOMCAT_VER.tar.gz" \
| awk '{print $1}' > "$DIST/apache-tomcat-$TOMCAT_VER.tar.gz.sha256"
GOT=$(sha256sum "$DIST/apache-tomcat-$TOMCAT_VER.tar.gz" | awk '{print $1}')
WANT=$(cat "$DIST/apache-tomcat-$TOMCAT_VER.tar.gz.sha256")
if [ "$GOT" = "$WANT" ]; then
echo " sha256 일치, 설치를 진행합니다"
else
echo " sha256 불일치, 설치 중단"; exit 1
fi== 1. 반입 파일 준비와 sha256 확인 ==
반입 파일: apache-tomcat-10.1.30.tar.gz
인터넷 PC 가 게시한 sha256 값과 아래 값을 비교합니다.
3ae0c3381e2a7d3ecfeaa8c72b77fd58f830fba2f2ced294c18aaf3436e02793
sha256 일치, 설치를 진행합니다인터넷 PC 가 없어 실제 tar.gz 대신 같은 구조의 파일을 만들어 반입을 재현했습니다. 내용을 고정된 값으로 만들어 두 번 실행해도 같은 체크섬이 나옵니다.
예제 2: tar.gz 풀기와 심볼릭 링크 — 01_tomcat_install.sh 발췌
mkdir -p "$ROOT$BASE/tomcat"
tar xzf "$DIST/apache-tomcat-$TOMCAT_VER.tar.gz" -C "$ROOT$BASE/tomcat"
run ln -sfn "$BASE/tomcat/apache-tomcat-$TOMCAT_VER" "$BASE/tomcat/current"== 4. tar.gz 풀기와 current 심볼릭 링크 ==
풀린 위치:
WORK/app/tomcat/apache-tomcat-10.1.30
[dry] ln -sfn /app/tomcat/apache-tomcat-10.1.30 /app/tomcat/currentROOT 가 붙은 경로가 실제로 압축을 풀어 만든 폴더입니다. DRY_RUN 이면 이 PC 의 임시 폴더(WORK) 아래에 만들어지고, 실서버에서는 $BASE 바로 아래에 만들어집니다. 심볼릭 링크는 실제 전환을 검증할 수 없어 run 으로만 보여줍니다.
예제 3: setenv.sh 작성과 문법 검증 — 01_tomcat_install.sh 발췌
cat > "$SETENV" <<EOF
#!/usr/bin/env bash
# Tomcat 전용 환경변수, 최소만 둔다
export JAVA_HOME="$BASE/jdk"
export CATALINA_PID="$BASE/tomcat-inst/$INST/temp/catalina.pid"
EOF
bash -n "$SETENV" && echo " setenv.sh 문법 확인: 이상 없음" | mask== 6. setenv.sh 작성과 검증 ==
setenv.sh 문법 확인: 이상 없음bash -n 은 실행하지 않고 문법만 검사합니다. 설정 파일은 DRY_RUN 여부와 관계없이 항상 실제로 만들어 이 검사를 통과해야 합니다.
예제 4: systemd 유닛 키 검증과 기동 — 01_tomcat_install.sh 발췌
MISS=0
for k in "Type=" "PIDFile=" "ExecStart=" "ExecStop=" "Restart="; do
grep -q "^$k" "$UNIT" || { echo " 누락: $k"; MISS=1; }
done
[ "$MISS" = 0 ] && echo " tomcat.service 필수 키 확인: 이상 없음"
run systemctl enable --now tomcat
run curl -s -o /dev/null -w '%{http_code}\n' "http://localhost:8080/"== 7. systemd 유닛 작성과 확인 ==
tomcat.service 필수 키 확인: 이상 없음
[dry] systemctl daemon-reload
== 9. 기동과 curl 확인 ==
[dry] systemctl enable --now tomcat
기동 확인:
[dry] curl -s -o /dev/null -w %{http_code}\n http://localhost:8080/systemd-analyze 가 없는 이 PC 에서는 필수 키가 다 있는지 grep 으로만 검토합니다. 실제 문법 검증과 기동은 RHEL 서버에서 systemctl 로 합니다.