Dazzling 개발 노트

[CI/CD] 2.CI/CD 구현을 위한 AccessKey 발급하기 (GitHub/Docker/Slack/Ec2) 본문

DevOps/CICD

[CI/CD] 2.CI/CD 구현을 위한 AccessKey 발급하기 (GitHub/Docker/Slack/Ec2)

dj._.dazzling 2023. 12. 22. 21:15

Jenkins - GitHub - Docker 연동을 위해 필요한 AccessKey를 생성하고, Jenkins Credential에 등록한다.

 

총 4개의 AccessKey, 혹은 token을 발급하여 Jenkins Credential에 등록했다.

1. GitHub Access Token

2. Docker Access Token

3. Slack Access Token

4. ec2-ssh

 

 

시작하기 전에 먼저 강조하자면,

모든 토큰은 생성 후 다시 볼 수 없기 때문에 발급된 화면에서 바로 메모장이나 노션에 잘 저장하도록 한다.

1. GitHub Access Token 발급하기

GitHub 접속 후 프로필 아이콘 클릭

-> Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token > Generate new token (classic) 클릭

-> Note에 token이름 적고 토큰 기간을 설정한 후

repo, admin:repo_hook에 체크하고 update token을 클릭하여 저장한다.

 

생성된 토큰의 값은 이후로 볼 수 없기 때문에 잘 저장한다!

2. Docker Access Token 발급하기

docker Hub 접속 : https://hub.docker.com/

로그인 > Account Settings > Security > Access Tokens > New Access Token 클릭

token 이름 입력 후 Generate 눌러서 저장

마찬가지로 생성된 토큰은 별도로 저장해 둔다.

 

3. Slack Access Token 발급하기 (선택)

추후에 Jenkins와 Slack을 연동하기 위해 Slack 토큰도 발급한다.

이 과정을 위해 Slack에서 워크스페이스를 별도로 생성하는 작업은 별도로 진행한다.

워크스페이스가 이미 생성되어있다는 가정 하에 진행한다.

 

Slack workspace에서 앱 > Jenkins 추가 > Jenkins 앱을 채널에 추가

> 다음 화면의 3단계에서 표출되는 통합 토큰 자격 증명 ID를 복사하여 별도로 저장해 둔다.

4. EC2-ssh pem key

Jenkins에서 WAS Ec2로 접근하기 위해 ssh접속 시 pem key가 필요하다.

AWS에서 Ec2를 생성하면서 설정한 .pem key의 내용을 cat 명령을 사용해 확인하고 해당 값을 별도로 저장해 둔다.

cat (pem key 이름)

 

 

 

Jenkins Credential 등록하기

Dashboard > Jenkins 관리 > Credentials > Stores scoped to Jenkins 구역에 있는 Domains 아래 (global)을 클릭한다.

 

Global credentials 화면에 진입했다면 Add Credentials를 클릭한다.

 

github-access-token, docker-access-token은 Kind를 Username with password로 설정하고 나머지 데이터를 입력한다.

- Username : 계정 username, id 등

- Password : token의 값

- ID : Jenkins 내에서 사용되는 구분값

- Description : 선택사항이지만, 나는 구분하기 쉽게 하기 위해 ID와 동일한 값을 넣었다.

 

 

 

slack-access-token은 Kind를 Secret text로 설정하고 나머지 데이터를 입력한다.

- Secret : token의 값

- ID : Jenkins 내에서 사용되는 구분값

- Description : 선택사항이지만, 나는 구분하기 쉽게 하기 위해 ID와 동일한 값을 넣었다.

 

ec2-ssh는 Kind를 SSH Username with private key로 설정하고 나머지 데이터를 입력한다.

- ID : Jenkins 내에서 사용되는 구분값

- Description : 선택사항이지만, 나는 구분하기 쉽게 하기 위해 ID와 동일한 값을 넣었다.

- Username : ssh 접속 시 사용하는 username

- Private Key > Enter directly에서 Key에 Add를 클릭해 pem key 내의 정보를 입력한다.

여기서 pem 내의 -----BEGIN RSA PRIVATE KEY-----, -----END RSA PRIVATE KEY-----까지 정확히 입력해 주어야 추후에 ssh 접속 시 문제가 발생하지 않는다.

 

 

여기까지 AccessToken을 생성하고, Jenkins에 등록하는 과정을 마쳤다.