1. ec2-user 등 사용자 명 상태로 진행하기
2. master 서버에 가서 root 상태로 아래 script 실행하여 RSA 키 생성
## 홈 디렉토리로 이동
$cd ~
## .ssh 폴더 생성
$mkdir .ssh (홈 디렉토리로 이동했을 때) 또는 $mkdir ~/.ssh
## RSA 키 생성
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /~/.ssh/id_rsa.
Your public key has been saved in /~/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:~~~ [username]@[hostname]
## 생성된 공개키 확인
$cat id_rsa.pub
ssh-rsa AAAAB~~~~~~~~~~~~~~~~~~ [username]@[hostname]
## 생성된 비밀키 확인
$cat id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZ~~~~~~~~~~~~~~~~~~~~~
....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----END OPENSSH PRIVATE KEY-----
3. slave(agent) 서버에 가서 Master 서버에서 만든 공개 키 (public key) 등록
## Slave 서버에서 홈 디렉토리 이동
$cd ~
## .ssh 폴더 생성
$mkdir .ssh (홈 디렉토리로 이동했을 때) 또는 $mkdir ~/.ssh
## authorized_keys 생성
$vi authorized_keys
ssh-rsa AAAAB~~~~~~~~~~~~~~~~~~ [username]@[hostname]
####### 간단한 vi 편집기 사용법 #######
1. 콘솔창/터미널창 에서 [$vi 파일명]으로 파일 생성
2. esc 누르고 i 입력 후 편집 시작
3. 작성 후 esc 누르고 :wq!(저장한다는 뜻) 입력 후 엔터
##################################
## authorized_keys 확인
$cat authorized_keys
4. jenkins global credential 등록
- jenkins 메인 -> Credentials -> System -> Global credentials (unrestricted)
kind | SSH를 통해 접속할 것이므로 SSH Username with private key 선택 |
ID | 원하시는 아무 이름 작성 |
Description | 설정하는 Credentials 설명 |
Username | 접속하려는 Slave 서버의 계정(username) |
Private Key | Master 서버에서 생성한 비밀키 입력($cat id_rsa 하여 나온 값 전체) |
5. Slave 서버 jenkins root directory 생성 및 권한 부여
$sudo mkdir -p /var/lib/jenkins
$sudo mkdir -p /var/lib/jenkins/.ssh
$sudo cp /root/.ssh/authorized_keys /var/lib/jenkins/.ssh/authorized_keys
$sudo chmod 700 /var/lib/jenkins/.ssh
$sudo chmod 600 /var/lib/jenkins/.ssh/authorized_keys
$sudo chown -R 1000:1000 /var/lib/jenkins
6. pipeline script 에 agent 부분을 아래와 같이 수정
agent {label 'pipeline-node'}
7. master 서버에 가서 root 상태로 아래 script 실행하여 known_hosts 생성 (13.209.85.111 ip 는 예시임)
ssh-keyscan -p 22 13.209.85.111 >> /var/lib/jenkins/.ssh/known_hosts
반응형
'CICD' 카테고리의 다른 글
[Jenkins] 슬레이브 노드 (agent) 생성 및 연동 with JNLP (0) | 2022.12.30 |
---|---|
[jenkins] Amazon Linux 2 에 Docker 설치 (0) | 2022.12.30 |
[jenkins] Amazon Linux 2 에 git 설치 (1) | 2022.12.30 |
[jenkins] Amazon Linux 2 에 jdk 설치 (0) | 2022.12.30 |
[Jenkins] CI/CD 파이프라인 구축 - Github Webhook 연동 (1) | 2022.12.30 |