개발 기록
>[ 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
:빌드를 실행하여 소스코드가 잘 받아와지는지, 스크립트 명령은 잘 실행되는지 확인한다.

'인프라' 카테고리의 다른 글
| >[AWS] EC2 프리티어 메모리 부족 해결 - SWAP Memory (0) | 2024.03.13 |
|---|---|
| > [ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 4. Github Webhook 설정, 젠킨스 파이프라인 & Dockerfile 작성 (0) | 2024.03.08 |
| > [ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 2. 호스트 도커에 젠킨스 구축하기 (DIND, DOOD) (0) | 2024.03.08 |
| > [ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 1.설계 (0) | 2024.03.08 |
| > [AWS] EC2 인스턴스 SSH 접속 (0) | 2024.03.08 |