1. Jenkins master node에서 ssh-keygen
2. Jenkins node > Launch method > Launch agents via SSH
- <Jenkins Host / Credentials 추가>
- Host: IP 또는 Container name
- Credentials: SSH Username with private key > Jenkins master node의 private key 등록
3. Jenkins master node의 known_hosts에 slave node의 Finger Print 등록 (아래 명령어 중 선택)
- ssh-keyscan -H ${slave node IP} >> ${Remote root directory}/.ssh/known_hosts
- ssh-keyscan -H ${slave node Container name} >> ${Remote root directory}/.ssh/known_hosts
# ex) jenkins 에 아래와 같이 노드를 추가했다면
ssh-keyscan -H node1 >> /home/jenkins/.ssh/known_hosts
- 여러 호스트를 한번에 입력할 때 :
- ssh-keyscan -f ${host명 있는 파일명} >> ${Remote root directory}/.ssh/known_hosts
Finger Print를 한번 등록하면 다음부터 묻지 않지만, 등록이 안되면 Finger Print 등록을 묻는 프롬프트 때문에 스크립트 실행 중 에러가 발생할 수 있다.
Jenkins에서 slave node 추가할때 Finger Print 등록 안되어있으면 node launch가 안된다.
+ 추가) 만약 위와 같이 추가했는데 permission error로 인해 node launch 가 안된다면
slave node에서
chmod -R 777 ${Remote root directory}
+ 추가) .ssh 권한 중요 (아래 권한 보다 크면 안됨)
- 644: id_rsa.pub, known_hosts
- 700: .ssh 폴더
- 600: id_rsa, authorized_keys
<Node 연결 성공 로그>
[12/08/22 11:04:34] [SSH] Opening SSH connection to ${slave_node_container_name}:22.
Searching for ${slave_node_container_name} in /var/jenkins_home/.ssh/known_hosts
Searching for ${slave_node_container_name}:22 in /var/jenkins_home/.ssh/known_hosts
[12/08/22 11:04:34] [SSH] SSH host key matches key in Known Hosts file. Connection will be allowed.
[12/08/22 11:04:34] [SSH] Authentication successful.
(.......)
Agent successfully connected and online
* known_hosts에 제대로 등록되지 않으면 SSH Connection failed 발생함
'Jenkins' 카테고리의 다른 글
[Jenkins] regex를 통해 파일에서 원하는 문자열 찾기 (0) | 2022.12.15 |
---|---|
jenkins-cli로 job 복사/생성하기 (0) | 2022.12.14 |
[Jenkins] check element in groovy array/hash/collection/list (0) | 2022.11.16 |
[Jenkins] stage skip 하기 (when, if) (0) | 2022.11.16 |
[Jenkins] Setup Lockable Resource (0) | 2022.11.14 |