[Jenkins] Jenkins를 이용한 CI/CD 자동화 도구의 사용

2023. 8. 17. 17:46초기 과업/DevSecOps

작성자알 수 없는 사용자

728x90
반응형

 

안녕하세요. 기깔나는 사람들에서 DMSO를 맡고있는 정우입니다.

 

 

 


CI/CD를 위한 Git, Maven 연동

 

깃허브 plugin이 연동이 되었는지 확인 해보겠습니다.

 

Jenkins관리 -> Jenkins Plugins -> Installed plugins-> Github

깃허브 plugin이 기본적으로 설치 되어있는 것을 확인 할 수 있습니다.

 

다시 Dashboard > Jenkins 관리 > Tools로 이동해봅니다.

Git을 사용해줄 수 있도록 설정해줍니다.

 

저는 Default로  사용해주겠습니다.

 

git을 확인해보고 설치가 되어있다면 Install automatically 는 제외하셔도 됩니다!

 

 

maven 도 동일한 방식으로 설치해주도록 하겠습니다.

저는 maven Integration이 없기 때문에 설치해주겠습니다.

설치해주겠습니다.

 

 

다시 Dashboard > Jenkins 관리 > Tools로 이동해봅니다.

maven을 사용해줄 수 있도록 설정해줍니다.

mvn --version

 

설치가 되어있지 않기 때문에 Maven을 설치 해주겠습니다.

 저는 강의 환경과 맞추기 위해 3.8.5버전을 사용하겠습니다.

 

 

이렇게 설치가 완료가 되었으니,

새로운 프로젝트를 만들어보겠습니다.


두번째 Maven Project 만들기

 

이번엔 Maven 설치를 확인하기 위해

Maven project를 사용해 보겠습니다.

 

 

General은 기본적으로 설명을 써주시고,

 

 

소스코드 관리 부분에서는 선생님 샘플코드인 git repo를 사용해보겠습니다.

 

 

 

maven빌드를 할때 pom.xml을 사용을 하게 되는데

clean compile package

clean -> 새롭게 

compile -> 실행

package -> pom.xml에 따라 패키지 설치를 하겠다

 

 

저장을하고 콘솔을 확인해보도록 하겠습니다.

 

브랜치 에러발생! 

더보기 ▼

더보기

 

 

 

 

내 브랜치는 main인데 master로 설정되어있기 떄문이다

 

다시 프로젝트 > 구성 > git > 고급 > main으로 수정해준다 

 

 

다시 빌드해보면 파란불 짜잔! 

 

 

 

 

프로젝트가 생성된 것을 확인할 수 있습니다.

$ docker exec -it jenkins-server bash

 

war파일로 배포가 잘 된 것이 확인 됩니다!

 

 

아직 Tomcat이 설치되어있지 않습니다.

Tomcat을 설치하러 가보겠습니다.

 


CI/CD를 위한 Tomcat Server연동

Tomcat 플러그인을 설치하러 가보겠습니다.

 

Jenkins관리 -> Plugins -> Installed plugins-> Deploy to Container

 

 

 

세번째 프로젝트를 생성해 주겠습니다.

"My-Third-Project" 이고 Maven project로 설정해주겠습니다.

 

 

마찬가지로 깃허브에서 소스코드를 가져올게요

 

 

pom.xml을 기반으로 빌드해주겠습니다.

tomcat에 빌드하게되면 war파일이 되겠네요.

 

빌드 후 조치

war로 파일이 생성이됐으면

Container에 배포해보겠습니다.

 

war파일로 되어있는것을 컨테이너에 넣어줄게요.

**/*.war -> war 확장자 모두 선택

 

 

Container는 tomcat은 9버전으로 설정해보겠습니다.

권한을 사용하도록 Credentials를 설정해주겠습니다.

해당하는 톰캣의 계정을 추가해주겠습니다.

저희는 톰캣 유저를 3명을 설정해줬는데요

 

 

 

deployer라는 계정을 사용해보겠습니다.

 

Add를 해주면 

좀전에 추가해주었던 deployer 계정이 추가된 것이 보여집니다.

 

현재 8080은 사용중이기때문에

톰캣은 IP:8088포트를 사용해보겠습니다.

 

 

여기서 주의할점

Jenkins는 도커 내부에서 사용하는것입니다.

그래서 Jenkins를 사용할때는 localhost나 127.0.0.1을 사용해서 들어갔다면

Jenkins 내부에 설치한 Tomcat은 로컬호스트로 연결이 불가능합니다.

 

그렇기 때문에 Tomcat을 사용하고 싶으신 경우, 내 실제 IP 주소를 사용해주어야 합니다. 

 


이제 확인 하러 가보겠습니다.

 

 

 

 

빌드에서 403에러 발생시 : 권한이 없다면

아래 부분에서 tomcat_user.xml수정해주셔야합니다.

https://giggal-people.tistory.com/entry/Tomcat-%EC%84%A4%EC%B9%98-%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-OpenJDK%EC%84%A4%EC%B9%98-Java-Path-%EC%9E%A1%EA%B8%B0

 

[Tomcat 설치] 리눅스 환경에서 OpenJDK설치 & Java Path 잡기

안녕하세요. 기깔나는 사람들에서 DMSO를 맡고있는 정우입니다. Jenkins에서 Java가 설치되어 있어야 하기 때문에 Tomcat을 연결 해보겠습니다. 우선 윈도우나 맥환경이면 직접 접속을 해서 톰캣을 설

giggal-people.tistory.com

 

 

 

배포 성공입니다!!!

 

톰켓 폴더로 이동해서 webapp폴더 내부에 war파일이 설치되어있는지 확인해볼게요

hello-world.war 추가된게 보입니다!

 

내 IP : 8088/hello-world로 접속해봅니다

 

 

 

 

Sample예제를 확인할 수 있습니다.

 

 

 


 

다음번엔 PollSCM을 사용하여 업데이트된 내용을 자동으로 확인하고 빌드할 수 있도록 해볼게요!!

 

 

 

 


참고자료

🔗 - 인프런-Jenkins를 이용한 CI/CD Pipeline구축

 

 

 

 

 

728x90
반응형