Launch agents via SSH 경우 Jenkins 마스터 서버 -> 슬레이브 서버로 SSH 접속하여 제어한다.
아래 [JNLP 분산 빌드 환경 구축 방법]과 다른 점만 설명하도록 하겠다. SSH로 접속하기 때문에 TCP 포트 설정은 필요 없다 대신 SSH key를 등록해 줘야 한다.
2024.08.20 - [DevOps/Jenkins] - [Jenkins] JNLP 분산 빌드 환경 구축 방법
1. SSH key 등록
슬레이브 서버에서 SSH key를 생성하고, 공개 키를 Jenkins 마스터에 Credentials에 등록한다.
1-1. Jenkins 마스터 서버에 SSH key 생성
$ ssh-keygen
1-2. Jenkins 마스터 Credentials 등록
[Jenkins 관리] -> [Credentials] -> System]
- Kind : SSH 접속하기 위해 종류는 SSH Username with private key 선택
- Scope : 해당 설정은 자격 증명이 어디에서 사용될 수 있는지를 결정한다.
- System : Jenkins 내부의 시스템 작업(예: 노드 관리, Jenkins 시스템 자체의 작업)에서만 사용됩니다. 일반적인 Job이나 Pipeline에서는 사용할 수 없다.
- Global : Jenkins의 모든 작업(Job), 파이프라인(Pipeline), 에이전트(Agent) 등에서 사용할 수 있습니다. Jenkins 인스턴스 전체에서 접근이 가능하다 - ID : Credentials를 식별하는 ID
- Username : 슬레이브에 접근할 사용자명
- Treat username as secret : 빌드 로그에 사용자 이름 마스킹 처리 여부
- Enter directly : 슬레이브 서버에서 생성한 SSH 공개 키 (id_rsa)를 등록한다.
공개 키 (id_rsa) 내용을 전부 복붙!
1-3. 슬레이브 서버
Jenkins 마스터 서버에서 생성한 ssh 키의 공개 키(id_rsa.pub)를 슬레이브 서버의 ~/.ssh/authorized_keys에 추가한다. 해당 파일이 없으면 생성하고, 있다면 현재 내용에서 추가한다.
vi ~/.ssh/authorized_keys
...
cat ~/.ssh/authorized_keys
접속을 위해서는 몇가지 중의 할 점이 있다.
- 권한 - 너무 많은 권한이 있으면 인증을 거부하게 된다.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 755 ~
- ssh 설정 파일 - sshd_config
# ssh 설정 파일 편집
sudo vi /etc/ssh/sshd_config
...
PubkeyAuthentication yes
# sshd 설정 적용
sudo systemctl restart sshd
PubkeyAuthentication : 공개키 인증 활성화
- 방화벽
- ssh 접속도 22번 포트로 하기 때문에 슬레이브 서버의 22번 포트 가 열려있어야 한다.
2. Node 추가 설정
나머지 설정은 상단 링크 [JNLP 분산 빌드 환경 구축 방법]과 동일
- Host : 슬레이브 서버 IP를 등록
- Credentials : [1-2. Jenkins 마스터 Credentials 등록]에서 생성한 자격 증명을 등록
- Host Key Verification Strategy : SSH 연결 시 서버(노드)의 호스트 키를 어떻게 검증할지를 설정
- Known hosts file Verification Strategy: known_hosts 파일에 있는 키로 검증. [높은 보안]
- Manually provided key Verification Strategy: 사용자가 제공한 키로 검증. [매우 높은 보안]
- Manually trusted key Verification Strategy: 처음 연결 시 키를 신뢰하고 이후 검증. [초기엔 다소 위험]
- Non verifying Verification Strategy: 검증 없이 연결. [매우 낮은 보안]
2-1. JDK
실행 중인 Jenkins의 jdk 버전과 슬레이브 서버의 jdk 버전이 맞지 않다면 환경 변수를 지정해 줘야 한다.
3. 파이프라인 스크립트에서 사용
2024.08.20 - [DevOps/Jenkins] - [Jenkins] JNLP 분산 빌드 환경 구축 방법
위 방법과 동일
반응형
'DevOps > Jenkins' 카테고리의 다른 글
[Jenkins] JNLP 분산 빌드 환경 구축 방법 (0) | 2024.08.20 |
---|---|
[Jenkins] 외부에서 원격 빌드하는 방법(Token) (0) | 2024.04.29 |
[Jenkins] 폐쇄망 Jenkins 수동 설치 방법 (0) | 2024.03.29 |
[Jenkins] Pipeline Maven 패키징 방법 (0) | 2024.03.28 |
[Jenkins] Pipeline publish over ssh 사용한 배포 방법 (0) | 2024.03.27 |