반응형

다양한 상황에 대응하기 위해 여러가지 복잡한 구조가 필요한 상황이 있을 수 있다. 예를 들어 젠킨스에서 빌드하고 Tag 값을 CodeBuild 에 전달하기 위한 상황에서 AWS 에 권한이 없다거나 하는 경우가 있다. 이러한 상황을 해결하기 위해 Jenkins 에서 CodeBuild 를 호출하는 방법을 정리했다. 또한 원하는 변수 값을 같이 전달한다.

Jenkins 에서 AWS CodeBuild 를 호출하기 위해선 Access Key 와 Secret Key 가 필요하다.
AWS 계정을 식별할 수 있어야 해당 계정 안에 있는 CodeBuild 를 접근할 수 있기 때문이다. 또한 외부에서 아무나 접근이 가능하면 비용적인 문제가 있을 수 있기 때문에 해당 key는 엄격히 관리 되어야 한다.
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_access-keys.html

 

IAM 사용자의 액세스 키 관리 - AWS Identity and Access Management

사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 이전에 다른 사용자로 로그인한 경우 페이지 하단 근처의 다른 계정에 로그인(Sig

docs.aws.amazon.com

 

Access Key 와 Secret Key 를 발급받았다면 Jenkins 에서 연동할 Plugin 을 설치한다.
해당 문서에는 Pipeline 에서 사용하는 방법만 작성되어 있어서 불편하다. 해당 작업할 때 Pipeline 으로 구성할 만큼 내용이 많지도 않아서 job 설정에서 처리하였다.

https://plugins.jenkins.io/aws-codebuild/

 

AWS CodeBuild

Build your project on AWS CodeBuild.

plugins.jenkins.io

 

Plugin 이 설치된다면 jenkins job 의 build step 에서 AWS CodeBuild 항목을 찾을 수 있다.

해당 항목에 값을 입력해서 jenkins job 이 실행되면 codebuild 를 수행할 수 있도록 할 예정이다.
CodeBuild 는 사전에 설정이 완료되어 있어야 한다.

앞서 언급한 Access Key 와 Secret Key 가 발급되어 있어야 한다. AWS Configuration 에 값을 입력해준다.
정상적으로 입력했다면 원하는 AWS 계정에 접근이 가능해진다. 해당 키는 외부와 공유하면 안되는 Key 로 유출된다면 반드시 변경이 필요하다.

Project Configuration 에서는 AWS Codebuild 의 region 과 이름을 작성해서 호출할 프로젝트 정보를 제공한다.
만약 jenkins 에서 값을 변경하고 싶다면 빌드할 Repository 의 주소 와 브랜치를 작성할 수 있다.
Repository 의 주소는 CodeCommit 뿐 아니라 GitHub, S3, BitBucket 등 다양한 저장소를 사용할 수 있다.
여기서는 기존 CodeBuild 에서 CodeCommit Repository 가 설정되어 있기 때문에 branch 정보만 입력해서 호출하는 식으로 하였다.

 

빌드할 때 변수 값을 jenkins 에서 codebuild 로 전달할 필요가 있을 수 있다.
이때는 Build Configuration 항목의 Environment Variables Override 항목에 설정이 가능하다.

상단에서 value 변수에 값을 설정한 후 Environment Variables Override 항목에 Codebuild 에 전달할 변수 이름, 전달할 값을 순서대로 입력하여 작성해주면 해당 값을 환경변수로 Codebuild 를 호출하게 된다.

 

실행한 결과를 보면 Project Name, Source Branch, 원하는 환경 변수 값 등을 가지고 호출하는 것을 볼 수 있다.

반응형