젠킨스와 Github ssh 연동하기

DevOps·2019.08.17 11:02


젠킨스와 Github 연동시에 사용자명과 비밀번호 인증방식은 보안상 추천하지 않는 방식입니다.

물론 테스트 용도로만 사용하는건 문제 없지만, 실제 서비스에서 그렇게 사용하는 회사는 없습니다.

그래서 젠킨스와 Github 간 SSH 연동 방식을 어떻게 하는지 간단하게 소개합니다.

1. 키 생성

현재 실행중인 젠킨스 사용자를 확인합니다.

ps aux | grep jenkins

1

특별히 설정하지 않으면 jenkins 사용자로 실행중입니다.

젠킨스가 jenkins 사용자로 실행중인게 확인되었다면 현재 사용자를 jenkins로 전환합니다.

chown 명령어로 파일들을 변경해도 되지만 편하게 jenkins 사용자로 변경하고 모든 명령어를 수행하겠습니다.

sudo -u jenkins /bin/bash

2

jenkins 사용자는 일반적으로 서버에 등록된 사용자는 아닙니다.
그러다보니 sudo su - u jenkins 등으로 전환은 안됩니다.

전환이 되셨다면 .ssh 디렉토리를 하나 생성하고 이동합니다.

mkdir /var/lib/jenkins/.ssh
cd /var/lib/jenkins/.ssh

여기서 ssh 키를 생성합니다.

ssh-keygen -t rsa -f /var/lib/jenkins/.ssh/github_ansible-in-action

3

  • 비밀 번호는 모두 입력하지 않고 바로 Enter로 넘어갑니다.

다 생성이 되셨다면 ls -al로 아래와 같이 비밀키/공개키가 잘 생성되었는지 확인합니다.

4

잘 생성되셨다면 Github으로 이동합니다.

2. Github

젠킨스로 연동하고 싶은 Github의 Setting 페이지로 이돌합니다.

5

좌측 사이드바의 Deploy keys -> Add deploy key 버튼을 차례로 클릭합니다.

6

공개키를 등록해야합니다.
그래서 방금 생성한 공개키 코드를 복사하겠습니다.

cat /var/lib/jenkins/.ssh/github_ansible-in-action.pub

7

출력된 코드를 복사하여 Key 항목에 붙여넣습니다.

8

생성 완료를 확인합니다.

9

공개키 등록이 되었으니 다시 젠킨스로 이동하여 비밀키 등록을 합니다.

3. 젠킨스

젠킨스 메인 화면에서 Credentials -> System -> Global credentials로 차례로 이동합니다.

10

Add Credentials 버튼을 클릭합니다.

11

비밀키를 등록하기 위해 젠킨스 서버에 있는 비밀키를 복사합니다.

cat /var/lib/jenkins/.ssh/github_ansible-in-action

12

복사가 되셨다면 아래와 같이 항목을 등록합니다.

13

  • Kind
    • 인증 방식을 선택합니다.
    • 여기선 비밀키 방식을 선택해야 Github과 공개키/비밀키로 인증이 가능합니다.
  • Username
    • 각 젠킨스 Job에서 보여줄 인증키 이름 입니다.
    • 전 키 이름 그대로 사용했습니다.
  • Private Key
    • 좀전에 복사한 비밀키를 그대로 붙여넣습니다.

젠킨스 설정도 다 끝났습니다.
실제로 ssh 연동이 잘 되는지 확인해보겠습니다.

4. 테스트

만약 젠킨스에 Git이 설치 안되어있다면 Git 먼저 설치합니다.

sudo yum install git

젠킨스의 새로운 Item을 선택합니다.

14

FreeStyle 프로젝트를 생성합니다.

15

Github의 코드를 가져올 수 있는지 소스 코드 관리에 입력해봅니다.

16

  • Repository URL에는 공개키를 등록한 저장소 URL을 등록합니다.
  • Credentials에 좀전에 등록한 젠킨스 인증 Username을 선택합니다.
  • Branch는 기본 Branch인 master를 등록합니다.

다 설정이 되셨다면 저장후 Build를 해봅니다.

아래와 같이 Github 에서 코드를 가져오는 로그가 출력된다면 연동 성공입니다.

17




네이버 페이로 후원 (응원) 할 수 있어요!

(모바일에서만 지원되요 ㅠ)







IntelliJ & 안드로이드 스튜디오의 기본기를 배우고 싶다면 아래 영상을 참고해보세요!

Posted by 창천향로 창천향로

태그