jenkins

Jenkins 是常用的持续集成与自动化发布工具,适合把构建、测试、制品上传和部署脚本串成流水线。

启动

这里使用的是自己打包的镜像,打包地址。部署前需要确认数据目录、插件版本、JDK 版本和构建节点访问权限。

master
agent
#!/bin/bash
echo 'Asia/Shanghai' > /etc/timezone

port=8081
jenkins_version=2.492

docker kill jenkins-${port}
docker rm jenkins-${port}
docker run -d --name jenkins-${port} \
-m 4096m \
--network=host \
--restart=always \
--hostname $(hostname) \
-e LC_ALL="zh_CN.UTF-8" \
-e LANG="zh_CN.UTF-8" \
-e PORT="${port}" \
-e JENKINS_VERSION="${jenkins_version}" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/hosts:/etc/hosts:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v ./maven/data:/data/app/maven/data \
-v ./node/data:/data/app/node/data \
-v ./tools:/data/app/tools \
-v ./data-${port}:/data/app/jenkins/data \
registry.cn-hangzhou.aliyuncs.com/buyfakett/jenkins:${jenkins_version}

备份

备份脚本用于保存 Jenkins Home 中的任务、插件和关键配置。恢复时建议使用相同或接近的 Jenkins 版本,避免插件兼容性问题。

backup_jenkins.sh
#!/bin/bash

###############
# jenkins 备份
################

set -x

jenkins_data_dir=/data/app/jenkins/data-8081
jenkins_backup_dir=/data/bakjenkins/
jenkins_backup_file=backup_jenkins_$(date +%Y-%m-%d).zip

mkdir -p ${jenkins_backup_dir}
cd ${jenkins_data_dir} && zip -r ${jenkins_backup_file} *.xml jobs users plugins -x "*fileParameters*" && mv ${jenkins_backup_file} ${jenkins_backup_dir}