Skip to main content

Command Palette

Search for a command to run...

Jenkins Agent JNLP연결 백그라운드에서 유지시키기

Updated
Jenkins Agent JNLP연결 백그라운드에서 유지시키기
K

backend developer interested in technical problem

Agent가 Jenkins Controller와 JNLP로 커넥션을 맺기 위해서는

java -jar /home/bts/agent.jar -jnlpUrl http://YOURJENKINS-URL/computer/AGENT-NAME/jenkins-agent.jnlp -secret abc -workDir "/YOUR/WORK/DIR" 와 같은 명령어를 수행한다. 하지만 명령어를 입력하면 이 이후에 터미널을 사용하지 못한다.

이때에 첫 번째 방법으로는 nohup을 이용하는것이다. 하지만 이는 재부팅시에는 다시 해당 명령어를 입력해줘야한다.

두 번째 방법인 systemctl을 이용하는 방법은 재부팅시에도 자동으로 백그라운드에서 연결을 맺는다. 우선 service파일을 만들자.

sudo vi /etc/systemd/system/jenkins-agent.service

이후 서비스 파일을 아래와 같이 채워준다.

[Unit]
Description=Jenkins Agent
After=network.target

[Service]
User= # 해당 서비스를 수행할 계정
WorkingDirectory= #작업경로
# 이는 처음 노드를 생성했을 때 자동으로 나오는 명령어를 입력한 것이다. 아래 그림참조
ExecStart=/usr/bin/java -jar [agent.jar파일의 경로] -jnlpUrl <http://[JENKINS CONTROLLER URL]/computer/[JENKINS JOB NAME]/jenkins-agent.jnlp> -secret [SECRET] -workDir ""

[Install]
WantedBy=multi-user.target

이 때 ExecStart에는 Jenkins Node를 처음 만들면 JNLP연결을 위한 커맨드가 주어지는데 이를 입력한다.(위 그림처럼 command line이 주어진다)

systemctl enable jenkins-agent.service #재부팅시에도 적용.
266 views

More from this blog

rfc 959 읽어보면서 ftp이해하기

들어가며 프로젝트에서 FTP를 통해 파일을 전송하는 클라이언트를 개발했을 때 이야기입니다. 프로토콜에 대한 이해 없이 개발을 진행하다 보니 불필요하게 시간을 소모한 경험이 있어서 RFC 원문을 읽어보게 되었습니다. 읽게 된 계기 당시 FTP 프로토콜에 대한 이해가 부족한 상태로 개발을 시작했습니다. '제어를 위한 포트와 데이터 전송을 위한 포트가 분리되어 있다' 정도만 알고 있었고 Active 모드와 Passive 모드의 차이를 제대로 이해...

Dec 5, 20256
rfc 959 읽어보면서 ftp이해하기

mapstruct 로 보일러플레이트 코드 줄이기

배경 사내에서 교통 모니터링용 레이더 디바이스를 관리하는 API를 개발했을때 이야기입니다. 반복되는 코드에서 느꼈던 피로를 개선하고자 mapstruct를 적용해봤습니다. 실황 우선 일부 필드만 추출한 Device에 대해 간단히 이야기해야할 것 같습니다. 교통 모니터링용 레이더 디바이스로 신호등이나 가로등에 설치하며 설치된 좌표를 기록하는 위도, 경도와 레이더가 바라보는 방향을 의미하는 heading_angle필드 등이 있습니다. public...

Nov 13, 20259
mapstruct 로 보일러플레이트 코드 줄이기
T

takoyakisoba

38 posts