개발 기록

>[ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 3. Jenkins 접속 및 Github 연동 본문

인프라

>[ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 3. Jenkins 접속 및 Github 연동

1z 2024. 3. 8. 19:11

 

 

 

 

1. Jenkins 접속   

 

(1)  {EC2 IP 또는 도메인}:8080 접속

* ec2 의 경우 방화벽 인바운드 규칙에 젠킨스 port 를 추가해야지 접속이 가능하다. 

* 젠킨스는 기본적으로 8080 포트로 지정 되어 있는데, 8080 포트는 겹치는 경우가 많아서 변경해주어야 한다.

Jenkins가 설치된 서버에서 아래 명령어로 설정 파일을 열고  JENKINS_PORT 값을 수정한다.

# jenkins config 열기
sudo vim /etc/sysconfig/jenkins

 

 

/var/jenkins_home/secrets/initialAdminPassword 경로에 가면 젠킨스 비밀번호를 확인 할 수있다. 

# 젠킨스 컨테이너 접속
docker exec -it 컨테이너_ID 또는 컨테이너_이름 /bin/bash

# 비밀번호 확인
cat /var/jenkins_home/secrets/initialAdminPassword

 

도커 로그에서도 확인 할 수 있다.

docker logs 컨테이너_ID 또는 컨테이너_이름

 

 

(2)  플러그인 설치 

Install suggested plugins  : 많이 사용되는 플러그인들이 포함되어 자동 설치 (ex. docker pipeline, git 관련)

Select Plugins to install   : 젠킨스에서 제공하는 플러그인 중 필요한 것만 설치

 

 

 

(3) Admin User 생성

 

Jenkins 접속 시 사용할 계정을 설정한다. 계정을 생성하면 Instance Configuration 화면이 나타나는데, 이 부분은 그냥 "Save and Finish" 클릭한다.!

 

 


 

2. Jenkins Credentials 등록  

 

:GitHub Repository 에서 소스를 pull 받거나 Docke Hub 에 이미지를 pull/Push 할려면 해당 저장소에 접근할 수 있는 인증정보를 등록해야한다.

 

☞ Jenkins 대시보드 > Jenkins 관리 > Manage Credentials > Credentials 으로 이동해서 Domain이 (global)인 화살표를 눌러 Global credentials (unrestricted)로 이동한다. 

 

(1)  Docker Hub 계정 등록 

ⓛ Username : 도커 허브 계정 ID

② Password : 도커 허브 비밀번호

ID : 해당 credentials 식별값 (파이프 라인에서 사용)

 

 

 

(2)  깃허브 계정 등록 

  Username : 깃허브 계정 ID

  Password : 깃허브 Access Token

 ID : 해당 credentials 식별값

 

 

Test 목적이어서 Username with password 로 했는데, 보안상 좋지 않으므로 실제로 운영할 때는  SSH Username with private key 로 해야한다.

ⓛ  Kind : SSH Username with private key

  Username : root (default)

 Private Key : Enter directly 체크 -> private key 입력 => Jenkins Server에서 생성한 id_rsa

  ID : 해당 credentials 식별값

 

💡 Git Hub Access Token 발급받기

- 계정의 setting -> Developer settings -> Personal acess tokens -> Tokens(classic) 

 

 

 

💡Jenkins SSH를 이용한 GitHub 연동방법 참고=> (https://webcoding-start.tistory.com/81)

 

 

 


3. Freestyle Project 생성 : Github 연동 Test  

 

(1)  Freestyle Project 생성

☞ Jenkins 대시보드 > 새로운 Item > Freestyle Project 

 

 

(2)  Github Repository 주소 등록

 

- Credentials 선택창에 위에서 등록한 계정정보가 출력된다. Github Credentials Id 를 선택하면 된다.

- branch의 경우 master push시에 젠킨스에서 빌드를 진행하도록 master 를 선택했다.

ex. develop 브랜치에 push 시 빌드되도록 할려면 */develop 를 입력하면 된다.

 

 

 

(3)  빌드 유발 및 빌드 작업 설정  

 

* Webhooks : GitHub에서 특정 이벤트가 발생할 때마다 외부 웹 서버에 알림을 전달하는 방법을 제공한다.

: Jenkins 는 GitHub에서 발생하는 하는 이벤트(ex.코드가 리포지토리에 푸시)를 구독한다. Github master branch push 이벤트가 발생하면 젠킨스 파이프라인을 트리거 한다.


빌드 작업 설정 : build->execute shell 선택하여 빌드스크립트을 작성한다.

 

(4)  빌드 TEST  

:빌드를 실행하여 소스코드가 잘 받아와지는지, 스크립트 명령은 잘 실행되는지 확인한다.