JaeWon's Devlog
article thumbnail
반응형

Master 서버와 Slave 서버는 서로 다른 2개의 서버에서 진행하였습니다.

Master 서버는 jenkins가 구동되고 있는 서버이며 Slave 서버는 jenkins가 설치되어 있지 않습니다.(Java JDK는 설치)

Master / Slave 분산 구성하기 전에 초기 설정이 되어 있지 않다면 이전 글을 참고해주세요.

 

이전글 : 2020/03/08 - [Web] - jenkins 초기 설정


1. Master(마스터) 서버에 공개키와 개인키 생성(RSA 키 생성)

- Master 서버와 Slave 서버를 ssh 통신할 수 있도록 ssh 키 설정을 한다.

- 먼저 마스터 서버(jenkins가 실제 작동하고 있는 서버)에 공개키와 개인키를 생성한다.

- 통상 홈 디렉토리에 .ssh 폴더를 생성하여 진행한다.

- $ssh-keygen -t 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]
The key's randomart image is:
+---[RSA 2048]----+
|        *+=..=++.|
|    . . EO+*O *. |
|   .   o=.*o.O   |
|  .      O..     |
|   .    S +      |
|    o   . .o     |
|     o . .o.o .  |
|      .  .o+ o   |
|         .+o.    |
+----[SHA256]-----+

## 생성된 공개키 확인
$cat id_rsa.pub
ssh-rsa AAAAB~~~~~~~~~~~~~~~~~~ [username]@[hostname]

## 생성된 비밀키 확인
$cat id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZ~~~~~~~~~~~~~~~~~~~~~
		....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----END OPENSSH PRIVATE KEY-----

 

2. Slave(슬레이브) 서버에 Master 서버에서 만든 공개키 등록

- Slave 서버에서 Master 서버에서 SSH 접속을 허용해야 접속이 가능하므로 Master 서버에서 생성한 공개키를 등록한다.

- Slave 서버에도 홈 디렉토리에 .ssh 폴더를 생성한다.

- .ssh 폴더에 authorized_keys 파일을 만들어 Master 서버에서 만든 공개키를 넣어 준다.

## 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

 

3. jenkins 홈페이지에 비밀키 등록

- jenkins 메인 -> Credentials -> System ->  Global credentials (unrestricted)

- 화면 좌측에 [Add Credentials] 클릭

- 각각의 정보를 입력합니다.

kind SSH를 통해 접속할 것이므로 SSH Username with private key 선택
ID 원하시는 아무 이름 작성
Description 설정하는 Credentials 설명
Username 접속하려는 Slave 서버의 계정(username)
Private Key Master 서버에서 생성한 비밀키 입력($cat id_rsa 하여 나온 값 전체)

- 등록완료

 

4. Slave Node 추가

- jenkins 메인 -> jenkins 관리 -> 노드 관리 -> 신규 노드

- 노드명을 작성 후 Permanenent Agent 체크 후 OK 클릭

- 각 정보를 입력

Name Slave Node 이름
Description (선택사항) 설명란
# of executors 1
Remote root directory Credentials 등록할 때 입력한 username의 기본 폴더
(
즉, slave 서버에서 사용할 디렉토리)
Labels Item 등록에 필요(예제에서는 사용하지 않았습니다.)
Usage Use this node as much as possible (체크)
Launch method Launch slave via SSH
- Host : 접속할 Slave 서버 IP 주소
- Credentials : 3번에서 등록한 것 선택
- Host Key Verification Strategy : Known hosts file Vertification Strategy
- PORT : 고급 버튼을 클릭하면 나오는데, 기본은 22입니다.
(따로 포트번호를 설정하지 않는다면 변경하지 않는다.) 
Availability Keep this agent online as much as possible

- 작성이 완료되었다면 "Save" 버튼을 누른다.

 

5. Slave Node 추가 완료

- 아래와 같이 나오면 slave node(노드)가 추가된 것이다.

- 만약 그림과 같이 나오지 않고, 모니터에 빨간색 X가 있다면 연결이 실패한 것입니다.

- Slave Node 클릭 -> 로그 -> 에러코드 확인

- 에러코드를 확인 후 재설정을 해주시면 됩니다.

반응형

'Infra > jenkins' 카테고리의 다른 글

jenkins JOB(Item) 생성 - Gradle 사용  (0) 2020.03.15
jenkins 초기 설정  (0) 2020.03.08
jenkins 설치하기(Window, tomcat war 배포)  (0) 2020.03.04
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!