<aside> 💡 이 글에서는 가상환경(CentOS7)에 도커 이미지로 설치된 Jenkins에 Github Webhook을 이용해 Push된 소스를 Jenkins에 보내 빌드를 거친 후 API 서버, 리액트 프론트 서버(Provider, Customer)를 CI/CD 과정을 포스팅합니다.

</aside>

Structure

들어가기 앞서, 현재 나는 클라우드 서버를 가지고 있지 않아 개인 PC에 가상환경을 구축해 클라우드와 비슷하게 만들었음을 알린다.

Untitled

1. GitHub + Jenkins

GitHub에서 Push 이벤트가 일어나면 Jenkins에서 바로 빌드가 되도록 연결해보자.

1.1. Webhook 이벤트 등록

깃허브에 연결할 리포지토리의 Settings → Webhook

Untitled

Payload URL에 젠킨스의 경로를 적어주고 마지막에 **/github-webhook/**을 꼭 넣어주자. 💡마지막에 /도 빼먹으면 안된다. 트리거 종류와 Active 상태를 선택하고 확인을 누르자.

참고로 나는 도메인을 적었지만 EC2 라던지 클라우드 서버에 도메인을 발급 받지 않았다면 젠킨스의 경로포트도 적어줘야 하고 외부에서 입장이 되는지 확인해야 한다.

1.2. Jenkins SSH Key 설정

나는 젠킨스가 도커로 설치되어 있다. 만약 OS 자체에 젠킨스가 설치되어 있다면 젠킨스 디렉터리로 이동 docker exec 명령으로 젠킨스 디렉터리(/var/jenkins_home)로 이동하고 SSH 키 조합을 생성한다.

cd /var/jenkins_home
mkdir .ssh
cd ./.ssh

# SSH Key 생성
ssh-keygen -t rsa -f /var/jenkins_home/.ssh/키이름

생성이 완료되면 [키 이름(개인키), 키 이름.pub(공개키)] 파일이 있을 것이다.

1.2.1. Jenkins 개인키 등록

  1. 생성된 개인키의 내용을 cat 명령어로 확인

    Untitled

  2. 젠킨스에 들어가 Jenkins 관리 탭 → Manage Credentials 버튼 클릭

    Untitled

  3. (global) → Add Credentials

    Untitled