반응형
  • CentOS 7.8 젠킨스 에이전트(노드) 서비스 등록 하기

CentOS에서 젠킨스 에이전트(노드) 서비스 등록하는 방법 입니다. 해당 방법은 젠킨스 에이전트에서 "Launch agent by connectiong it to the master" 방식으로 설정한 경우에 해당 합니다.

 

저의 경우 /data/jenkins_start.sh 파일을 만들었습니다. 아래와 같이 시작 스크립트를 만들 경로를 임의로 정하시고 에이전트 실행 명령어를 스크립트 내용 안에 적어 주세요. 

* agent.jar 파일의 위치를 주의 해주세요. 리눅스가 미숙하신 경우 절대 경로를 사용하시는게 편합니다.

vi /data/jenkins_start.sh

 

이후 다음과 같이 스크립트에 실행 권한을 주시면 됩니다.

chmod 700 /data/jenkins_start.sh

 

아래와 같이 /usr/lib/systemd/system/ 에 jenkins-agent.service라는 파일을 작성 합니다. 위에서 스크립트 경로와 파일명을 똑같이 하셨다면 그대로 복붙 하시고, 바꾸셨다면 ExecStart 쪽에 스크립트 경로와 파일명만 수정 해주시면 됩니다.

vim /usr/lib/systemd/system/jenkins-agent.service
[Unit]
Description=jenkins agent
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/jenkins_start.sh -d
WorkingDirectory=/data

[Install]
WantedBy=multi-user.target

 

이제 서비스 등록에 대한 준비는 모두 끝났습니다. daemon-reload 후 서비스 등록/실행 하시면 정상적으로 실행되는것을 확인하실 수 있습니다.

systemctl daemon-reload
systemctl enable jenkins-agent
systemctl start jenkins-agent

반응형
반응형
  • 젠킨스 agent 노드에 프로젝트 연결 하기

젠킨스 agent 노드를 추가 후 보면 아래와 같이 연결된 프로젝트가 없다는것을 확인할 수 있습니다.

 

젠킨스 대쉬보드에서 연결할 프로젝트를 클릭 합니다.

 

좌측 메뉴의 구성을 클릭 해주세요.

 

다음과 같이 프로젝트의 구성에서 "Restrict where this project can be run'을 클릭한 뒤 Label을 입력 해줍니다. Label은 노드를 추가할 때 작성했던 내용이니 기억이 안나신다면 노드 설정으로 들어가 확인 또는 추가 하시면 됩니다.

 

저장 후 나오면 다음과 같이 agent 노드에 프로젝트가 연결된것을 확인할 수 있습니다.

 

다음과 같이 프로젝트가 정상적으로 연결되어 빌드 되는 것 까지 확인 하였습니다.

 

반응형
반응형
  • 젠킨스 agent 노드 추가 하기

젠킨스에 agent 노드를 추가하여 관리 하도록 합니다. jenkins 웹페이지로 접속 후 Jenkins 관리 → 노드 관리를 선택 해주세요.

 

좌측 메뉴의 신규 노드 클릭 → 노드명 입력 후 Permanent Agent 를 클릭하여 넘어갑니다.

 

저는 Launch agent by connectiong it to the master 방식으로 진행하려 합니다. 우측의 ? 아이콘을 클릭하면 필요한 설명들을 확인할 수 있습니다.

추후 프로잭트를 추가할 때 Labels를 기준으로 하니 참고 해주세요.

 

Launch agent by connectiong it to the master 방식의 경우 java 설치가 필요하기 때문에 잠시 agent 노드쪽에 접속하여 아래 명령어를 입력하여 설치를 진행 해주세요. (만약 java 설치하기가 힘들다면 위에서 SSH 방식으로 설정 해주시면 됩니다.)

yum install java-1.8.0-openjdk-devel -y

 

생성한 Agent 노드를 클릭 합니다.

 

