작성자: ospace114@empal.com, http://ospace.tistory.com/
기본설정
Master에서 Manage Jenkins > Manage Nodes and Clouds 설정에서 노드 하나 생성하고 생성된 노드를 선택하면 JNLP 실행할 스크립트 출력됨.
JNLP 설정은 Global Secuirty > Agents 항목에서 TCP port for inbound agents에서 포트 설정 가능.
java -jar agent.jar -jnlpUrl http://{yourserver}:port/computer/{agent-name}/slave-agent.jnlp
Headless형태로 바로 jar을 받아서 실행됨.
관련 플러그인
- Node and Label parameter: 하니의 Job에서 다수 agent으로 빌드 가능.
Agent 노드에서 먼저 working 디렉토리를 생성({agent-working-dir}로 사용될 위치)
mkdir /home/{my-home}/jenkins
java -jar agent.jar -jnlpUrl [http://{server-ip}:{server-port}/computer/{agent-name}/slave-agent.jnlp](http://%7bserver-ip%7d:%7bserver-port%7d/computer/%7bagent-name%7d/slave-agent.jnlp) -{secret} \-workDir "{agent-working-dir}"
이미 앞에서 Node에 대한 JNLP 실행 스크립트에 있는 내용.
Agent 노드에서 Jenkins 생성된 노드 조회에서 "agent.jar"링크에 있는 jar파일 다운받아서 설치하고
스크립트 실행.
자동실행(ubuntu)
agent.sh 파일 생성하고 실행 권한 지정
#!/bin/bash
nohup java -jar agent.jar -jnlpUrl [http://{server-ip}:{server-port}/computer/{agent-name}/slave-agent.jnlp](http://%7bserver-ip%7d:%7bserver-port%7d/computer/%7bagent-name%7d/slave-agent.jnlp) -{secret} \-workDir "{agent-working-dir}"&
/etc/init.d에 jenkins-agent 파일을 생성
#!/bin/bash
su - jenkinsuser -c '/home/jenkinsuser/jenkins/agent.sh'
sudo chmod +x jenkins-agent
서비드 등록
sudo update-rc.d jenkins-agent defaults
서비스 해제
sudo update-rc.d -f jenkins-agent remove
-f 옵션은 force
서비스 실행
sudo service jenkins-agent start
sudo systemctl status jenkins-agent
sudo systemctl enable jenkins-agent
서비스 활성화 여부
systemctl is-active jenkins-agent
systemctl list-units --type=service
systemctl stop service-name
systemctl stop service-name
systemctl daemon-reload
반응형
'4.개발 및 운영 환경' 카테고리의 다른 글
[Linux] Debian 데비안에서 Bluetooth 구성 (0) | 2022.12.17 |
---|---|
[jenkins] pipeline 사용하기 (0) | 2021.11.12 |
[jenkins] LDAP 설정 (0) | 2021.11.12 |
[docker] docker image 다이어트하기 (0) | 2021.05.05 |
[docker] docker 간단하게 사용해보기 (0) | 2021.04.25 |