본문 바로가기

DevOps

[DevOps 구축하기 2] Jenkins와 Github 연결하기

728x90
반응형

https://tomatohj.tistory.com/80에서 이어집니다.


설치된 Jenkins의 좌측 상단 '새로운 Item' 버튼을 클릭한다.

이름은 자유롭게 설정하고 종류는 'Freestyle project'를 선택한 뒤 OK 버튼을 누른다. 

소스 코드 관리쪽으로 이동하여 Git을 선택하면, 연결할 Repository URL과 Github 인증을 위한 정보를 추가해야함을 알 수 있다.
Github으로 이동하여 이 정보들을 알아내보자

환경 구성에 이용할 웹 애플리케이션은 WebGoat라는 오픈소스 웹 애플리케이션이다.
아래 링크로 접근하면 Github에 올라가 있는 공식 Repository를 확인할 수 있다.

https://github.com/WebGoat/WebGoat

 

GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure application

WebGoat is a deliberately insecure application. Contribute to WebGoat/WebGoat development by creating an account on GitHub.

github.com

코드를 임의로 수정하는 작업이 추후에 필요한데, 공식 Repository에서는 그러한 자유로운 작업이 불가하기에 이 Repository를 Fork하여 자기자신의 Repository로 복사하는 작업을 진행한다.

아래 그림과 같이 우측 상단에 있는 Fork버튼을 누르고 'Create a new fork'를 클릭한다.

이미 WebGoat라는 Repository를 가지고 있는 경우가 아니라면 문제가 없을것이다.
그대로 Create fork버튼을 클릭한다.

그러면 아래 그림과 같이 자기자신의 Repository로 복사되는 것을 확인할 수 있다.
여기서 코드 바로 위에 있는 '<> Code' 버튼을 클릭하여 Clone을 위한 HTTPS 주소를 복사한다.

복사한 주소를 Repository URL에 붙여넣는다.
붙여넣고 나서 빨갛게 에러메시지가 나지않는다면, Credentials 밑에 Add 버튼을 눌러 'Jenkins Credentials Provider'를 실행한다.
(만약 에러가 난다면 네트워크 문제이거나, git을 Jenkins 컨테이너에 설치하지 않았을 가능성이 있으니 확인해보자)

아래 그림과 같은 화면이 나타나는데, Github ID/PW를 이용해서 Username, Password에 입력해도 될 것이다.
하지만 Github에서는 Password를 사용하는 것이 아닌 Access token을 만들어 사용할 것을 권고하고 있기에, 이를 생성하여 반영해볼 것이다.

Github로 돌아가 우측 상단 자기자신에 해당하는 아이콘을 누르면 아래 그림에 표시된 바와 같이 인증을 위한 이름을 알 수 있다.
이걸 그대로 복사하여 Username 항목에 붙여넣는다.

그리고 아래로 내려가다보면 Settings라는 버튼이 있다. 클릭한다.

Settings 메뉴의 가장 하단에 보면 Developer settings라는 상세 메뉴가 있다. 클릭한다.

Developer Settings에 접근했다면 Personal access tokens -> Tokens (classic) -> Generate new token -> Generate new token (classic) 순서대로 버튼을 클릭한다.

Note 부분은 임의대로 작성해도 되며, 권한은 repo, admin:repo_hook 에 대한 모든 권한을 부여한 뒤, Access token을 생성한다.

생성된 토큰을 복사한다.

위 과정을 통해 생성한 Access Token을 Password에 붙여넣고, Add 버튼을 눌러 Credentials 생성을 마무리한다.

Credentials 생성이 마무리되면, 아래 그림과 같이 생성한 Credential을 선택할 수 있다.

좀 더 아래로 내려가면 Branches to build라는 항목이 있다. 
이는 어떤 Branch를 빌드할 것인지에 대한 기본적인 설정인데, WebGoat는 master가 아닌 main Branch를 사용하므로
main으로 수정한다.

마지막으로 빌드 유발 부분에서 'GitHub hook trigger for GITScm polling'을 클릭한다.
구축하려는 DevOps 아키텍처는 Github Repository에서 변경사항이 발생하면 자동으로 Jenkins에서 빌드, 배포를 진행하는 것을 목표로 하는데, 이때 Jenkins를 실행시키는 주체가 Github이기때문에 해당 항목 체크가 반드시 필요하다.

설정이 마무리되면 저장한다.

저장 후 '지금 빌드' 버튼을 클릭해 정상적으로 Github와 연결되었는지 확인해볼 것이다.

지금 빌드 버튼을 누르면 아래 그림들 중 왼쪽에 있는 그림처럼 빌드 작업이 진행되고, 시간이 조금 지나면 오른쪽 그림처럼 초록색 체크와 함께 마무리 된다.

Jenkins 컨테이너로 돌아와서 'cd /var/lib/jenkins/workspace' 명령어를 통해 Jenkins workspace 경로로 이동한 뒤 ls 해보면 Jenkins에서 생성한 devops 프로젝트 디렉토리를 확인할 수 있다.
해당 디렉토리로 이동하여 또 ls를 해보면 연결하고자 했던 Github Repository내 파일들이 존재함을 확인할 수 있고, 이를 통해 Github와 구축한 Jenkins가 잘 연결되었음을 알 수 있다.


728x90
반응형