보안을 위해서 Github Private Repo 를 생성하였습니다.
프라이빗 저장소를 Jenkins와 연동하는 방법에는 1. ssh private, public key 사용 2. token 사용 두가지 방법이 있습니다.
저는 이번에 두번째 방법을 사용하겠습니다.
참고로 token을 발급받은 이후에는 git bash에서 git clone, push 등을 할 때 pw를 물어보면 token을 입력해야 합니다. (github 주소에서 로그인할때는 제외인것 같네요)
1. Github Personal Access Token 생성
깃헙에 로그인한 후, 계정이미지를 클릭하여 Settings를 클릭하세요.
Developer settings > Personal access tokens > 생성 클릭
위의 두개를 선택하고 저장하겠습니다.
생성하고 나온 token 번호는 꼭 복사해서 저장해두세요.
다시 생성하게 되면 token 번호가 바뀌어 버려서 전부다 다시 설정해야 합니다. (경험담..)
2. Jenkins 설정
2-1. Credential 생성
- github private에 접근할 수 있도록 두개의 credential을 생성해야 합니다.
Jenkins 관리에서 Manage Credentials 를 클릭합니다.
global을 클릭합니다.
왼쪽에 Add Credentials 을 클릭합니다.
먼저 token을 위한 credential을 생성하겠습니다.
Kind: Secret text
Scope: Global
Secret: <아까 생성한 token 값>
ID: 선별한 용도이니 임의로 지정해줍니다.
두번째 Credential은 github account를 위한 것입니다.
Kind: Username with password
Scope: Global
Username: <깃헙 account name> -> 실제 깃헙에서 사용하고 있는 이름입니다.
Password: <아까 생성한 token 값> -> token 을 생성했으니 pw 대신 token이 들어가야 합니다.
ID: 선별한 용도이니 임의로 지정해줍니다.
2-2. 시스템 설정
Jenkins 관리 > 시스템 설정 클릭합니다.
GitHub 섹션에서 add 클릭합니다.
Name: 임의로 지정
API URL: 디폴트값 그대로 둡니다.
Credentials: <token에 대한 credential(github-token)을 선택>
Test connection 을 클릭하였을 때 username을 제외하고 위 사진과 동일하게 떴으면 연결 성공한 것입니다.
2-3. 새로운 Item 생성
pipeline 을 생성합니다.
저는 pipeline 섹션에서 scm 을 git으로 설정하고 싶었는데 위와 같은 오류가 떴습니다.
이는 private repo에 연결할 수 있는 권한이 없어 실패했다는 오류입니다.
Repository URL: Github https
Credentials: <github account을 위해 작성한 credential(github-singin)>
정상적으로 연결이 됩니다 :)
참고
https://lindarex.github.io/jenkins/jenkins-github-webhook-setting/
'DevOps > CICD' 카테고리의 다른 글
GitOps, ArgoCD Overview (0) | 2023.10.11 |
---|---|
Argocd를 사용하여 helm chart 배포 및 주의사항 (1) | 2022.04.25 |
argoCD App of Apps 패턴을 사용한 서비스 배포 (7) | 2022.03.11 |
Github, Jenkins, argoCD를 사용하여 CI/CD 구축 (0) | 2022.01.24 |
Jenkins, Codedeploy 사용하여 CICD 환경 구축 (0) | 2021.10.10 |