02. jenkins 세팅 [Java Spring]
jenkins 홈페이지 접속
이제 jenkins 설치를 완료하고 기동까지해 보았으니 ${your IPAddress}:9090으로 접속하여 jenkins의 기능을 사용해보자.
우선 비밀번호를 입력해야 한다. 서버에 접속하여 다음 명령어를 통해 비밀번호를 가져오자
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
그 다음 install suggested plugins 버튼을 누른다.
그러면 다음과 같은 화면이 나오면서 플로그인 설치를 진행하게 된다.
젠킨스 추가 플러그인 설치
이제 세팅을 마치고 나면 젠킨스 메인 페이지가 나오게 된다.
이제 메인 화면에 들어 왔다면 추가 플러그인을 설치 해야한다.
왼쪽 메뉴바에서 Jenkins관리 -> 플러그인 관리 -> 설치 가능 메뉴로 이동
Deploy to container 플러그인을 설치한다.
ssh 설정 진행
이제 인증을 위한 key 설정을 진행해야 한다. 아래 명령어로 private, public key를 생성하자.
ssh-keygen -t rsa -f id_rsa
그리고 private key는 jenkins에 세팅을 진행하자 , 우선 대시보드에서 jenkins 관리로 들어간 뒤 manage Creadentials 를 누르고
global 버튼을 누르자 그 다음 아래 화면이 나오면 Add Credentials 버튼을 누른다.
그리고 추가 인증 내용을 아래같은 형식으로 입력해 주자
cat id_rsa
를 통해서 가져온 private key 값을 아래 보이는 화면에 Private Key에 추가로 입력해두자.
이제 github에 public key를 설정해두자
cat id_rsa.pub
다음 명령어를 입력하여 public key 값을 복사하고
setting에 deploy keys 에 붙여넣어준다.
github hook 설정
이제 git hook을 설정해야 한다.
git hook을 진행할 repository 에서 webhook부분 입력을 진행하자. Payload URL은 자신의아이피+ /github-webhook이라 명시하면 된다.
그리고 아래의 Content type 은 application/json 이라 명시 하자
젠킨스 new item 생성
이제 젠킨스의 new item을 생성하고 이를 현재 git과 연동 시키는 작업을 진행해보자 우선 왼쪽에 new item을 누른다.
그리고 Freestyle project를 눌러 새롭게 생성한다.
그리고 gerneral 부분은 다음과 같이 세팅을 진행한다.
그리고 소스코드 관리 부분은 위와 같이 세팅한다. Repositroy URL은 다음과 같이 입력하는데 저 부분은
github 메인 화면에서 code 선택시 나오는 ssh url를 복사하여 붙여넣는다.
그리고 혹시 다음과 같은 에러가 뜬다면 jenkins 서버에 git을 설치하지 않아 나타나는 오류이다.
sudo apt-get install git
git을 설치하면 error가 사라질 것이다. 그리고
Credentials 부분은 아까 설정해두었던 key로 입력해둔다.
branch to build는 build할 branch를 가져오는 것 임으로 나는 default branch로 저장해두었다.
그리고 마지막으로
빌드 유발 부분의 경우 git hook trigger로 선택한다. 그리고 아래의 build 부분을 보자
빌드에서는 Use Gradle Wrapper를 선택하였다.
Use Gradle Wrapper 뜻이 프로젝트 내의 gradle를 사용한다는 것으로 따로 gradle 설치 없이 진행할 수 있게 해준다. 그리고 Make gradlew executable를 선택해 주자. 이 뜻은 gradlew의 권한 문제없이 동작하도록 해준다.
Task는 clean, build로 작성해주면 끝
그리고 나서 build now를 진행해주면 다음과 같이 정상적으로 실행 되었다는 것을 알 수 있다.
이제 추가로 build가 끝나고 build/libs/{프로젝트명}-0.0.1-SNAPSHOT.jar를 실행시키는 작업을 추가하자
이제 build 실행을 누르면, 젠킨스에서 해당 프로젝트를 빌드하고 실행까지 완료 하게 된다.