해당 포스팅은 기존 EC2에서 GitHub 의
WebHook 을 이용하여 Jenkins 자동 빌드를 실행하는 방법입니다.
2018.12.04 일 기준
EC2 에서 정상 작동이 안되는 분들이 참고하시면 됩니다.
Jenkins 설치및 GitHub 연동은 다른 좋은 포스팅이 많으니 검색 부탁드립니다.
시작 !
Github -> Profile Click(우측상단 자신의 프로파일)
-> Setting -> Developer settings
-> Personal access tokens Click
위와 같이 설정후 Token 값 저장 (처음 생성후 한번만 Token 을 알려주기 때문에 따로 저장해 두세요.)
다시 Jenkins 로 넘어 갑니다.
작업을 만듭니다 . (작업을 만들고 Github 에 연동하는 부분은 검색하면 아주 많이 나오기 때문에 따로 적지 않겠습니다.)
작업을 만든 후 해당 작업의 구성에 들어갑니다.
위와같이
이 빌드는 매개변수가 있습니다.를 클릭후
변수명이 payload 를 입력해 준 후
빌드 유발에 아까 처음 발급 받았던 Personal access Tokens 값을 넣어 줍니다.
그리고 GitHub hook trigger for GITScm polling 을 체크해주고
하단 Build 쪽 에서 Excute shell 을 선택한후 아래와 같이
입력을 해줍니다
node ./node_modeules/express/index.js 는 서버 실행 파일 이므로 자신의 실행파일 경로에 맞게 수정해 주면 됩니다.
다음으로 가장 중요한
EC2 인바운드 설정입니다.
기본적으로 Jenkins 는 8080포트를 사용하고 있으며 자신이 다른 포트를 사용하고 있으면 해당 포트를 열어주면 됩니다.
포트를 열어주는 작업입니다.
AWS 콘솔창에서 EC2 를 클릭후
1. Jenkins 가 설치된 인스턴스의 보안그룹 클릭
2. 편집 클릭
편집창이 보여지면
1. 규칙추가 클릭
2. 사용자 지정 TCP 클릭
3. 포트를 자신의 Jenkins 포트 번호 입력 (기본 8080)
4. 아이피 입력하는 부분의 좌측을 보면 자용자 지정이 있는데
이부분을 위치무관 을 클릭해 주고 저장을 누릅니다.
그리고 다시 편집창을 켜면 아래와 같이 보일것 입니다.
기본적으로 보안을 위해 모든 아이피는 허용하면 좋지 않지만,
지금은 빠른 결과를 위해 이렇게 진행하겠습니다.
자 그리고 테스트를 위해서 다시 깃허브에 돌아갑니다.
Jenkins에 연동된 레퍼지토리 이동 -> Setting -> Webhook -> Add webhook 클릭
Payload URL 형식은
{Jenkins 주소}/job/{job 이름}/buildWithParameters?token=
{토큰값}
입니다.
예를 들어 EC2 주소가
http://ec1111111111.ap-northeast-2.compute.amazonaws.com
이고, 젠킨스 Port가 8080 이면 이게 {Jenkins 주소} 가 됩니다.
그리고 jenkins 에 생성한 item 이름이 예를 들어 AppServer 면
http://ec1111111111.ap-northeast-2.compute.amazonaws.com:8080/job/Appserver/buildWithParameters?token=
이런 형식이 됩니다.
{토큰값 } 부분은 처음 발급 받았던 토큰값( Personal access tokens)을 입력해 주세요
예를들어 토큰값이 1111111111111111122222222222면
Payload URL 은
http://ec1111111111.ap-northeast-2.compute.amazonaws.com:8080/job/Appserver/buildWithParameters?token=
1111111111111111122222222222
입니다 .
해당값을 입력을 해주고
아래 화면처럼 체크를 해줍니다.
체크 완료후 Update Webhook 을 클릭해 줍니다.
그럼
하단에
Recent Deliveries 에 응답이 보이는데
아래와 같이 초록색 체크표시가 뜨면 성공한 것 입니다.
그럼 이제 프로젝트 수정후 깃의
Master 브런치에 PUSH 하면 자동으로 Jenkins 가 빌드를 시작 합니다 .
해당 포스팅은 여러 삽질을 해가면서 알아낸 자료 입니다.
특히 EC2 인바운드 문제 부분은 검색해도 제대로 나오는게 없어서 삽질을 몇시간이나 했기 때문에 누군가에게는 도움이 될거라
생각합니다.
읽어 주셔서 감사합니다.
'공부방 > Server' 카테고리의 다른 글
How to change linux java version (0) | 2020.07.25 |
---|---|
Sequelize Query 정리 (0) | 2019.09.18 |
Mac 에서 AWS SSH 접속 하기 (0) | 2019.09.03 |
ec2 ubuntu 18.0.4 초기 셋팅 (0) | 2019.04.30 |
ubuntu 18.0.4 jenkins Install (0) | 2018.12.03 |
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!