[AWS] 젠킨스(Jenkins) - 1

JANG WOOHYUK·2023년 1월 22일
0

젠킨스(Jenkins) CI/CD

목록 보기
2/3

오늘은 젠킨스(Jenkins)를 EC2에 설치과정깃허브 연동에 대해서 정리하겠다.

1. EC2 인스턴스에 접속

접속 방법은 포스트를 확인하자 ✔
👉 https://velog.io/@dev_96/AWS-AWS-EC2

📍 추가적으로 보안그룹을 셋팅해야 한다. Jenkins는 8080번 포트이기 떄문에 8080번 포트는 설정한다.

2. 젠킨스(Jenkins) 설치 코드

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

amazon-linux-extras install -y java-openjdk11 Installing java-11-openjdk
👉 젠킨스는 JAVA로 돌아간다. 그러므로 JAVA를 설치해야한다.

yum install -y jenkins 
systemctl start jenkins.service

systemctl enable jenkins 👉인스턴스 접속이 끊어지면 다시 젠킨스 시작을 해야 하는데,
이 코드를 입력하면 자동적으로 젠킨스가 시작된다.

3. 젠킨스 실행 완료

Systemctl status jenkins.service 명령어를 입력할 때 아래 사진처럼 나오면 정상적으로 젠킨스 설치가 되었다.

4. 젠킨스 홈페이지 접속

퍼블릭ip:8080으로 접속을 하면, 다음과 같은 웹페이지 화면이 나오는데, 계정의 암호를 입력을 해야한다. 화면에 보이는 파일에 암호가 적혀있다.

cat /var/lib/jenkins/secrets/initialAdminPassword

해당 명령어를 입력하면 암호 확인이 가능하다.

5. 플러그인 설치

아래의 화면과 같이 두 개의 선택 설치 화면이 나온다. 필자는 ✔ 추천 플로그인을 설치하겠다.

6. 계정 생성

계정을 생성해준다.

7. 정상적으로 설치 확인 완료

젠킨스가 정상적으로 ✔ 설치 완료 되었다.

젠킨스가 설치가 되었고, 이번에 깃허브 연동에 대해서 설명하겠다.

Jenkins와 Github 연동

1. 깃허브에 접속할 SSH키 생성

mkdir /var/lib/jenkins/.ssh
ssh-keygen -t rsa -f /var/lib/jenkins/.ssh/ 만들고자 하는 키 이름

2. 깃허브 👉 Settings 👉 Deploy keys 👉 Add deploy key

생성한 SSH키를 복사붙여넣기 하면 된다.

주의해야 할 점:
Github에다 등록해야 하는 키는 public 키이다.
pub 파일 형식인 키를 등록하면 된다.
필자는 이거 해결하느라 죽을 뻔..

key 키 확인 방법

cd /var/lib/jenkins/.ssh
cat 만들고자 하는 키 이름.pub

3. Jenkins Manage Credential 등록

대시보드 👉 Jenkins 관리 👉 Manage Credential

add credentials 클릭

kind 👉 SSH Username with private key
ID 입력 👉 Username 입력 👉 Private key 등록

📍 Private key

cd /var/lib/jenkins/.ssh
cat 만들고자 하는 키 이름

4. 생성 완료

Jenkins Manage Credential이 ✔ 완료되었다.

드디어 반까지는 왔다. 좀만 더 힘내보자.

젠킨스(Jenkins) ITEM 생성

1. ITEM 생성

대시보드 👉 새로운 ITEM 👉 Freestyle project

2. 소스코드 관리

소스 코드 관리 👉 git 👉 Repositort URL ✔ 내 깃허브 주소 입력
Credential ✔ 아까 만들었던 Credential 등록

3. Github Webhook 설정

Payload URL 설정에 📍 젠킨스 IP:포트/github-webhook 입력한다.
Content type에 application.json으로 설정한다.

🌟🌟 해당 Github 저장소에서 푸쉬가 일어나면 젠킨스를 호출한다. 🌟🌟

Jenkins와 Github 연동 완료

👏 결과적으로 젠킨스에 Github 파일이 빌드업 되었다. 👏

드디어 끝이 났다. 처음 해보는 CI/CD 였는데, 하는 동안 재미있었고, 과정에 대해 많이 이해했다. CI/CD에 대해서 공부를 더 해야겠다.
이만..오늘은 여기까지

🔥 추가적으로 Troubleshooting

빌드업 성공하기 전에 실패가 2번 있었다.
아래화면과 같이 로그를 확인해보니 branch를 찾을수 없다는 이야기인것 같다.

구글박사에 물어보던 중, 요즘 원인이 github 브랜치의 경우 master가 아닌 main이 주 브랜치로 쓰이는 것 같다는 글을 ✔ 발견
빛의 속도로 */master 👉 */main 으로 변경하니 에러가 해결되었다. 휴우..
🏆 성공했다.

profile
공부일기 -> 내일도 공부하는 내가 되자🔥🔥🔥

0개의 댓글