Jenkins-安装和运维
下载jar包运行,配置JENKINS_HOME(推荐)
做好备份,还原,一套打包带走
- 安装jdk1.8
- 下载jenkis war包
- 修改jenkins启动命令, 数据可迁移
- 增加linux启停脚本
- 增加定时备份脚本
- 定时备份
- 项目配置
1. 安装jdk1.8
略
2. 下载jenkis war包
略
3. 修改jenkins启动命令, 数据可迁移
启停脚本
制作jenkins的linus服务service
Linux 之centos7 制作服务自启动systemd_操作系统_xiaojun11的专栏-CSDN博客
/usr/lib/systemd/system目录下新建一个 jenkins.service的文件
代码语言:javascript复制[UNIT]
Description=Media wanager Service
After=network.target
[Service]
Type=forking
# 启动脚本
ExecStart=/root/jenkins/start.sh start
# 停止脚本
ExecStop=/root/jenkins/start.sh stop
PrivateTmp=True
[Install]
WantedBy=multi-user.target
启动脚本
代码语言:javascript复制#!/bin/bash
CMD=$1
JENKINS_HOME=/root/jenkins/data
export JENKINS_HOME
case $CMD in
start)
nohup /root/java/jdk1.8/bin/java -jar /root/jenkins/jenkins.war --config=/root/jenkins/config --webroot=/root/jenkins/home --pluginroot=/root/jenkins/plugin --httpPort=28080 > /root/jenkins/info.log &
echo $! > /root/jenkins/pid
;;
stop)
pid=`cat /root/jenkins/pid`
kill -9 $pid
;;
*)
echo "Usage: start start | stop .Or use systemctl start | stop | restart MediaManager.service "
;;
esac
使用service
代码语言:javascript复制# 开机自启
systemctl enable jenkins
# 查看状态
systemctl status jenkins
# 启动jenkins
systemctl start jenkins
# 停止jenkins
systemctl stop jenkins
5. 增加定时备份脚本
代码语言:javascript复制#!/bin/bash
# 备份jenkins脚本
# jenkins 数据目录
home=/root/jenkins
# jenkins 备份目录
backup_dir=/root/backup
# 时间
date=`date %Y%m%d`
zip -r ${backup_dir}/jenkins_backup_${date}.zip ${home}
6. 定时备份
代码语言:javascript复制# 编辑crontab
crontab -e
# 查看crontab
crontab -l
crontab -e
5 0 1 * * -u root /root/jenkins/backup.sh
插件
- Git Parameter 这是一个参数构建扩展,可以在构建的时候选择git的某一个分支来构建服务。
- Docker
- GitLab 配置Gitlab的相关认证,同时也支持GitLab的Webhook触发。
- SonarQube Scanner 支持SonarQube的代码扫描。
- Publish Over SSH 通过SSH拷贝文件到目标机器,同时可以在目标机器上执行脚本
- Job Generator 定义一个参数化的模板,通过这个模板快速的在 Jenkins 上创建出任务。
- Join 这也是一个触发job的插件,亮点在于它触发job的条件是等待所有当前job的下游的job都完成才会发生。
- Build Pipeline 这个插件提供一个构建流水线的视图。同时它提供了一个任务的手动触发器。
- TestNG Results 导出TestNG的测试报告。
- JaCoCo 生成测试覆盖率的报告。
- JUnit 展示JUnit单元测试报告。
- Workspace Cleanup 每次build之前删除workspace目录下指定的文件
- Role-based Authorization Strategy 用户角色 给Jenkins用户权限管理添加了角色组。
- Matrix Authorization Strategy Plugin 为每个项目设置用户权限
- Disk Usage 对Jenkins节点服务器磁盘的监控。
- Monitoring监控 监控Jenkins节点的CPU、系统负载、平均响应时间和内存使用。
项目配置
maven
maven-surefire-plugin
maven-archetype-plugin
maven-compiler-plugin
maven-source-plugin
jacoco-maven-plugin
maven-antrun-plugin
maven-checkstyle-plugin checkstyle代码风格检测
check-staging-properties-maven-plugin properties的配置文件一致检查
jenkins集群
使用ssh配置集群即可
- master生成rsa秘钥
- master复制秘钥到slave
- jenkins配置ssh方式和slave节点通信
ssh-keygen -t rsa -C "suwenguang@cainiao.com" -b 4096
Jenkins 集群搭建 - 云 社区 - 腾讯云
查看jenkins的参数选项
代码语言:javascript复制# 查看参数选项
java -jar jenkins.war.jar --help
java -jar jenkins.war --config=/root/jenkins/config --webroot=/root/jenkins/home --pluginroot=/root/jenkins/plugin --httpPort=28080
yum(不推荐)
RedHat Repository for Jenkins
代码语言:javascript复制sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
# 启动jenkins 指定插件路径,指定端口
java -jar jenkins.war.jar --webroot=/root/suveng/jenkins/home --pluginroot=/root/suveng/jenkins/plugin --httpPort=13880
docker安装(不推荐)
安装 Jenkins
Jenkins有点特殊. Jenkins如果用来做持续集成,需要本地一些语言的环境,但是如果是用来打包docker镜像,则简单的多, 如果是springboot打包成docker,则需要maven和java的配置 这个时候需要挂载本机的一些开发环境. 比如挂载jdk,挂载maven,这里不记录
代码语言:javascript复制docker run -u root --name jenkins
-d
-p 9998:8080
-p 9999:50000
-v /data/docker/jenkins/jenkins-data:/var/jenkins_home
-v /usr/local:/env
-v /var/run/docker.sock:/var/run/docker.sock
jenkinsci/blueocean
资料
maven.test.jvmargs 介绍:
- https://blog.csdn.net/xeseo/article/details/9467119
jenkins 钉钉插件:
- https://www.jianshu.com/p/9e72c79a2f78
- https://jenkinsci.github.io/dingtalk-plugin/
jenkins jacoco插件:
https://www.jianshu.com/p/0ecedb072c69
19. crontab 定时任务 — Linux Tools Quick Tutorial
晒一晒Jenkins那些常用插件 - 简书
pipeline语法: https://blog.csdn.net/u011541946/article/details/83278214