해당 학습을 통해 단순히 톰캣 서버에 소스코드를 배포하는 경험에서 한발 더 나아가 수동으로 배포하던 작업을 쉘 스크립트를 활용해 배포를 자동화하는 과정까지 진행한다.
톰캣 서버 설치
- Tomcat 8.0.x 버전을 다운로드 https://tomcat.apache.org/
- 톰캣의 기본 포트는 8080이며, 포트 변경은 TOMCAT_HOME/conf/server.xml 파일에서 설정 변경
- TOMCAT_HOME/bin/startup.sh 를 실행해 서버 시작 후 서버 정상 실행 확인
- 접속이 되지 않을 경우 톰캣 서버의 포트에 대한 방화벽 해제를 확인
# 1. 일반 사용자 권한에서 방화벽 해제가 불가함으로, ROOT 사용자로 변경 후 방화벽을 제거할 것
su -
# 1-1 비밀번호 설정이 안되있을 경우 아래 명령어로 root에 대한 password 설정
sudo passwd
# 2. ROOT 사용자로 변경된 쉘
root@tester-virtual-machine:~#
# 3. 8080번 포트에 대한 방화벽 해제
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 3-1. 사전에 방화벽 설치가 되어있지 않다면 설치 후 위 명령 다시 실행
apt install firewalld
# 4. 방화벽 해제에 따른 reload
firewall-cmd --reload
실습 코드 배포
- 계정 Home 디렉토리에 배포할 레포지토리 clone
- 저장소 디렉토리에서 프로젝트 빌드
# 1. 우선 아래 명령 실행
mvc clean package
# 2. 테스트 실패시 테스트 스킵할 것.
mvn clean package -Dmaven.test.skip=true
- TOMCAT_HOME/webapps 디렉토리의 ROOT 디렉토리 삭제
- 프로젝트 빌드시 생성된 프로젝트 폴더로 이동 후 ROOT 디렉토리로 이름을 변경
- 서버 시작 후 테스트
로그 모니터링
- 서버가 정상적으로 실행되고 있는지 log 파일을 통해 모니터링
# TOMCAT_DIR=~/apache-tomcat-8.5.87
tail -f $TOMCAT_DIR/logs/catalina.out
배포를 자동화할 쉘 스크립트 구성
#!/bin/bash => 사용할 쉘 지정
REPOSITORY_DIR=~/jwp-basic => 레포 디렉토리 이름 변수 지정
TOMCAT_DIR=~/apache-tomcat-7.5.87 => 톰캣 디렉토리 이름 변수 지정
cd $REPOSITORY_DIR
pwd
git pull
mvn clean package -Dmaven.test.skip=true
$TOMCAT_DIR/bin/shutdown.sh
rm -rf $TOMCAT_DIR/webapps/ROOT
pwd
mv $REPOSITORY_DIR/target/jwp-basic $TOMCAT_DIR/webapps/ROOT
pwd
$TOMCAT_DIR/bin/startup.sh
tail -f $TOMCAT_DIR/logs/catalina.out
'DevOps' 카테고리의 다른 글
[Wireshark] TCP 장애 대응 순서 (0) | 2023.03.06 |
---|---|
[WireShark] 네트워크 패킷 분석 도구 / 필터 문법 정리 (0) | 2023.03.06 |
[MariaDB] DB 연동 관련 쿼리문 모음 (0) | 2022.10.28 |