CI/CD를 위한 Tomcat 서버 연동해보기

gobeul·2023년 9월 20일
0

Jenkins 사용해보기

목록 보기
5/10
post-thumbnail

인프런 Dowon Lee님의 Jenkins를 이용한 CI/CD Pipeline 구축 강의를 수강하며 작성한 내용입니다.

Plugin 설치

deploy 검색후에 Deploy to container를 설치 해주자.
이 플러그인이 있어야 전 시간에 패키징한 war 파일을 톰캣 웹어플리케이션 서버에 복사하여 넣을 수 있다.

Deploy war/ear to a container

전 시간에 만든 아이템을 이어서 사용할 것이다.


아이템 구성의 "빌드 후 조치"에서 Deploy war/ear to a container 를 클릭한다.

전 시간에 빌드까지는 했다.
그럼 그 후 빌드 후 뭘 할거냐에 대한 부분이라고 생각하면 되겠다.

Deploy war/ear to a container 는 war(or ear)파일을 container에 Delpoy(배포)하겠다는 의미를 가지고 있다.


WAR/EAR files에 **/*.war 라고 작성한다.
이는 우리가 패키징을 했던 폴더의 위치에서 어떠한 파일을 복사할 것인지 알려주는 것인데,
**/*.war는 현재 디렉토리 및 그 하위에 있는 디렉토리에서 확장자가 war인 파일을 대상으로 한다는 의미이다.


그리고 어떤 컨테이너에 배포할 것인지를 선택해줘야한다.
Tomcat 9.x Remote를 선택한다. (9점대의 버전을 선택했다.)


war을 Tomcat 서버에 배포할 때, 서버에 접근할 수 있는. 즉 배포할 수 있는 권한이 있어야한다.
Credentials의 Add를 눌러 Jenkins를 누른다.


그림을 보면 Username과 password로 권한을 갖도록 할 수 있다.
아직 톰캣서버를 설치하지 않았기 때문에 권한을 설정한 username과 password가 없지만
후에 톰캣서버를 설치하게 되면

<user username="deployer" password="deployer" roles="manager-script"/>

이런식으로 username을 만들고 roles 를 통해 권할을 설정할 수 있다. 참고로 manager-script는 배포권한이다.


어째든 현재는 톰캣서버를 설치 안한 상태이므로 임의로 그림처럼 username, password, id, description 을 적어주었다.


그렇게 추가하고 나면 Credentials에 위에서 추가한 계정을 선택해주고
Tomcat URL을 적어준다. (현재 8080은 jenkins 포트라서 8081을 적었다.)

Tomcat Web Application Server 설치

tomcat.apache.org 에 접속하여 9버전 압축파일을 다운받는다.


압축을 푼 폴더에서 위와 같은 명령어를 통해 서버를 실행 시킬 수 있다. (window)
(현재 디렉토리에 있는 bin폴더안에 startup.bat파일을 실행한다는 뜻이다.)
(JDK or JRE 가 설치되어 있어야한다.)


윈도우의 경우 서버를 실행하고 주의할 점이 있는데 그림처럼 아무곳이나 클릭(or 드래그)가 되어 있으면 "선택 Tomcat"이라고 나타나고 이는 톰캣이 잠시 중지됨을 나타내기도 한다.
이 경우 간단하게 엔터키를 눌러 해제하도록하자


처음엔 포트 번호가 8080으로 되어 있을 건데, 젠킨스에서 8080을 사용하고 있으므로 8088로 변경해주었다. 변경방법은 구글을 확인해 보면 쉽게 찾을 수 있다. (사실은 Jenkins에서 적었던 8081로 해줘야되는데 까먹었다.)


shutdown.bat 파일을 실행해 줌으로서 톰캣서버를 중지할 수 있다.


디렉토리를 살펴보면 conf라는 폴더가 있는데 각종 설정을 담당한다.
그리고 webapps 폴더는 톰캣이 관리하는 웹 어플리케이션이 저장된다.

설정

그럼 이제 사용자계정이나 권한 부분을 새롭게 설정해 보자.
code .명령어로 현재 디렉토리를 VScode로 열어보자

webapps/manager/META-INF 폴더에 context.xml파일을 확인해보면 Value태그를 볼 수 있는데
이 설정이 의미하는 것은 127.0.0.1을 통해서만, 즉 localhost를 통해서만 접속이 가능하도록 제약을 걸어놓은 설정이다. 이부분을 주석처리해서 제약을 풀어주자!

webapps/host-manager/META-INF 폴더에 context.xml파일에도 똑같은 설정이 있다.
역시 주석처리해주자.


conf 폴더에 tomcat-user.xml 파일을 살펴보면 맨아래에 그림처럼 권한 설정을 해주는 부분이 주석처리가 되어 있을 것이다. 주석을 해제하고 위 처럼 role, user 설정을 해주었다.

위에 Jenkins에서 사용했던 deployer라는 username이 여기서 설정되는 것이다.


다시 톰캣 서버를 연다음 우측에 Manager App을 클릭하자.
그럼 로그인 창이 나올텐데, manager-gui 권한을 줬던 계정으로 로그인해보자.


현재 톰캣서버가 가지고 있는 웹어플리케이션 항목들을 확인할 수 있다.
Jenkins를 통해서 업로드하는 데이터 내용을 여기서 확인할 것이다.

이제 끝!

이제 빌드를 해보자.
그럼 톰캣서버에 잘 배포가 되겠지?? ㅎㅎ

어..????

profile
뚝딱뚝딱

0개의 댓글

관련 채용 정보