📚
Jenkinsのジョブをバックアップするジョブ
JenkinsのジョブをXMLにバックアップするジョブを作成しました。
ジョブの内容
- バックアップを行うgroovyファイルの作成
- jenkins-cli.jarのダウンロード
- jenkins-cli.jarでgroovyの実行
- /tmp/jobsに出力する
- Foldersプラグインには未対応
- TODO:user:passwordを記載するので専用のユーザを用意するか環境変数などにする
Build Step - シェルの実行
echo '
import jenkins.model.*
def instance = Jenkins.getInstance()
def topLevelItems = instance.getItems()
def backupDirectory = new File("/tmp/jobs")
backupDirectory.mkdir()
topLevelItems.each { topLevelItem ->
topLevelItem.getAllJobs().each { job ->
println configPath = job.getBuildDir().getParent() + "/config.xml"
println backupPath = backupDirectory.getAbsolutePath() + "/" + job.name + ".xml"
new File(backupPath).setBytes(new File(configPath).getBytes())
}
}
' > backup_tmp.groovy
curl -v http://localhost:8080//jnlpJars/jenkins-cli.jar --output jenkins-cli.jar
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth user:password groovy = < backup_tmp.groovy
参考・レストアは以下の手順
Discussion