작업 관리 및 제어를 위한 필수 Jenkins CLI 명령어

명령줄을 통해 Jenkins 관리의 잠재력을 최대한 활용하십시오. 이 종합 가이드에서는 원격 작업 관리에 필요한 필수 Jenkins CLI 명령어를 자세히 설명합니다. CLI를 안전하게 설정하고, 구성을 검색하며, `create-job`, `copy-job`, `delete-job`, 그리고 `build`를 사용하여 전체 작업 수명 주기를 자동화하는 방법을 알아보십시오. API 토큰을 사용하여 Jenkins 제어를 자동화된 스크립팅 워크플로우에 통합하려는 관리자와 개발자에게 적합합니다.

38 조회수

작업 관리 및 제어를 위한 필수 Jenkins CLI 명령어

선도적인 오픈 소스 자동화 서버인 Jenkins는 CI/CD 파이프라인 관리를 위한 강력한 메커니즘을 제공합니다. 웹 UI는 시각적 감독에 매우 유용하지만, 특히 수백 개의 작업을 처리하거나 반복적인 설정 작업을 수행할 때는 관리를 위한 자동화가 자주 필요합니다. 이때 Jenkins 명령줄 인터페이스(CLI)가 필수적입니다.

Jenkins CLI를 사용하면 관리자와 개발자가 터미널을 통해 Jenkins 인스턴스와 원격으로 상호 작용할 수 있어 강력한 스크립팅 기능을 사용할 수 있습니다. 이 문서는 작업 생성 및 구성부터 활성화, 비활성화, 삭제에 이르기까지 Jenkins 작업의 전체 수명 주기를 관리하는 데 필요한 핵심 CLI 명령어에 대한 실용적인 가이드입니다. 이러한 명령어를 숙달하는 것은 효과적인 Jenkins 관리와 DevOps 툴체인으로의 통합에 매우 중요합니다.

Jenkins CLI 설정

명령어를 실행하기 전에 Jenkins 마스터에 대한 보안 연결을 설정해야 합니다. 여기에는 CLI 클라이언트 다운로드 및 적절한 인증 보장이 포함됩니다.

1. jenkins-cli.jar 다운로드

CLI 클라이언트는 일반적으로 특정 엔드포인트에서 Jenkins 서버에 직접 위치합니다. wget 또는 curl을 사용하여 다운로드할 수 있습니다.

wget http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar
# 또는 curl 사용
curl -O http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar

2. 인증 방법

Jenkins CLI 연결에는 인증이 필요합니다. 가장 안전하고 권장되는 방법은 일반 사용자 암호 대신 API 토큰을 사용하는 것입니다.

API 토큰을 생성하려면 Jenkins 웹 UI에서 사용자 설정 > 구성 > API 토큰으로 이동하십시오.

이후의 모든 명령어에는 일반적으로 -s(서버 URL) 및 -auth(인증 자격 증명) 플래그를 사용하는 인증 플래그가 필요합니다.

java -jar jenkins-cli.jar -s http://your-jenkins-url:8080 -auth USERNAME:API_TOKEN <command>

팁: 보안을 위해 API 토큰을 보안 환경 변수에 저장하거나, 스크립트에 직접 입력하는 대신 구성된 경우 SSH 키 인증 방법을 사용하십시오.

작업 검색을 위한 핵심 명령어

작업을 수정하기 전에 기존 작업을 나열하고 구성을 검색해야 하는 경우가 많습니다.

모든 작업 나열: list-jobs

이 명령어는 Jenkins 마스터에 구성된 모든 작업의 이름을 표시합니다.

java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH list-jobs

작업 구성 검색: get-job

Jenkins 작업은 XML 구성 파일로 정의됩니다. get-job 명령어는 이 XML 정의를 검색할 수 있게 해주며, 이는 템플릿을 기반으로 새 작업을 생성하는 데 필수적입니다.

# 'my-template-job'의 구성을 검색하여 파일로 저장
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH get-job my-template-job > template-config.xml

필수 작업 관리 명령어

이 명령어들은 Jenkins 작업의 기본 수명 주기 작업을 처리합니다.

1. 새 작업 생성: create-job

create-job 명령어에는 새 작업의 이름과 작업의 매개 변수, 빌드 단계 및 트리거를 정의하는 XML 구성 파일이 필요합니다.

전제 조건: get-job을 사용하여 검색한 템플릿을 수정한 후 일반적으로 얻게 되는 유효한 XML 구성 파일(예: new-config.xml)이 먼저 있어야 합니다.

# 예시: 로컬 XML 파일을 사용하여 'project-feature-branch'라는 새 작업 생성
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-job project-feature-branch < new-config.xml

2. 기존 작업 복사: copy-job

