Jenkins github 연동(1/2)

By | 2020년 4월 12일
Table of Contents

Jenkins github 연동(1/2)

https://github.com/skyer9/TestCiCd 는 테스트 후 퍼블릭으로 변경했습니다.

github 의 private repo 에 소스가 push 되면, 젠킨스가 소스를 가져와 빌드 및 배포하는 과정을 자동화 합니다.

GitHub private repo 에서 소스 가져오기

젠킨스 서버에 Git 이 이미 설치되어 있는 것으로 가정합니다.

GitHub Integration 플러그인 설치

젠킨스 메인화면 > Jenkins 관리 > 플러그인 관리 에서, GitHub Integration 을 설치합니다.

의존성이 있는 플러그인들이 자동으로 동시에 설치됩니다.

Git 설정

젠킨스 메인화면 > Jenkins 관리 > Global Tool Configuration 에서, Git 경로를 지정해 줍니다.

Git 용 키 생성

Git 연동을 위한 키를 생성합니다.

sudo su -s /bin/bash jenkins
whoami

mkdir /var/lib/jenkins/.ssh
cd /var/lib/jenkins/.ssh
ssh-keygen -t rsa -b 4096 -C "skyer9@gmail.com" -f /var/lib/jenkins/.ssh/github

생성된 공개키를 확인 후 github 프로젝트에 등록해 줍니다.

cat /var/lib/jenkins/.ssh/github.pub

젠킨스 Credential 생성하기

cat /var/lib/jenkins/.ssh/github

위에 출력되는 내용을 복사합니다.

젠킨스 메인화면 > Credentials > System > Global credentials 에서, Add Credentials 을 선택합니다.

위와 같이 입력하여 Credential 을 생성합니다.

테스트 프로젝트 생성하기

젠킨스 메인화면에서, New Item 을 선택합니다.
Freestyle project 를 선택하고 아이템명을 입력합니다.

소스 코드 관리 에서 Git 을 선택합니다.

GitHub Repository 의 Clone with SSH 항목을 복사해서 Repositoy URL 에 입력합니다.

Repository 가 Private 인 경우, 아래와 같이 오류 메시지가 표시됩니다.

위에서 등록한 Credential 을 선택해 줍니다.

빌드를 해보면 소스 가져오기가 정상적으로 작동하는 것을 확인할 수 있습니다.

GitHub Webhook 설정하기

Webhook 은 웹상의 Trigger 같은 존재입니다. GitHub 의 지정한 브랜치에 소스가 push 되면 webhook 으로 젠킨스에게 알려주어 빌드를 유발하도록 설정합니다.

github webhook 설정

Payload URLhttp://<젠킨스 서버 아이피>:8080/github-webhook/ 로 합니다.

위에서는 SSL 을 설정하였기에 https 로 접속하고 있습니다.

aws ec2 보안그룹 설정

아마존 EC2 인스턴스에 젠킨스가 설치되어 있다면 아래 아이피를 보안그룹에 추가해야 합니다.

참조

{
......
hooks: [
"192.30.252.0/22",
"185.199.108.0/22",
"140.82.112.0/20"
],
......
}

젠킨스 webhook 설정

젠킨스 프로젝트 구성 탭에서 웹훅을 설정해 줍니다.

GitHub 푸시하기

깃허브에 소스를 push 하면 젠킨스가 작동하는 것을 확인할 수 있습니다.

답글 남기기