-
[CI/CD] Jenkins / GitLab / Docker / EC2 연동 (1/2)프로젝트/아카이뷰 2024. 1. 30. 21:02
SSAFY 2학기 프로젝트 "Archiview"를 Jenkins, GitLab, Docker, EC2를 이용해서 CI/CD를 구축해보겠다.
위 포스팅들을 통해 Jenkins와 Docker에 대한 개념과 원리를 이해할 수 있다.
아카이뷰 서비스 아키텍처
1. JDK 17 설치
- Jenkins는 Java 기반이기 때문에 JDK를 설치해줘야 한다. 최신버전을 사용하기 위해서 JDK 17을 설치했다.
2. Jenkins 패키지 다운
- LTS 버전인 2.426.3 버전의 패키지를 다운
3. Jenkins 설치
4. Jenkins 초기 비밀번호 확인
5. ufw 방화벽 오픈
- 외부에서 EC2 서버로 접근하는 것이므로 ubuntu 자체 방화벽인 ufw 설정을 해줘야한다.
6. Jenkins 초기 설정
- 4번에서 확인했던 비밀번호를 입력해준다.
- 플러그인을 이후에 추가로 설치할 수 있으니 기본적인 것만 설치하도록 한다.
- 일부 플러그인이 설치되지 않는 오류가 발생하는데 일단 넘어가도록 하자
- Jenkins 아이디와 비밀번호를 설정해주도록 한다.
- 아까 일부 플러그인이 설치되지 않는 오류가 발생했는데 해당 오류는 Jenkins의 버전이 최신 버전이지 않아서 발생하는 오류이다.
- Jenkins 홈페이지에서 가장 최신 버전인 2.443.war 파일을 다운받아 EC2 내부의 Jenkins 파일과 교체하여 업데이트 시켜주었다.(https://get.jenkins.io/war/2.443/jenkins.war)
- War 파일을 교체하기 위해 ps -ef | grep jenkins를 통해 jenkins.war이 어디에 설치되어 있는 지 확인할 수 있다.
- 해당 경로의 파일을 다운로드 받은 파일로 교체한다.
- 그리고 Jenkins를 다시 실행시켜 플러그인을 다시 설치한다.
- 추가적으로 CI/CD를 위해 플러그인을 설치해준다.
Post build task
Bitbucket Pipeline for Blue Ocean
Dashboard for Blue Ocean
Personalization for Blue Ocean
Display URL for Blue Ocean
Server Sent Events (SSE) Gateway
Events API for Blue Ocean
Blue Ocean Pipeline Editor
i18n for Blue Ocean
Autofavorite for Blue Ocean
GitHub Pipeline for Blue Ocean
Git Pipeline for Blue Ocean
Config API for Blue Ocean
Blue Ocean
Jersey 2 API
GitLab
Generic Webhook Trigger
GitLab Authentication
Gitlab API
GitLab Branch Source
Gitlab Merge Request Builder
Config File Provider
NodeJS이로써 기본적인 Jenkins 설정은 끝나게 된다. 이후 포스팅에서는 GitLab, Pipeline을 활용한 CI/CD 과정을 소개하도록 하겠다.
'프로젝트 > 아카이뷰' 카테고리의 다른 글
[CI/CD] Docker를 이용해서 Jenkins를 사용해야 할까? (0) 2024.02.01 [CI/CD] Jenkins / GitLab / Docker / EC2 연동 (2/2) (0) 2024.01.31 [Docker] RUN / CMD / ENTRYPOINT의 차이 (0) 2024.01.29 [CI/CD] Jenkins란? (0) 2024.01.27 [Docker] Spring boot 프로젝트 배포 (0) 2024.01.26