Laravel with Jenkins (2/5) – Setup Jenkins on DO


Jenkins 기본 플럭인 설치 화면

이번 포스팅에서는 이전 포스팅에서 설명한 Terraform 으로 젠킨스 설치를 마친 후 Laravel 프로젝트를 위해서 필요한 기본적인 젠킨스 설정 방법을 설명한다. 우선 스크린샷에서 보여지는 것처럼 https://jenkins.example.com 에 접속한 다음, 젠킨스가 추천하는 기본 플럭인들을 모두 설치한다.

기본 플럭인 이외 설치한 플럭인 리스트는 아래와 같다.

  • Slack Notification Plugin : 슬랙 노티피케이션
  • Disk-usage Plugin : 디스크 사용 현황
  • Locale Plugin : 로케일 정보 변경
  • GitHub Branch Source Plugin : GitHub 에서 멀티 브랜치 사용
  • Simple Theme Plugin : 새로운 Material Design theme 을 사용 (현재 적용한 Theme 의 CSS URL 은 아래 링크 참고)
https://cdn.rawgit.com/afonsof/jenkins-material-theme/gh-pages/dist/material-teal.css

테라폼이 DO 인스턴스 생성 후 필요한 프로그램들을 설치/설정하는 스크립트인 jenkins-userdata.sh 10번째 줄을 보면, ssh 키를 생성하는 내용이 있는데, 이 키를 가지고 젠킨스가 GitHub 의 비공개 리포를 access 한다.

Jenkins 인스턴스가 나의 GitHub 비공개 리포로부터 코드를 읽어오려면 이전 포스팅에서 설명했다시피 Jenkins 인스턴스의 SSH public 키를 Github Account > Settings > SSH keys 에 등록해야 한다.

또한 Jenkins 젠킨스의 Credentials > System > Global credentials (unrestricted) 메뉴에서 해당 SSH private 키를 등록한다.

등록할 ssh 키의 위치는 public 키의 경우, /home/jenkins/.ssh/id_rsa.pub 에, private 키는 /home/jenkins/.ssh/id_rsa 에 위치한다.

젠킨스 빌드 트리거 설정화면

GitHub 의 리포에 새로운 브랜치 머지가 이뤄질 때마다 자동으로 젠킨스 파이프라인을 트리거 하도록 만드려면, 위 스크린샷에서 처럼 GitHub hook trigger for GITScm polling 메뉴를 선택 후, GitHub 으로 이동한다.

위 스크린샷에 보이는 것 처럼, GitHub 리포 설정 페이지로 이동하여, Payload URL 을 Jenkins 인스턴스의 웹훅 주소로 지정한다. (참고로 trailing slash 가 생략되지 않도록 https://jenkins.example.com/github-webhook/ 와 같이 지정한다.)

만일 Jenkins Blue Ocean 플럭인 사용을 원한다면, 해당 플러그인을 젠킨스 인스턴스에 설치 후, GitHub 에서 웹훅 주소를 지정하는 대신 Personal Access Token 을 생성한 다음, Jenkins Blue Ocean 플럭인 설정페이지에서 해당 토큰을 입력하면 준비가 완료된다.

다음 포스팅에서는 Laravel PHP 앱 프로젝트에 대한 Continuous Integration 을 위한 준비 과정으로, 테라폼으로 설치한 이 Jenkins 를 사용하여, 해당 프로젝트의 dockerization 준비과정을 설명한다. Docker, Docker Machine, Docker Compose 를 간단히 살펴보고, 어떻게 Laravel PHP 앱 프로젝트를 dockerize 하는지에 대한 설명을 이어가겠다.

Leave a Reply