Jenkins-安装和运维

2021-12-06 13:11:29 浏览数 (1)

Jenkins-安装和运维

下载jar包运行,配置JENKINS_HOME(推荐)

做好备份,还原,一套打包带走

  1. 安装jdk1.8
  2. 下载jenkis war包
  3. 修改jenkins启动命令, 数据可迁移
  4. 增加linux启停脚本
  5. 增加定时备份脚本
  6. 定时备份
  7. 项目配置

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

代码语言:javascript复制
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配置集群即可

  1. master生成rsa秘钥
  2. master复制秘钥到slave
  3. jenkins配置ssh方式和slave节点通信
代码语言:javascript复制
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

0 人点赞