개발을 할 때 application 에서 민감한 정보를 담고 있을 수 있습니다. 한번 개발하고 호스팅한 후에 application.yml 을 옮겨주면 되거나 build 된 jar 파일을 옮길 수 있지만 , CI / CD를 구축할 때나 여러 PC 에서 사용할 때는 좋은 생각은 아닐 꺼 같습니다.
고민을 하던 중 application.yml 파일만 따로 private 레포지토리에 할당하고 호스팅 할 때 두 repository를 clone 하고 병합하여 build 하는 방법을 고안하게 되었습니다.
따라서 이번 포스팅은 다음과 같은 방법을 설명합니다.
해당 포스팅은 다음과 같은 기술을 사용합니다.
이는 Private Repository 에 접근하는 방법도 포함하고 있습니다.
cess Tokens > Generate new token 으로 이동합니다.
repo, admin:repo_hook 부분을 체크한 후 토큰을 생성합니다.
Token 값 생성 시 한번만 보여주기 때문에 잘 저장해 두어야합니다.
Credential Plugin은 젠킨스가 각종 리소스에 접근하기 위한 키, 토큰 등을 저장하고 관리하는 플러그인입니다.
젠킨스 서버를 이용해 CI/CD를 이용하기 위해서 GitHub Repository에 접근하기 위한 토큰을 관리합니다.
해당 탭에 들어가서 하단으로 내려가면 GitHub Server가 존재하며 다음과 같이 작성합니다.
Add 버튼을 누르면 아래와 같은 그림이 나오는데 Kind 를 Secret text로 하고 , Secret 에서는 GitHub 에서 발급받은 Token을 삽입해주세요.
Credentials를 생성했다면 Test Connection을 통해 제대로 연결되었는지 확인이 가능합니다.
대시 보드에서 새로운 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