application.yml 외부로부터 안전하게 보관하기

5tr1ker·2023년 7월 19일
0

CI/CD

목록 보기
4/4
post-thumbnail

개요

개발을 할 때 application 에서 민감한 정보를 담고 있을 수 있습니다. 한번 개발하고 호스팅한 후에 application.yml 을 옮겨주면 되거나 build 된 jar 파일을 옮길 수 있지만 , CI / CD를 구축할 때나 여러 PC 에서 사용할 때는 좋은 생각은 아닐 꺼 같습니다.

고민을 하던 중 application.yml 파일만 따로 private 레포지토리에 할당하고 호스팅 할 때 두 repository를 clone 하고 병합하여 build 하는 방법을 고안하게 되었습니다.

따라서 이번 포스팅은 다음과 같은 방법을 설명합니다.

< 해당 글에 사용되는 기술 >

해당 포스팅은 다음과 같은 기술을 사용합니다.

  • Infra - AWS EC2 ( Linux )
  • CI / CD - Jenkins
  • Server - Spring boot

이는 Private Repository 에 접근하는 방법도 포함하고 있습니다.

GitHub Token 발급

cess Tokens > Generate new token 으로 이동합니다.

repo, admin:repo_hook 부분을 체크한 후 토큰을 생성합니다.

Token 값 생성 시 한번만 보여주기 때문에 잘 저장해 두어야합니다.

Credentials 세팅

Credential Plugin은 젠킨스가 각종 리소스에 접근하기 위한 키, 토큰 등을 저장하고 관리하는 플러그인입니다.

젠킨스 서버를 이용해 CI/CD를 이용하기 위해서 GitHub Repository에 접근하기 위한 토큰을 관리합니다.

해당 탭에 들어가서 하단으로 내려가면 GitHub Server가 존재하며 다음과 같이 작성합니다.

Add 버튼을 누르면 아래와 같은 그림이 나오는데 Kind 를 Secret text로 하고 , Secret 에서는 GitHub 에서 발급받은 Token을 삽입해주세요.

Credentials를 생성했다면 Test Connection을 통해 제대로 연결되었는지 확인이 가능합니다.

PipeLine 생성

대시 보드에서 새로운 ITEM 을 생성해주세요.
하단에 내려가면 Pipeline Script 를 작성할 수 있는 부분이 있는데 Pipeline Syntax를 클릭합니다.

Snippet Generator 로 이동이 되는데 해당 탭의 sample Step 에서 Git:Git 을 클릭하며 Clone 하고자 하는 repository 주소를 넣어줍니다. 또한 clone 할 브랜치를 입력합니다.

마지막으로 Credentials 을 추가하면 되는데 만약 존재하지 않다면 생성합니다.
하단의 그림처럼 kine 는 Username With password 를 입력합니다. 이후 Username 에는 Github 계정을 , Password 는 Github 토큰을 입력합니다.

모두 완성되었다면 Generate Pipeline script 를 눌러 생성된 Script를 복사합니다.

복사된 Script를 step안에 붙여넣습니다.

pipeline {
    agent any 
    stages {
        stage('GitHub Repository Clone') { 
            steps {

            }
        }
    }
}

정리

서버에서 ssh 키를 만들고 공개키를 Github에 등록하고 개인키를 Jenkins 에 등록하여 접근을 하는 방법으로 시도를 할 수 있습니다. 해당 방법으로 진행하려면 해당 블로그 를 참고해주시면 될꺼같습니다.

참고

참고 블로그 1 : https://zayson.tistory.com/entry/Jenkins-CICD-1-GitHub-Repository-Clone%ED%95%98%EA%B8%B0#%F-%-F%--%-C%--Github%--Access%--Token%--%EB%B-%-C%EA%B-%--%--%EB%B-%-B%EA%B-%B-
참고 블로그 2 : https://be-developer.tistory.com/14

profile
https://github.com/5tr1ker

0개의 댓글