jenkins导入和导出视图的所有job
目标:导出http://192.168.31.32:8080/上Jenkins的内蒙古智慧园区test-后端view视图下的所有job,然后导入到http://192.168.20.143:8080/上Jenkins的内蒙古智慧园区test-后端view视图,并且每个job名字在原来的基础上加test-前缀
一、导出
1、在导出jobs配置的jenkins上配置认证
2、进入Jenkins命令行下载jenkins-cli.jar
3、上传jenkins-cli.jar包到服务器的/opt目录,然后编写shell运行
#!/bin/bash JENKINS_URL="http://192.168.31.32:8080/" VIEW_NAME="内蒙古智慧园区test-后端" AUTH="admin:115fb17c5079c6e975594670f6b68b7211" EXPORT_DIR="/opt/jobs" # 获取视图下所有 Job 的名称 JOB_NAMES=$(java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH list-jobs $VIEW_NAME) # 导出每个 Job 的配置 for JOB in $JOB_NAMES; do echo "Exporting job: $JOB" java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH get-job "$JOB" > "${EXPORT_DIR}/${JOB}_config.xml" done
4、jobs目录下有job的xml文件,打包并下载到桌面
tar zcvf jobs.tar.gz jobs
sz jobs.tar.gz
二、导入
1、在导入jobs配置的jenkins上配置认证
2、 进入Jenkins命令行下载jenkins-cli.jar
3、上传jobs.tar.gz到/opt目录然后解压
tar zxvf jobs.tar.gz
4、上传jenkins-cli.jar包到服务器的/opt目录,然后编写shell运行
#!/bin/bash JENKINS_URL="http://192.168.20.143:8080/" VIEW_NAME="内蒙古智慧园区test-后端" AUTH="admin:11f6864f3848c37ae7fe29c745a3d18365" JOBS_DIR="/opt/jobs" # 保存 XML 配置文件的目录 # 创建 test1 视图(如果尚未创建) # java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-view $VIEW_NAME # 循环导入每个 Job 配置 for CONFIG_FILE in $JOBS_DIR/*_config.xml; do JOB_NAME=$(basename "$CONFIG_FILE" "_config.xml") echo "Importing job: $JOB_NAME into $VIEW_NAME" java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-job "test-${JOB_NAME}" < "$CONFIG_FILE" # 将 Job 移动到 test1 视图中 curl -X POST -u admin:11f6864f3848c37ae7fe29c745a3d18365 -d "name=test-${JOB_NAME}" ${JENKINS_URL}/view/${VIEW_NAME}/addJobToView #java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH update-job "test-${JOB_NAME}" --view "$VIEW_NAME" done
5、查看导入job配置的Jenkins的内蒙古智慧园区test-后端view视图