답변:
여러 가지 방법이 있지만 Jenkins Home 폴더의 백업을 수행하는 가장 쉬운 방법입니다.
Jenkins의 집 위치는 다음과 같습니다.
echo $JENKINS_HOME
예를 들어 작업 만 백업하려는 경우 다음을 수행 할 수 있습니다.
cd $JENKINS_HOME/jobs
해당 폴더를 백업하십시오.
모든 구성은 많은 XML 파일이됩니다.
Jenkins 공식 도커 이미지를 사용하는 경우 집은 다음과 같습니다.
/var/jenkins_home
$JENKINS_HOME
: 환경 변수를 sudo su -s /bin/bash jenkins
다음과 echo $JENKINS_HOME
이었다 내게있는/var/lib/jenkins
모든 작업 ( jobs/
) 및 마스터 구성 파일 ( config.xml
)은 Jenkins 홈 폴더 ( JENKINS_HOME
)에서 다음 구조 로 찾을 수 있습니다 .
JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
대부분의 구성은 XML 형식이므로 모든 .xml
파일을 백업하면 충분합니다.
모든 설정, 빌드 로그, 아티팩트 아카이브는 JENKINS_HOME 디렉토리에 저장됩니다. 이 디렉토리를 아카이브하여 백업하십시오. 마찬가지로 데이터를 복원하는 것만으로 JENKINS_HOME 디렉토리의 내용이 백업에서 대체됩니다.
서버를 중지하지 않고 백업을 수행 할 수 있지만 복원 할 때 서버를 중지하십시오.
일관된 백업을 위해서는 JENKINS_HOME
디렉토리를 Git 리포지토리 에 보관하는 것이 좋습니다 .
예를 들면 다음과 같습니다.
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
파일을 외부 저장소로 푸시합니다. 다음 .gitignore
파일 을 추가하여 일부 파일을 무시할 수도 있습니다.
SCM 동기화 구성 플러그인은 당신이 원하는 것을 정확히 않습니다. svn 또는 git과 함께 사용하여 jenkins 코어 및 작업 구성을 백업하므로 변경 사항과 백업을 쉽게 추적 할 수 있습니다.
jenkins 데이터 및 마스터 구성을 백업하는 방법은 거의 없습니다. 백업하는 가장 좋은 방법은 Thinbackup 플러그인을 사용하는 것입니다. cron 표현식을 사용하여시기 적절한 백업을 예약 할 수 있습니다. 전체 백업 및 증분 백업도 구성 할 수 있습니다.
데이터 및 구성을 백업하는 다른 방법은 jenkins 마스터 서버의 디스크 스냅 샷을 만드는 것입니다. 디스크를 마운트하고 jenkins 구성 디렉토리를 디스크 마운트 포인트에 링크하여이를 수행하는 이상적인 방법
이 시나리오는이 블로그 게시물 에서 잘 설명되어 있습니다. 구성에 대한 더 나은 아이디어와 단계를 얻게됩니다.
의 스크립트를 사용하고 sue445/jenkins-backup-script
있습니다.
Jenkins 설정 및 다음과 같은 플러그인을 보관합니다.
$JENKINS_HOME/*.xml
$JENKINS_HOME/jobs/*/*.xml
$JENKINS_HOME/nodes/*
$JENKINS_HOME/plugins/*.jpi
$JENKINS_HOME/secrets/*
$JENKINS_HOME/users/*
./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz
# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz
당신은 시도 할 수 thinBackup의 [복용하는 경우 (이 적극적으로 유지되지 않더라도) 플러그인을 논리적 (즉, 설정 XML 파일의 대부분, 작업 노드 등)을 백업하는 것은 당신이 원하는 모든입니다]. 백업 크기는 크지 않습니다.
한 Windows Server 인스턴스에서 다른 Windows Server 인스턴스로 Jenkins를 마이그레이션해야했습니다. 마지막으로 나는 그렇게했습니다 :
C:\Program Files x86\Jenkins
).jenkins.exe install
이렇게하면 새로 붙여 넣은 Jenkins가 새 컴퓨터의 서비스로 등록되고 100 % 동일하게 작동합니다.
이것이 작동하면 나중에 안전을 위해 백업이 필요한 경우 Jenkins 폴더를 어딘가에 복사하십시오. 스냅 샷처럼 작동합니다.