저의 경우 사용할 agent 서버는 리눅스 이므로 wget으로 설치하여 진행하려고 합니다. agent.jar를 우클릭하여 "링크 주소 복사"를 클릭 해주세요.

 

agent 서버에 접속하여 wget [복사한 주소] 명령어를 입력하여 다운로드 해줍니다.

 

아래 빨간 박스 부분의 명령줄을 복사 후 붙여넣기 해주시면 노드 추가가 완료 됩니다.

 

단, 아래와 같이 명령줄 마지막에 & 를 붙여 백그라운드로 실행되도록 하시는걸 추천 드립니다.

 

이후 jenkins 웹페이지에서 확인하면 agent 노드가 정상적으로 되고 있는것을 볼 수 있습니다.

 

반응형
반응형
  • 젠킨스와 github webhook 연동하는 방법

jenkins와 github webhook을 이용한 연동 방법 입니다.

 

  • 1) GitHub Intergration 플러그인 설치

jenkins 웹페이지에서 Jenkins 관리 → 플러그인 관리 → 설치 가능을 선택 후 GitHub Integration을 설치 해주세요.

 

 

  • 2) GitHub Token 발급 받기

github.com 홈페이지로 접속 후 로그인을 하신 뒤 우측 상단의 아이콘 선택 → Settings를 클릭 해주세요.

 

좌측 메뉴의 Developer settings → Personal access tokens → 우측 상단 Generate new token 클릭

 

Note 부분은 임의로 작성 후 repo, admin:repo_hook 부분을 체크 후 생성 합니다.

 

  • 3) jenkins 서버 사용자 계정 생성 및 키 생성

jenkins 서버로 잠시 돌아와 jenkins 계정 패스워드를 설정하고 키를 생성 및 복사 합니다.

[root@localhost ~]# useradd webhook
[root@localhost ~]# passwd webhook
jenkins 사용자의 비밀 번호 변경 중
새  암호: 
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@localhost ~]# su - webhook
[webhook@localhost ~]$ ssh-keygen
[webhook@localhost ~]$ cat ~/.ssh/id_rsa.pub
# ssh-rsa 로 시작하는 내용 모두 복사

 

  • 4) github 프로젝트 셋팅

github 프로젝트로 이동하여 좌측의 Deploy keys → Add deploy key를 클릭 해주신 후 복사했던 키를 입력하고 저장 합니다.

 

github의 프로젝트에 들어간 후 우측 상단 Settings → Webhooks → Add webhook 클릭 해주세요.

 

Payload URL은 http://{IP}:{Port}/github-webhook 으로 작성하시면 됩니다. 도메인이 있으시면 도메인으로 작성하셔도 되는것으로 보이며, 만약 집에서 테스트용으로 사용중이신거라면 포트포워딩 등을 통해 진행 하셔야 합니다.

 

  • 5) jenkins 프로젝트 설정

jenkins 웹페이지로 돌아와 좌측의 새로운 item 메뉴를 누른 후 아래 빨간 박스 입력 및 체크 해주세요. 이름은 임의로 작성하시면 됩니다.

 

GitHub project에 프로젝트 URL을 작성 해줍니다.

 

아래와 같이 git 클릭 → URL 입력 → Add 클릭 순으로 해줍니다. 그런 후 빌드 유발 → GitHub hook trigger for GITScm polling 를 체크 후 저장 해주세요. 

 

* Repository URL은 github 프로젝트에서 아래와 같이 확인하실 수 있습니다.

 

저의 경우 Username은 github 계정명을 작성 하였습니다. Private Key는 Jenkins 서버에서 아래 명령어를 사용해 확인할 수 있습니다.

su - webhook
cat ~/.ssh/id_rsa

 

  • Jenkins - GitHub 연동 확인

GitHub에 test2 라는 파일을 하나 푸쉬 해보니 다음과 같이 정상적으로 빌드되는것을 확인 했습니다. 

 

반응형

+ Recent posts