CI/CD를 위한 시스템 아키텍처 실습(2)

Soyeon You·2023년 5월 25일
0

System

목록 보기
2/3

[참고자료]: Docker를 활용하여 Jenkins설치

저번글에 이어서 Jenkins를 설치하고 Gitlab과 연동까지 해볼 것이다.

Install Jenkins

Install Jenkins

이미지를 검색하고 다운로드한다.

docker search Jenkins

docker pull jenkins/jenkins:lts

Run Jenkins

docker run으로 다운받은 이미지로 jenkins를 실행해보자.

docker run -d -p 8181:8080 --restart=always --name my_jenkins -u root
jenkins/jenkins:lts

-d detached mode (백그라운드 모드)
-p host와 container의 포트를 연결 (포워딩)
-v host와 container의 디렉토리를 연결 (마운트)
–name container 이름
-u 실행할 사용자 지정

Access Jenkins

web browser에서 Jenkins에 접속해보자.
http://[JenkinsServerIP]:8181

위와 같은 화면이 뜨면 성공이다.

Login

원래 docker의 jenkins bash로 접속하고 위 사진에 적힌 경로의 암호파일을 열어서 초기암호를 확인해야하지만
아래 커맨드로 간편하게 확인할 수 있다.

docker logs jenkins

Set plugin

로그인 하고나면 아래와 같은 초기화면이 나온다.

"Install suggested plugins"를 선택해서 기본 플러그인을 설치해주자.

초기 설정 후 root 설정을 해준다.

아래와 같이 초기화면을 확인할 수 있다.

Intergrate Jenkins with gitlab

Install plugins

본격적으로 연동을 하기 전에 필요한 플러그인을 설치해주자
Jenkins에서 Jenkins 관리 > 플러그인 관리 > "git" 검색 > "git plugin", "gitlab plugin" 설치

Create project

"새로운 item"으로 새 프로젝트를 생성해보자.
프로젝트 이름을 작성하고 Free style project를 선택해준다.

pipeline에서 "구성"으로 이동한다.
Credential을 다음과 같이 추가해준다.

"소스코드관리"로 이동해서 gitlab clone URL으로 아래와 같이 gitlab 계정으로 설정한다.

"Build Steps"에서 "Execute shell"을 선택하고 저장한다.

"지금빌드"를 클릭하여 gitlab의 프로젝트 파일들을 가져와 빌드하는지 확인한다.

위와 같이 출력되면 성공!

Set webhook

Jenkins와 gitlab의 연동을 위해 webhook을 설정해야한다.

Generate secret token

구성 > 빌드유발(Build Triggers) > 고급 으로 이동한 뒤 secret token을 생성한다.
이건 다음 단계에서 써야하니 paste 해놓는다.

Connect at gitlab

gitlab으로 돌아가서 webhook URL과 생성했던 secret token을 넣어준다.

[❓] 아래와 같이 URL이 block 되어있다는 오류가 떴다.

[❗️] Menu > Admin > Settings > Network > Outbound requests 로 이동해서 아래와 같이 IP 연결을 허용한다.

등록에 성공하면 아래와 같이 hook이 뜬다.

Connect test

Hook의 Edit를 눌러 아래에 있는 Trigger를 Push events에 All branches로 설정한다.

아래와 같은 화면이 출력되면 성공!

Jenkins에서도 확인할 수 있다.


여기까지 CI를 위한 gitlab, Jenkins를 설치하고 연동했다.
이제 CD를 위해 Jenkins를 WAS와 연동해야한다..
화이팅...!

0개의 댓글