목차
이번엔 전자정부프레임워크의 서버용 개발환경을 이용해서 CI, CD를 구축했다.
다음엔 저번에 설치한 GitLab과 새로 설치한 Jenkins로 처음부터 연동하는 것도 포스팅 예정이다.
[DevOps] CentOS 8 JenKins 설치(feat. CI, CD)
목차JenKins 설치과정내 경우는 jdk가 이미 설치되어 있었기에 그 부분은 생략했다.#공개키 가져온다.rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key#저장소 파일 설치sudo wget -O /etc/yum.repos.d/je...
yaga.tistory.com
[DevOps] CentOS 8 GitLab 설치
목차GitLab 설치과정#GitLab의 CentOS용 RPM 저장소 설치하기 위한 스크립트 다운로드 및 실행curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash#gitlab 커뮤니티버전 설치sudo yum...
yaga.tistory.com
그림은 참 못그렸지만 구조는 대략적으로 아래와 같다.
이로써 해보지 않았던 JenKins 세팅이라는 small success를 또 얻었다. 😄
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI)](https://blog.kakaocdn.net/dn/5hzfE/btsHbR1C7WE/jlGomakqebxuDD3UPvsbT1/img.png)
1. 개발자pc에서 GitLab으로 소스를 commit/push한다.
2. GitLab에 push 이벤트 발생 시 webhook을 이용해서 jenkins의 job을 실행시킨다.
3. jenkins의 job에서는 빌드 툴(여기선 maven)을 이용해서 빌드한다.
4. 빌드가 성공적으로 수행된 경우 WAS의 배포경로에 소스를 war파일 형태로 배포한다.
다음엔 버추얼박스에 다 설치해서 라이브로 촬영할까 생각중이다.
GitLab Community Edition ver: 15.9.1
Jenkins 2.426.3
JenKins를 띄우는 tomcat 9.0.85
jdk 17.0.11(OpenJDK Corretto)
apache-maven 3.9.6
내용이 기니까 목차로 이동하길 바란다.
서버용 개발환경 다운로드 및 업로드
아래 경로에서 eGovCI-4.2.0.tar.xz를 다운로드 받는다.
https://www.egovframe.go.kr/home/sub.do?menuNo=94
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드](https://blog.kakaocdn.net/dn/bagvB9/btsHcK8yR3v/xkojU3GX0iBHIuPmd6GWXK/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드](https://blog.kakaocdn.net/dn/1A3Yp/btsHaZTIHLB/y6BrfHMUCS8XYHvmwFOJkk/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드](https://blog.kakaocdn.net/dn/SOwOT/btsHbBLuwB7/K85cuAIvbfxhS2kKUwTnzK/img.png)
업로드 권장 경로(/home/사용자폴더)에 업로드 한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드](https://blog.kakaocdn.net/dn/CV0TO/btsHaVKKLZ0/EKsZhOPyN9ufmgAYnxDFtk/img.png)
업로드한 eGovCI-4.2.0.tar.xz의 압축을 해제한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드](https://blog.kakaocdn.net/dn/bUq7dt/btsHbvkhE3t/5dROk1YWsQZfTvusuxd5X0/img.png)
서버용 개발환경 폴더 목록을 확인한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - 서버용 개발환경 다운로드 및 업로드](https://blog.kakaocdn.net/dn/mnYPZ/btsHcoEGhFv/ByiYKw7wr7RJ30qR7xrJL1/img.png)
Jenkins 실행 및 설정
서버용 개발환경 리눅스용은 jdk가 동봉되어 있지 않으니 jdk를 미리 세팅해놔야 한다.
이 부분은 표준프레임워크센터에서 리눅스용 배포할 때 누락된건지 정확히 알 수 없다. 😥
그냥 다 넣어주면 좋으련만..리눅스용 말고 아래처럼 windows용은 jdk 1.8과 17 둘 다 들어있다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/chX8Rr/btsHcmtkaAj/Moc3ErY12hLlvedFoI2zRK/img.png)
세팅된 jdk와 jenkins를 연동하기 위해 다음 파일의 JAVA_HOME 경로를 수정한다.
vi /home/사용자폴더/eGovCI-4.2.0/setEnv.sh
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/cb7IG4/btsHa0rA1RC/1YIGnuAiAKZKJiDK62OCG0/img.png)
jenkins를 띄우는 tomcat의 포트 변경(WAS와 port 중복 방지) 후 방화벽을 해제한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/b0sBy7/btsHaSHhcbm/ypGeVQvPG4YnoAMbhNofXK/img.png)
#포트 설정 수정하기 위한 파일 편집
vi /home/사용자명/eGovCI-4.2.0/bin/apache-tomcat-9.0.85-jenkins/conf/server.xml
#방화벽 허용
sudo firewall-cmd --permanent --zone=public --add-port=포트번호/tcp
#방화벽 적용
sudo firewall-cmd –reload
#방화벽 허용 목록
sudo firewall-cmd --list-all
jenkins를 기동한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/bi1Rlv/btsHatOyvqN/Fc2W3l4JD7uGp1pBHp4FfK/img.png)
jenkins의 admin 임시 비밀번호를 확인 후 복사한다.
cat /home/사용자명/eGovCI-4.2.0/home/Jenkins/secrets/initialAdminPassword
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/mqwwP/btsHcstvNuf/kvsCSpMz5AU63lZ0U21adk/img.png)
브라우저에서 host:8081/jenkins로 호출한 뒤 admin/임시비밀번호로 로그인 한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/bR0unJ/btsHbjRWabX/ttp3NHPR7l3VyNlUgW4XdK/img.png)
그 후 admin 비밀번호를 변경 후 재로그인한다.(Jenkins관리 > Users > Password)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정](https://blog.kakaocdn.net/dn/D2zeJ/btsHat112GZ/CKEIKFnkSUdQN1YIMkFds0/img.png)
Tools
Jenkins 관리 > System Configuration > Tools 선택 후 Maven Configuration, JDK installations, Git installations, Maven installations을 설정 후 저장한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools](https://blog.kakaocdn.net/dn/F1HOx/btsHbS7iNNn/sb6KxkMLZgwKhAGkGlnJ21/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools](https://blog.kakaocdn.net/dn/bIZVqX/btsHbmgOCld/d9zP4uJC7on9Oc1Fi9m5W1/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools](https://blog.kakaocdn.net/dn/bF5loE/btsHaYgeb1j/NtBquJUxGRd73IAC3cm9J1/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Tools](https://blog.kakaocdn.net/dn/o6tuQ/btsHbRm1Uyy/YCaTsywLbF3GV3FQkAdWik/img.png)
GitLab Plugin 설치
소스 저장소가 GitLab이라서 GitLab 플러그인을 설치한다.(Jenkins관리 > Plugins > 사용가능 플러그인)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - GitLab Plugin 설치 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - GitLab Plugin 설치](https://blog.kakaocdn.net/dn/cCGEem/btsHbntbBwu/lG1hAn6Ikwn5XB88FmPLGK/img.png)
Item 생성 및 설정
작업을 진행할 Item명 입력 후 Maven project 선택 후 Ok를 누른다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/uW29r/btsHap6oUt1/sVKwI1zrKquzMKt4e0oqyk/img.png)
소스코드관리에서 Git을 선택한 후 Repository URL에 GitLab 저장소 URL을 입력한다.
현재는 GitLab 계정이 없어서 연결이 실패한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/de8wIi/btsHbilaSh8/0eAs6tXUHuxM7VNbJZULJ0/img.png)
Credentials > Add(Jenkins) 선택 후 Username, Password만 본인의 gitLab계정로 입력 후 Add를 누른다.(ID, Description은 선택사항이다.)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/bp8NHQ/btsHcodBB1m/grVXLXWdOI104rdyzPjGN0/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/HJlXh/btsHcTqSDNV/MbTToCWNuxyGF0kKU5svu1/img.png)
Git > Repositories > Credentials에서 방금 추가한 계정을 선택한다.
Branches to build는 테스트를 위해서 Branch Specifier를 빈값으로 해서 모든 branch로 설정했다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/bl3ZHV/btsHbmHV3VZ/fqm1S4K1NEeKisHm0mdpUk/img.png)
Apply를 누른다.
빌드유발에서 Build when a change is pushed to GitLab을 체크 후 GitLab webhook URL을 메모해 둔다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/nudGj/btsHavFCbsP/XR5RKAdL3nOBOTCDDqMHaK/img.png)
빌드 유발 > 스크롤 내려서 Secret token에서 Generate을 누르면 토큰이 생성되는데 이를 메모해 두고 (절대 외부에 유출되면 안된다.) Apply 누른 후 저장을 누른다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/d3zSou/btsHa41Kxld/W0c8mdQiuYTF2dhwXMkDnK/img.png)
GitLab으로 이동 후 > 해당 프로젝트 > Settings > Access Tokens에서 토큰을 생성한다.
만료일을 지울 경우 만료가 없게 되고 Select scopes는 상황에 맞게 체크 후 Create Project access token 선택 시 토큰이 생성되는데 이를 메모해둔다. (절대 외부에 유출되면 안된다.)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/buKY22/btsHaRItLby/1Zuy2caOJbXU35NkMs6Nuk/img.png)
Settings > Webhooks에서 URL에 jenkins에서 메모해 둔 GitLab webhook URL을 입력(이 때 host는 localhost가 실제 IP를 입력해야 외부 통신이 된다.), Secret token도 jenkins에서 생성한 토큰 입력 후 Trigger > Push events에서 원하는 branch를 체크 한 뒤 (테스트를 위해 All branches로 체크했다.) Add webhook을 누른다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/I0m6Z/btsHa2v6plK/5pm94tURS840Tv4yRbKwc0/img.png)
만일 webhook 생성 시 아래처럼 에러가 발생 할 경우 전체 관리자로 접속 후 Admin Area > Network > outbound requests 선택 후 Allow requests to the local network from web hooks and services 체크 후 저장 한 뒤 재시도한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/vRxbq/btsHcSS3C12/PkYR4df28tpYFXBb5fiHx1/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/bcVjXy/btsHbrWudMC/rO9Ef3HSTAnJeef1JQRew1/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/Hp8hC/btsHbVCWZHW/RLZkGOQO2SGv3U5WzElMuk/img.png)
webhook이 생성되면 Test > Push events를 눌러 테스트한다.
만일 아래처럼 403 에러 발생할 경우 jenkins에서 Secret token이 제대로 생성되었는지 확인한다. Secret token Generate 후 Apply 누른 후 저장을 눌러야 생성된다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/chNZDh/btsHa2JBMxx/FJfcKJnmBakK4bZaPZEPh1/img.png)
webhook 정상 통신 될 경우 아래처럼 상태값 200이 확인된다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/conSFN/btsHbgt8QqT/PJbLOjUFX5KEDWtq702le1/img.png)
다시 Jenkins로 와서 Jenkins 관리 > Credentials > Stores scoped to Jenkins에서 Domains의 global을 누른다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/s1IxQ/btsHaZzr621/mNT40KkVFoYKpSPQKSqIpK/img.png)
Kind > GitLab API token 선택, API token에 GitLab에서 생성한 API token을 입력 후 Create를 누른다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/bqfp2T/btsHbeXsO6P/lxKc7ry2kxkG9n3FwhInJ0/img.png)
Jenkins 관리 > System > GitLab에서 Connection name, GitLab host URL 입력 후 Credentials에서 생성한 GitLab API token 선택 후 Test Connection을 누르고 Success가 표출되는지 확인한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/c4sEQ9/btsHan8Dpmv/YwlkfleABP8onnNc5U9GrK/img.png)
Dashboard에서 아까 생성한 item 선택 후 구성을 누르고 Build부분에서 Goals and options에 아래처럼 입력(상황에 따라 다르게 입력한다.) 후 Apply를 누른다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - Jenkins 실행 및 설정 - Item 생성 및 설정](https://blog.kakaocdn.net/dn/rdMYU/btsHcTRW2OE/q4tVVKw6KJWhDcBUZ7OKZK/img.png)
WAS(apache tomcat 9.x) 설정
WAS에 tomcat manager 계정으로 관리할 수 있도록 아래 명령어로 파일을 편집 후 tomcat 재기동한다.
#tomcat user 편집
vi /tomcat설치경로/tomcat/conf/tomcat-users.xml
#tomcat manager 원격 접속 허용하기 위함
vi /tomcat설치경로/tomcat/webapps/manager/META-INF/context.xml
# <Value className…> 주석처리
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정](https://blog.kakaocdn.net/dn/cX2eqC/btsHbmnEJIc/1l6GbqkgoHE2rWRzoHSOwk/img.png)
브라우저에서 host:port/manager 호출 후 생성한 tomcat manager계정으로 접속 되는지 확인한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정](https://blog.kakaocdn.net/dn/daSwDG/btsHavZQnru/gcRjZ9tRSxjR26anBVqQt0/img.png)
다시 Jenkins로 와서 Jenkins관리 > Plugins에서 deploy라고 검색 후 Deploy to container를 설치한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정](https://blog.kakaocdn.net/dn/cTRjmq/btsHcqJf4MA/NunksRVhbV7ynrn0ON3zs1/img.png)
Item > 구성에서 빌드 후 조치 > 빌드 후 조치 추가에서 Deploy war/ear to a container를 선택한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정](https://blog.kakaocdn.net/dn/bNylRF/btsHbUD39eH/HpM3xnMAEkPRCuUx5U8j0k/img.png)
War/EAR files의 표현식을 입력 후(매뉴얼에서는 모든 war파일로 입력했다.)
Containers > Add Container 선택 후 Tomcat 9.x Remote를 선택한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정](https://blog.kakaocdn.net/dn/sen52/btsHbDbvCis/6Ak5Xa8hgJv1WskyiedJu1/img.png)
Tomcat 9.x Remote > Credentials > Add(Jenkins)누른 후 tomcat manager정보를 입력 후 Add를 눌러서 추가 후 Credentials에서선택 후 Tomcat URL 입력 후 저장한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - WAS(apache tomcat 9.x) 설정](https://blog.kakaocdn.net/dn/nKKvS/btsHdwCdEGa/kZ9K47jewB1rEoI80bA8Xk/img.png)
CI, CD 테스트
테스트용으로 branch 생성 및 화면 수정 후 GitLab에 commit/push한다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/ckekSL/btsHbQuZkdf/GK0j9cZ50pS5nAEDjij4IK/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/uwkGw/btsHb9119iQ/yHn2YwkazmPZBHlCIVbDl0/img.png)
Jenkins에서 빌드가 실행된다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/Dum2J/btsHb8B8k9R/NDyOREhS2kU0l3ZXIL7d0K/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/OEtBX/btsHcn6TAmh/bIKpGtCMVUkrIG34KLrsTK/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/vfnoe/btsHcHRy3vA/2hdeUSvaW92e3oYkrdxLvK/img.png)
Console Output 선택 시 로그를 확인할 수 있다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/V7L2D/btsHbra6isN/OODY135FR0wGZy4nv8IE40/img.png)
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/DWcmt/btsHbAsiStd/hQbYzL99Xk7uTXmgKY5fQ0/img.png)
서버의 WAS 배포 경로에 war파일의 배포상태를 확인한다.
war파일이 잘 옮겨졌고 압축도 풀렸다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/Fbhfx/btsHbPbJE0f/XYPTT6nMR0gpr1ht9RbvC1/img.png)
브라우저에서 웹 애플리케이션의 url 호출 후 로그인 화면 내용의 변경을 확인한다.
정상적으로 수정한 소스가 적용되었다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://blog.kakaocdn.net/dn/b3Tl5v/btsHcsG4hiy/mj7KivNYjgmcVYrOZfYtm0/img.png)
전자정부 CI 구축 가이드가 리눅스용은 참조할 만한 게 별로 없어서 삽질 많이했다.
휴 이번 포스팅은 매우 힘들었다.
![[DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트 [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI) - CI, CD 테스트](https://t1.daumcdn.net/keditor/emoticon/friends1/large/021.gif)
미래의 나를 위해 하는 기록이고 누군가에게 작은 도움이 되길 바라며..
개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.
틀린 점 있을 경우 댓글 부탁드립니다.
'IT > DevOps' 카테고리의 다른 글
[git] git reset(feat. soft, mixed, hard) (36) | 2024.06.06 |
---|---|
[DevOps] Nexus 실행 및 연동 (feat. eGovCI) (37) | 2024.05.08 |
[DevOps] CentOS 8 GitLab 설치 (35) | 2024.05.01 |
[DevOps] CentOS 8 JenKins 설치(feat. CI, CD) (37) | 2024.05.01 |
[DevOps] CentOS7 설치부터 jdk, mysql, tomcat 연동까지 과정 (55) | 2024.04.25 |
댓글