이것은 종종 새 작업을 생성하는 가장 빠른 방법으로, 기존 작업을 템플릿으로 사용하고 새 이름을 적용합니다. 이 명령어는 소스 작업의 구성을 효과적으로 복제합니다.

# 구문: copy-job 소스_작업_이름 대상_작업_이름
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH copy-job original-pipeline new-dev-pipeline

3. 작업 활성화 및 비활성화: enable-jobdisable-job

이 명령어들은 유지 관리, 임시 중단 또는 관리 제어를 위해 중요하며, 빌드가 트리거되는 것을 방지하거나 허용합니다.

# 유지 관리를 위해 추가 예약 또는 트리거된 빌드를 중단하는 명령어
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH disable-job legacy-project-build

# 작업을 다시 활성화하는 명령어
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH enable-job legacy-project-build

4. 작업 삭제: delete-job

이 명령어는 빌드 기록 및 구성을 포함하여 Jenkins 인스턴스에서 작업을 영구적으로 제거합니다. 이 명령어를 사용할 때는 주의하십시오.

# 작업의 영구 제거
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH delete-job obsolete-test-job

경고: delete-job 명령어는 CLI 환경에서 추가 확인 없이 즉시 실행됩니다. 이 명령어를 실행하기 전에 스크립트에 적절한 유효성 검사 단계를 포함하십시오.

빌드 트리거 및 모니터링

구성 관리 외에도 CLI는 특히 특정 매개 변수가 필요한 빌드를 트리거하는 데 자주 사용됩니다.

빌드 트리거: build

build 명령어는 지정된 작업에 대한 새 빌드를 시작합니다. 작업에 매개 변수가 있는 경우 -p 플래그를 사용하여 인수를 직접 전달할 수 있습니다.

# 간단한 비-매개변수화 빌드 트리거
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build nightly-deploy

# 매개변수 전달을 통해 매개변수화된 작업 트리거
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build integration-test -p TARGET_ENV=staging -p BRANCH_NAME=hotfix-123

참고: build 명령어에 -s 플래그를 사용하면 CLI는 빌드가 완료될 때까지 기다렸다가 종료 상태를 보고합니다. 그렇지 않으면 빌드를 큐에 넣은 직후 명령어가 반환됩니다.

빌드 상태 보기: get-jobconsole

CLI는 웹 UI와 비교할 수 있는 실시간 스트리밍을 제공하지 않지만, 작업 상태를 확인하고 콘솔 출력을 검색할 수 있습니다.

특정 빌드 번호의 콘솔 출력을 보려면 다음을 사용하십시오.

# 'my-job'의 빌드 #55에 대한 콘솔 출력 검색
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH console my-job 55

CLI 스크립팅 모범 사례

Jenkins CLI를 효율적으로 활용하려면 안정성과 보안을 위해 특정 모범 사례를 채택해야 합니다.

1. 스크립팅 및 자동화

CLI의 진정한 힘은 셸 스크립팅에 있습니다. get-job과 같은 명령어를 사용하여 결과를 XML을 sed 또는 awk와 같은 도구로 수정하고, 수정된 구성을 create-job 또는 reload-job을 사용하여 다시 전달합니다.

**예시 워크플로 (복사, 수정 및 생성):
**
1. 템플릿 가져오기: get-job template-job > tmp.xml
2. sed를 사용하여 tmp.xml의 자리 표시자(예: 프로젝트 이름, 리포지토리 URL)를 바꿉니다.
3. 새 작업 생성: create-job new-job < tmp.xml

2. 구성 업데이트 처리

XML 파일을 사용하여 기존 작업 구성을 업데이트하려면 reload-job 명령어를 사용하십시오. 이는 빌드 기록을 보존하므로 작업을 삭제하고 다시 만드는 것보다 안전합니다.

# 로컬에서 수정된 구성 파일을 사용하여 'project-a' 업데이트
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH reload-job project-a < updated-config.xml

3. 오류 처리

스크립트에서 CLI 명령어를 실행한 후에는 항상 종료 코드($?)를 확인하십시오. 반환 코드 0은 성공을 의미하며, 0이 아닌 코드는 오류를 나타냅니다. 이는 강력한 자동화 및 디버깅에 필수적입니다.

요약

Jenkins CLI는 작업을 관리하기 위한 강력하고 스크립트 가능한 인터페이스를 제공하여 관리자가 반복적인 작업을 자동화하고, 구성 마이그레이션을 관리하며, Jenkins 관리를 더 큰 CI/CD 배포 스크립트에 통합할 수 있도록 합니다. copy-job, create-job, delete-job, build와 같은 명령어를 활용하면 상당한 효율성을 달성하고 Jenkins 환경 전반의 일관성을 유지할 수 있습니다.