Cloud & DevOps/CICD

Jenkins로 Terraform 자원 배포하기

백곰곰 2022. 5. 8. 20:07
728x90
반응형

0. 사전 준비 사항

  • Github 계정
  • Jenkins 서버
  • Terraform backend용 S3, DynamoDB

1. Terraform 플러그인 설치 [Jenkins]

  1-1) Jenkins 관리 > 플러그인 관리 > 설치 가능 > terraform 검색 후 설치

  1-2) Jenkins 관리 > Global Tool Configuration
         Terraform > Terraform installations > Add Terraform 클릭

  1-3) Jenkins 서버 Terraform CLI 설치
   링크 : https://www.terraform.io/downloads>
   참고) Jenkins를 Docker Image로 배포한 경우 Docker Image 수정 필요

2. 신규 레파지토리 생성 및 파일 업로드 [Github]

  2-1) 신규 레파지토리 생성

  * Private 선택 시 Github Access Token 발급 필요

 

  2-2) 신규 레파지토리 로컬 git clone

git clone [github 레퍼지토리 url]

  2-3) .gitignore, basicinfo.tf, Jenkinsfile, terraform 자원 파일 업로드

     [주의] Terraform backend용 S3, DynamoDB 자원을 보유하고 있어야 함

                basicinfo.tf내 S3, DynamoDB 자원을 본인의 자원명으로 변경 후 업로드 필요

 파일 참고 : 

 

GitHub - kadawe/jenkins_terraform_public

Contribute to kadawe/jenkins_terraform_public development by creating an account on GitHub.

github.com

3. 신규 Item 생성 [Jenkins]

  새로운 Item > item 명 입력 > Pipeline 선택 > OK

세부 설정
Pipeline 설정 (Credentials : github 토큰 발급 후 추가)
옵션) Github 토큰 추가

4. Github webhook 설정

  4-1) [Github] 설정

    Settings > Webhooks > Add webhook

5. AWS IAM User credential 설정

  5-1) Jenkins 관리 > Security > Manage Credentials 클릭

  5-2) Jenkins 클릭 > Global credentials 클릭 > Add Credentials 클릭

 

  5-3) AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_ACCOUNT_ID 등 개별 Credential 생성

Credentials 생성 후 화면

6. 파이프라인 실행을 위한 Github push

7. 파이프라인 시작 확인

  Status > Proceed 클릭 (terraform plan 승인 단계)

8. Terraform 정상 배포 확인 [AWS]

참고 자료

  1. Github Access Token 발급 (https://curryyou.tistory.com/344)
  2. Jenkins에 Terraform 파이프라인 설정하기 (https://medium.com/nerd-for-tech/deploying-aws-resources-using-terraform-and-jenkins-pipeline-1c706f1a2e7c)
728x90