tomcat의 bin/catalina.sh 에서 JAVA_OPTS를 설정하는 부분이 있는데 이곳에다가 다음과 같이 설정을 추가한다. -Dspring.profiles.active=[profile명]
다음 그림과 같이 내가 특정 branch를 push했을때 github에서 이를 인지하여 jenkins로 webhook을 날리고 tomcat서버로 배포하는 과정을 자동화 해봤다. 일단, 새로운 아이템 > Freestyle project를 클릭한다. Github Project를 체크하고 Github 프로젝트의 주소를 입력한다. 소스코드 관리에서는 Git을 체크하고 Repository url과 아이디/비밀번호 정보를 담은 Credentials를 입력한다. 빌드유발에서는 GitHub hook trigger for GITScm polling을 클릭한다. 웹훅 설정은 Github 저장소에 들어가서 아래와 같이 수행한다. Settings > Webhooks > Add webhook을 클릭한다. Payload URL에..
다음과 같은 에러가 발생하였다. jenkins Couldn't find any revision to build. Verify the repository and branch configuration for this job. 무슨 일이지... 로그를 확인해보니 branch를 찾을수 없다는 이야기인것 같다. 원인은,, 최근 github브랜치의 경우 master가 아닌 main이 주 브랜치로 쓰이는 것 같다.. 하핳.. */master -> */main으로 바꿔주니 에러는 해결되었다.
이런저런 고생끝에 build가 수행되도록 하였다. 그런데 곰곰히 생각해보니, ec2로 배포하는 로직같은것은 추가하지 않았는데, build의 결과가 나왔는지, 어디로 갔는지 궁금하였다. 빌드의 결과는 빌드를 수행한 작업 item을 누르고 좌측의 작업공간을 누른다. 그리고 build>libs로 들어갔다. 위와같이 jar파일이 생성된 것을 확인할 수 있었다. 아마 이 데이터를 원격 저장소로 push?하고 jar를 실행시키는 스크립트를 따로 만들어야 배포구성이 완료되는것이 아닐까 싶다.
tools.jar를 찾을수 없다는 메시지가 나오고 있다. JDK가 아닌 JRE를 사용하고 있기 떄문에 tools.jar를 못찾는 증상을 보인다. 그렇기 때문에 젠킨스 설정에서 JDK를 추가하도록 한다. 젠킨스 화면 좌측에서 Jenkins관리 버튼을 누른다. Global Tool Configuration 을 누른다. JDK installations에서 ADD JDK를 누른후, JDK이름, Version을 서정한 후, Delete Installer 버튼을 누르고 확인을 누른다. 정상적으로 빌드되는걸 확인하였다.
Webhook 설정을 완료하고나서 build를 수행하였는데 다음과 같은 에러가 발생하였다. ./gradlew: Permission denied gradlew에 대한 권한이 없는 것으로 보였다. 그래서 다음의 스크립트를 스크립트에 추가하였다. chmod +x gradlew 위의 설정을 추가함으로써, gradlew를 수행하는데 이상이 없음을 확인할 수 있었다.
글을 쓰기에 앞서, 결론적으로 webhook에 대해서는 성공을 하였다. 그런데,, 이것저것 많은 설정을 하다가 우연히 문제를 해결한 것이라 어떤 설정이 결정적으로 문제를 해결하였는지는 모르겠다.. 문제해결 과정에대해 나열해 보도록 하겠다. git push를 하고 웹훅 로그를 보니 다음과 같은 에러를 볼 수 있었다 HTTP ERROR 403 No valid crumb was included in the request 잉 무슨일이지.. 이것에 대해 찾아봤더니 두 가지 해결책을 볼 수 있었다. 1. Strict Crumb Issuer 플러그인을 설치하고 설정 변경 2. 작업의 설정 변경, 사용자 키값을 Github에 입력하기. 1. Strict Crumb Issuer 플러그인을 설치하고 설정 변경 다음과 같은..
젠킨스의 유저 인터페이스는 논리적으로 네 개의 주요 컨텐츠 영역으로 구분된다. 헤더 UI 내비게이션 브레드크럼과 편집이 가능한 설명 링크, 활성/비활성 자동 갱신 스위치, 콘텍스트 검색 솔루션이 있다. 구성 패널 초기 최상위 설정 옵션을 보여준다. 젠킨스의 각 서브 페이지에는 고유의 구성 패널 옵션과 상황별 설정 옵션이 있다. 새로운 Item : 새 젠킨스 작업을 만드는데 사용된다. People : 사용자 계정을 보거나 수정할 수 있다. Build History : 시스템이 실행한 빌드작업, 상태 및 경향을 보여준다. Manage Jenkins : 젠킨스의 관리 영역은 개별 요구 사항에 맞게 조정할 수 있는 여러 구성 옵션과 설정을 제공한다. 사용자 계정 크리덴셜을 생성, 제거, 갱신, 삭제할 수 있는 ..
최근 도커에 대해 배우면서, 회사에서도 로컬 테스트 환경을 구축하는등 외워야 하는 명령어에 비해 많은 재미를 보고있다. 이참에 집에 있는 라즈베리파이 하나가 놀고 있는데, 여기다가 Jenkins를 Docker로 설치하고자 하였다. https://hub.docker.com/r/jenkins/jenkins $ docker run -p 8080:8080 -p 50000:50000 -v /home/ubuntu:/var/jenkins_home jenkins/jenkins:lts 이 명령어를 실행하는데, 라즈베리 파이에서 설치시 다음과 같은 에러가 발생하였다. ㅠ WARNING: The requested image's platform (linux/amd64) does not match the detected hos..
오전중에 개발을 깔짝이다가 수동배포가 불편하여서 제목과 같은 개발set의 프로젝트를 자동으로 배포하는 방법을 리서치를 해보고, 점심을 먹고난 2~3시정도경에 적용을 하였다. 내가 발견한 방법보다 더 우아한 방법으로 배포를 구성할 수 방법이 이미 도처에 깔려있을수도 있다. 그러나 금일 이렇게 이와 관련하여 글을 적는 이유는 내가 평소에 사용하던 수동 배포방법보다 편리하게 배포를 하게 될 수 있게 되었고, 이 환경을 구축하기 위해서 1~2시간의 수고를 들였기에 혹여나 까먹을까봐 글을 쓴다. 원래 술을 먹고 알딸딸해서 글을 안쓰려고 하였으나, 잠이 안오기에 뭔가는 하고싶지만, 코딩은 할 수 없는 상태이기에 오후중의 기억을 되살려 글을 써보고자 한다. 새로운 Item을 클릭한다. Enter an item nam..