반응형

Jenkins 12

[Jenkins] Launch agents via SSH 분산 빌드 환경 구축 방법

Launch agents via SSH 경우 Jenkins 마스터 서버 -> 슬레이브  서버로 SSH 접속하여 제어한다.아래 [JNLP 분산 빌드 환경 구축 방법]과 다른 점만 설명하도록 하겠다. SSH로 접속하기 때문에 TCP 포트 설정은 필요 없다 대신 SSH key를 등록해 줘야 한다. 2024.08.20 - [DevOps/Jenkins] - [Jenkins] JNLP 분산 빌드 환경 구축 방법 [Jenkins] JNLP 분산 빌드 환경 구축 방법Jenkins에서 분산 빌드 환경을 구성하지 않으면 순차적으로 빌드하게 되지만, 분산 빌드 환경을 구성하게 되면 동시에 처리하므로 빌드 속도가 빨라진다. 또한, 빌드 작업을 여러 서버에 분산시켜cocococo.tistory.com   1.  SSH key..

DevOps/Jenkins 2024.08.21

[Jenkins] JNLP 분산 빌드 환경 구축 방법

Jenkins에서 분산 빌드 환경을 구성하지 않으면 순차적으로 빌드하게 되지만, 분산 빌드 환경을 구성하게 되면 동시에 처리하므로 빌드 속도가 빨라진다. 또한, 빌드 작업을 여러 서버에 분산시켜 Jenkins 마스터 서버의 부하가 줄고, 시스템 리소스를 효율적으로 사용하게 된다.      1. 분산 빌드 구성 환경 종류1-1. Launch agent by connecting it to the controller - JNLP (Java Network Launch Protocol)에이전트(슬레이브)가 JNLP를 통해 마스터에 스스로 연결되는 방식이다.특징:에이전트가 JNLP 파일을 통해 Jenkins 마스터에 직접 연결Java 필요에이전트는 HTTP/HTTPS를 통해 JNLP 파일 다운로드 하고, Jenki..

DevOps/Jenkins 2024.08.20

[Jenkins / 오류] Failed to start Jenkins Continuous Integration Server 설정 파일

1. Issue다른 외부 서버로의 배포 및 Jenkins에서 여러 작업(서버 스크립트 실행)을 실행할 경우 권한 문제가 번번이 발생하여 jenkins 설정 파일(jenkins.service)에서 실행시키는 소유자와 그룹을 변경하게 되면서 해당 오류가 발생하였다.  2. Problemjenkins.service 수정 후 적용 시 오류 발생- 설정 적용$ sudo systemctl daemon-reload$ sudo systemctl restart jenkins  3. Solution[See "systemctl status jenkins.service" and "journalctl -xe" for details.]라는 메시지로 확인 하라고해서 진행 3-1. systemctl status jenkins.ser..

오류 해결 2024.08.13

[Jenkins] 외부에서 원격 빌드하는 방법(Token)

빌드 방법은 크게 두 가지 있다. 사용자 계정 Token 사용한 인증 방법과, Job(Item) 인증 토큰을 사용해 빌드하는 방법.   1. 사용자 계정 Token 인증 방법1-1) 계정 ID -> 설정 -> API Token// 발급 받은 Tokens을 base65 인코딩해 줘야 한다. // ex ) admin:112cda48189a0d3360ab73ea564226a6edkey name:Tokenkey:Token 전체 인코딩 해줘야 한다. 1-2) Curl 테스트curl -X POST {JENKINS_HOME}/job/{JOB_NAME}/build \--user admin:112cda48189a0d3360ab73ea564226a6ed    2. JOB Token 인증 방법인증 없이 사용하기 위해서는 플..

DevOps/Jenkins 2024.04.29

[Jenkins / 오류] Pipeline에서shell script 실행 방법(nohup)

