티스토리 뷰

DevOps/System&Tools

Jenkins Slave with SSH

Jacob_baek 2020. 9. 9. 17:38

Kubernetes 환경에서 Jenkins helm chart로 Jenkins를 사용하니 ssh를 통한 node 등록이 default로 활성화 되어 있지 않았다.

하여 plugin 설치와 함께 ssh를 통한 node(slave) 등록 방법에 대하여 알아보도록 하겠다.

plugin 설치

아래 plugin이 설치되어 있어야 한다.

node(slave) 추가

위 plugin 설치가 완료되면 new node항목을 클릭하여 node를 추가한다.

이름을 추가하고 지속적으로 사용할 예정이기에 Permanent Agent 를 선택하고 name을 추가하여 생성을 진행한다.

아래와 같이 Launch agents via SSH 라는 메뉴가 활성화 되어 있어야 한다.

host은 ssh로 접속할 ip 주소를 입력한다.

여기서 credential을 생성해야 하며 해당 정보는 ssh-keygen 명령어로 생성한 private key를 등록해야 한다.

key 등록과정

  1. master(Jenkins Server)에서 ssh-keygen 을 통해 ssh key를 생성
  2. Jenkins UI 에서 credentail 생성
    • username : master에서 ssh-keygen을 수행했던 계정
    • private key : 생성된 id_rsa 파일(ssh-keygen로 생성했던 ssh private key)
  3. agent로 동작될 서버에서 authorized_keys에 master(Jenkins Server)의 public key 등록
  4. 1~2에서 신규 등록했던 노드(agent) relaunch 수행

생성방법은 master(jenkins server)에서 접속할 것이기에 해당 서버에 들어가서 ssh-keygen 명령을 통해 생성해도 되고

혹은 기존에 사용하던 ssh-key가 있다면 기존에 사용하던 key중 public key를 접속하고자 하는 node(slave)에 authorized_keys 파일내에 추가해 놓으면 된다. (참고로 ssh-copy-id 명령을 사용해도 무방하다.)

위와 같이 credentail까지 생성하고 생성을 진행한다.

아래와 같이 생성된 node를 확인할수 있다.

해당 node를 활용한 jenkinsfile(pipeline)을 생성하고자 한다면 아래와 같은 node 의 label을 지정하면 된다.

pipeline {
  agent {
    node {
      label 'oxxxxxxxxxxxxxxxxx'
      customWorkspace "workspace/"
    }
  }
  ...

'DevOps > System&Tools' 카테고리의 다른 글

Selenium with Jenkins  (0) 2021.01.21
Ansible run at the special point  (0) 2020.10.29
Jenkins pipeline has triggered by github webhook  (0) 2020.08.17
Jenkins Directories  (0) 2020.08.14
Jenkins Debugging  (0) 2020.08.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함