1. 개요
Jenkins 는 플랫폼에 관계없이 프로젝트를 제공하기 위한 오픈 소스 CI/CD 자동화 도구입니다. 이 사용방법(예제)에서는 서로 다른 두 컴퓨터 간에 Jenkins 작업을 내보내고 가져오는 방법을 배웁니다.
먼저 Docker 컨테이너에서 Jenkins 서버를 시작합니다. 나중에 작업 가져 오기 플러그인 및 Jenkins XML 구성을 사용하여 원본 컴퓨터에서 대상 컴퓨터로 작업을 내보냅니다 .
2. 초기 설정
시작하기 전에 먼저 데모용 설정을 만들어 보겠습니다. 여기에서 설정에는 두 개의 Linux VM, 소스 시스템 및 대상 시스템이 포함됩니다. 당연히 Linux에 Jenkins를 설치하는 방법에는 여러 가지가 있습니다 . 일반적으로 가장 쉬운 방법은 Docker 컨테이너 입니다 . 물론 Jenkins 서버는 두 시스템 모두에서 실행 중이어야 합니다.
또한 내보내기 및 가져오기를 위해서는 샘플 작업이 필요합니다. 작업을 생성하려면 다음과 같은 몇 가지 단계를 따라야 합니다.
- Jenkins 대시보드에서 새 항목을 클릭합니다.
- 작업 이름 설정( sampleJob 사용 )
- 작업 유형 선택( Freestyle 프로젝트 사용 )
- 작업 저장
위의 단계는 소스 Jenkins 머신에서 기본 작업을 생성합니다.
3. Jenkins에서 작업 내보내기/가져오기
어쨌든 Jenkins 작업은 여러 가지 방법으로 다른 서버로 이동할 수 있습니다. 그러나 한 인스턴스에서 다른 인스턴스로 Jenkins 작업 파일을 마이그레이션하려면 원본 컴퓨터와 대상 컴퓨터 간의 적절한 연결을 확인해야 합니다 .
3.1. 작업 가져오기 플러그인 사용
Jenkins에서 작업 가져오기 플러그인을 사용하면 작업을 마이그레이션할 수 있습니다. 실제로 모든 플러그인은 Jenkins UI에서 관리하고 설치할 수 있습니다. 물론 대상 시스템에 작업 가져오기 플러그인을 설치합니다.
이제 작업을 가져오려면 대상 Jenkins 머신의 구성을 변경해야 합니다. 먼저 Jenkins 대시보드에서 Jenkins 관리 > 시스템 구성 으로 이동합니다 . 그런 다음 작업 가져오기 플러그인 섹션 까지 아래로 스크롤합니다 .
여기에서 원본 Jenkins 컴퓨터의 URL과 자격 증명을 추가합니다. 여기에서 모든 관련 값을 채운 다음 변경 사항을 저장하고 적용합니다.
마지막으로 Jenkins 대시보드의 왼쪽 탐색 모음에 작업 가져오기 플러그인 항목이 표시됩니다 . 그것을 클릭하면 플러그인이 제공하는 옵션을 볼 수 있습니다.
이후에는 쿼리 버튼을 클릭하여 소스 시스템의 모든 작업을 가져올 수 있습니다 . 또한 가져오기 확인란 을 사용하면 원본 컴퓨터의 작업을 대상 컴퓨터로 가져옵니다.
3.2. jenkins-cli.jar 파일 사용
또한 jenkins-cli.jar 파일을 사용하여 Jenkins 작업을 마이그레이션할 수도 있습니다. jenkins-cli.jar를 다운로드하려면 http://JENKINS_IP:JENKINS_PORT/jnlpJars/jenkins-cli.jar 로 이동합니다 .
또한 소스 머신에서 작업을 내보내려면 소스 머신의 Jenkins 사용자 비밀번호가 필요합니다 . 이 암호는 Docker 컨테이너의 stdout 로그 에 있습니다 .
이제 소스 시스템에서 sampleJob 의 구성 파일을 가져오는 명령을 살펴보겠습니다 .
$ java -jar jenkins-cli.jar -s http://JENKINS_USER:JENKINS_PASSWORD@JENKINS_IP:JENKINS_PORT get-job sampleJob > sampleJob.xml
여기에는 소스 시스템의 적절한 값으로 업데이트해야 하는 몇 가지 정보가 있습니다.
- 젠킨스 사용자
- JENKINS_PASSWORD
- 젠킨스_IP
- 젠킨스_포트
중요한 것은 jenkins-cli.jar이 있는 디렉토리에서 명령을 실행해야 한다는 것입니다 . 또한 get-job 옵션을 사용하여 작업 덤프를 XML 형식으로 가져옵니다.
sampleJob.xml을 대상 머신으로 가져오는 명령을 확인해 보겠습니다 .
$ java -jar jenkins-cli.jar -s http://JENKINS_USER:JENKINS_PASSWORD@JENKINS_IP:JENKINS_PORT create-job sampleJob < sampleJob.xml
다시 한 번 값을 교체해야 하지만 이번에는 대상 시스템에 따라 변경해야 합니다.
마지막으로 위의 명령은 sampleJob.xml 파일을 읽고 대상 시스템에서 새 작업을 가져옵니다.
4. 결론
이 기사에서는 서로 다른 Jenkins 서버에서 Jenkins 작업을 내보내고 가져오는 방법을 시연했습니다. 먼저 Job Import Plugin을 사용하여 내보내고 가져오는 방법을 배웠습니다. 그런 다음 jenkins-cli.jar 파일 로 동일한 작업을 수행했습니다 .