1. IssueJenkins Pipeline을 사용해 실행 스크립트(sh)를 사용해 jar 파일을 백그라운드에서 실행시키는 도중 Job이 종료되면 실행시켰던 프로세스가 삭제됨  2. ProblemJenkins 파이프라인에서 실행되는 모든 작업은 Job 내에서만 실행된다. 파이프라인에서 정의된 step을 차례대로 실행하고, 파이프라인이 종료되면 Jenkins는 해당 실행 환경을 정리하고 종료하게 된다.(하위 프로세스도 함께) 3. SolutionJENKINS_NODE_COOKIE 환경 변수를 사용해 프로세스를 종료하지 않도록 요청한다.pipeline { agent any tools { maven 'maven-3.9.6' jdk 'JDK8' } stages ..

오류 해결 2024.04.01

[Jenkins] 폐쇄망 Jenkins 수동 설치 방법

인터넷이 안 되는 환경에서 수동 설치하기 위해서는 인터넷이 되는 pc에서 Jenkins rpm 파일과 사용하는 플러그인 파일을 수동으로 다운로드해 폐쇄망으로 들고 와 설치해야 한다.   1. Jenkins rpm 다운로드Java 버전을 고려해 원하는 버전의 Jenkins rpm을 다운로드한다. 최신 jenkins 버전의 경우 systemd 패키지가 필요하기 때문에 해당 패키지를 설치하거나 jenkins 버전을 낮춰서 설지해야한다(2.414 버전 이전까지는 없어도 설치 가능)https://get.jenkins.io/redhat-stable/ Redhat Jenkins PackagesJenkins Redhat Packages To use this repository, run the following comm..

DevOps/Jenkins 2024.03.29

[Jenkins] Pipeline Maven 패키징 방법

Jenkins 서버에 maven을 설치하게 되면 동일한 버전을 모든 프로젝트에 적용되기 때문에 프로젝트마다 상황에 맞게 사용하기 위해 특정 maven 버전들을 등록해 상황에 맞게 사용한다. 1. Maven 등록[Jenkins 관리] -> [Global Tool Configuration] -> Maven 항목 [Add Maven] 클릭Jenkins는 별도로 도구(JDK, Maven)를 관리한다. 특정 버전 maven으로 실행하고 싶을 때 아래의 작업을 진행하게 되며 만약, 서버에 설치되어 있는 Maven 버전을 사용하고 싶다면 이 작업은 건너 띄고 Pipeline Script에서도 tools 부분을 제외한다.Name : Piepline에서 호출할 때 사용할 이름Version : Maven 패키징 버전을 설..

DevOps/Jenkins 2024.03.28

[Jenkins / 오류] nohup 백그라운드 프로세스 실행 오류

1. Issue Jenkins 빌드 후에 배포된 파일(jar)을 백그라운드로 실행 시 스크립트가 실행되지 않음 2. Problem 하나의 서버로 Jenkins 서버를 구축하고, 빌드 파일을 실행할 경우 Jenkins 계정으로 명령어를 실행하기 때문에 권한에 따른 오류가 발생한다. (원격 서버로 배포되면 ssh로 접속하기 때문에 발생하지 않는다.) 3. Solution 사용자 계정으로 명령어 or 스크립트를 실행한다. 3-1) Jenkins에 사용자 권한 부여 // 관리자 계정으로 변경 (이미 관리자 계정이면 상관 없음) su - [관리자 계정] // 쓰기 권한 부여 chmod 640 /etc/sudoers // 수정 vi /etc/sudoers - vi 편집기 jenkins ALL=(was) NOPASS..

오류 해결 2024.01.17

[Jenkins / 오류] Kill -9 명령어 오류 해결(동일 서버)

1. Issue 파이프라인 스크립트로 통해 프로세스를 체크하고, 재실행하는 과정에서 kill -9 [PID] 실행 시 오류 발생 2. Problem 하나의 서버에 Jenkins를 구축하고, 해당 서버에서 스크립트를 실행하게 되면 권한에 따른 오류가 발생하게 된다. 만약, 원격 서버가 따로 존재한다면 ssh로 접속하기 때문에 별다른 문제가 발생하지 않는다. 3. Solution Jenkins 사용자에게 sudo 권한 부여하고 sudo로 kill 명령어를 실행한다. 1) 관리자 계정 로그인 su - [관리자 계정] 2) 권한 설정 // 수정하기 위한 쓰기 권한 부여 chmod 640 /etc/sudoers // 수정 vi /etc/sudoers // jenkins에 권한 부여 jenkins ALL=(ALL)..

오류 해결 2024.01.16

[Jenkins] 스케줄(Schedule)을 사용한 자동 실행 방법

1. 스케줄 설정 [프로젝트] 선택 => [구성] 선택 => [빌드 유발 or Build Triggers] => [Build periodically] 선택 2. 작성밥법 작성 방법은 Cron과 동일 * * * * * | | | | | | | | | +-- 요일(0-7, 0과 7은 일요일, 1은 월요일, ...) | | | +---- 월(1-12) | | +------ 일(1-31) | +-------- 시(0-23) +---------- 분(0-59) * (별표): 모든 값에 일치한다. 모든 분/시간/일/월/요일을 나타낸다. - (대시): 범위를 나타낸다. 예를 들어, 1-5는 1부터 5까지의 값에 일치한다. , (쉼표): 특정 값들을 나타낸다. 예를 들어, 1,3,5는 1, 3, 5에 일치한다. / (..

DevOps/Jenkins 2023.12.15
반응형