본문 바로가기

DevOps/JIRA & API Gateway

(5)
JIRA & API GW를 통해 Jenkins 배포 승인체계 구성하기 - 5. Jenkins 세팅 마지막입니다. Job의 Script는 아래와 같습니다. 아래에서 맨 위에 있는 값들만 세팅하셔서 사용하시면 됩니다. (issue_id는 빈값으로 냅두시면 됩니다.) def API_KEY = "" def AGW_URL = "" def JIRA_URL = "" def issue_id = "" pipeline { environment { PATH = "$PATH:/usr/local/bin/" } agent any stages { stage('Approval') { steps { script { try { cmd = "curl -X POST -H \"X-API-KEY: ${API_KEY}\" -H \"BuildInfo: ${env.JOB_NAME}/${env.BUILD_NUMBER}\" -H \"Content-..
JIRA & API GW를 통해 Jenkins 배포 승인체계 구성하기 - 4. Lambda 세팅 먼저 라이브러리로 python request 라이브러리가 필요합니다. 특정 라이브러리만 다운받아서 Lambda Layer에 올려야하기 때문에 아래와 같이 수행해주세요. python3 -m pip install --target "path" requests 혹은 아래 zip을 받아서 바로 Python3.7 Layer에 올리셔도 무방합니다. 레이어 구성방법은 https://aws-diary.tistory.com/100?category=753099 글에서도 나와있으니 참고하시면 됩니다. 어렵지 않아서 사실 그냥 진행하셔도 무방할겁니다. 지라 이슈를 만드는 람다 소스코드는 아래와 같습니다. {} 안에 있는 값들은 반드시 변경하여서 사용하시기 바랍니다. description의 값을 event에서 받아서 던지시면, ..
JIRA & API GW를 통해 Jenkins 배포 승인체계 구성하기 - 3. JIRA 세팅 지라에서 Admin 권한이 있는 계정으로 들어가셔야 합니다. 우측 상단에서 시스템을 클릭해주세요 먼저, 이슈 탭으로 가서 전체 업무 플로우를 만들도록 하겠습니다. 이제, 좌측 업무 흐름에 가셔서 다이어그램을 위와 같은 구조로 만들었습니다. 여기서 문자열로 아래와 같이 Transition(전환) ID값을 기억해주셔야합니다. 해당 값을 통해 REST API를 던져서 이슈를 완료상태로 바꿀 수 있기 때문입니다. 이후 좌측 하단에 있는 웹훅 메뉴를 골라줍니다. 그리고 우측 상단에 있는 웹훅 만들기를 눌러주세요 이제 아래 웹훅 세팅을 해보도록 하겠습니다. URL 앞에 부분에는 구성한 API Gateway URL을 넣어주시면 되고 (Create Issue API) 이후 이슈가 업데이트 될 경우 트리거가 되는데, J..
JIRA & API GW를 통해 Jenkins 배포 승인체계 구성하기 - 2. API GW 세팅 API Gateway에서 총 3개의 리소스를 아래와 같이 만들 것입니다. approval/{issue}의 경우 Jira Web Hook이 발생하여 콜하는 부분이며, 이때 자신의 issue id값을 같이 던져주기 위해서 변수로 받게 구성하였습니다. create-issue는 젠킨스에서 빌드 중 결과값을 전달할 때 사용하며, done-issue는 배포가 완료 되었을 때, 이슈를 완료하기 위해 사용합니다. 먼저 API Key를 만들도록 하겠습니다. API Key를 사용하려면 위와 같이 사용량 계획과 같이 만들어 주어야합니다. 이후 반드시 API Gateway에 매핑하셔서 사용해야합니다. 저는 배포이고, 테스트이기 때문에 하루 요청 100개로 구성하였습니다. 또한, 아래와 같이 Jira web hook을 제외하고..
JIRA & API GW를 통해 Jenkins 배포 승인체계 구성하기 - 1. Intro 이전에는 Slack과 API Gateway와 Lambda를 통해 승인 체계를 구성하였었는데, 가장 많이 사용하는 협업 툴인 JIRA에서도 이와 같은 체계를 구성하려고 합니다. AWS API Gateway와 Lambda를 활용하면, 서버단에서 구성하여 웹훅등을 해결할 부분을 서버 비용 및 관리 포인트를 줄여서 사용할 수 있기 때문에 유용하게 사용하실 수 있습니다 이번에는 아래와 같은 아키텍쳐를 구성해 봤습니다. 보통은 지라를 통해 사용하시면, 개발 요청부터 이슈를 만들어서 사용하실텐데, 저는 그렇게까지 체계화 된 구조가 아닌 딱 배포부분만 지라에서 이슈를 자동으로 발급하고 승인하려고 합니다. 전체 플로우를 설명드리면 다음과 같습니다. 먼저, 젠킨스 Job을 build하면, Git Clone -> Build..