1.Jenkins能做什么
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
CI/CD概述:
CI/CD是一种在应用开发阶段实现自动化频繁
CI:持续集成(Continuous Integration)
持续集成(CI)可以帮助开发者更加方便地将代码更改合并到主分支。开发人员将改动的代码合并到主分支,系统
就会通过自动构建应用,并运行不同级别的自动化测试(通常是单元测试和集成测试)来验证这些更改,确保这些
更改没有对应用造成破坏。
CD(1):持续交付(Continuous Delivery)
CI 在完成了构建、单元测试和集成测试这些自动化流程后,持续交付可以自动把已验证的代码发布到企业自己的
存储库。持续交付旨在建立一个可随时将开发环境的功能部署到生产环境的代码库。
CD(2):持续部署(Continuous Deployment)
它是作为持续交付的延伸,持续部署可以自动将应用发布到生产环境。
CI和CD区别?
CI始终指持续集成,它属于开发人员的自动化流程。成功的CI意味着应用代码的更改会定期构建、测试并合并到
共享存储库中。
CD指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。
持续交付(第一种CD)通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitHub 或
容器注册表),然后由运维团队将其部署到实时生产环境中。
持续部署(另一种CD)指的是自动将开发人员的更改从存储库发布到生产环境,以供客户使用。
2.使用Jenkins
机器要求:
1.256MB 内存,建议大于512MB。
2.10GB的硬盘空间。
需要安装以下软件:
Java8(JRE或者JDK都可以)。
下载并运行Jenkins
1.下载 Jenkins.
https://www.jenkins.io/zh/download/
2.打开终端进入到下载目录.
运行命令 java -jar jenkins.war --httpPort=9090.
3.打开浏览器进入链接 http://localhost:9090.
1.浏览器访问http://localhost:9090并解锁Jenkins
2.安装推荐插件
3.创建管理员账号
3.Jenkins基础配置
1.由于要用到Maven编译和打包、配置Maven
2.安装Maven Integration插件,用于设置maven
3.配置Git和Jdk
4.安装Publish Over SSH,用于将打包后的包传递到服务器上。
5.配置SSH服务器
4.创建任务
基本配置完成后,接下来就是创建任务来完成自动化部署项目了。
脚本文件
#!/bin/bash
echo "JenkinsDemo1-0.0.1-SNAPSHOT.jar"
pid=`ps -ef | grep JenkinsDemo1-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
source /etc/profile; nohup java -jar JenkinsDemo1-0.0.1-SNAPSHOT.jar > 0511.log 2>&1 &
5.模拟测试
完成以上操作,JenKins手动部署已经完成。当我们在Jenkins界面点击构建时,具体的操作流程是这样的:
1.根据配置的Git地址下载项目。
2.根据配置的Maven下载依赖包。
3.根据配置的Jdk和Maven进行项目打包。
4.根据配置的SSH远程服务器,将包上传至远程服务器指定目录。
5.上传完成包后,执行配置的脚本文件项目部署。
至此JenKins手动部署已经完成,接下来研究自动部署。也就是代码推送到Git仓库,自动完成部署。
6.自动化部署
自动化流程是:将代码推送到Git仓库,通过的钩子函数webhook,触发一个URL请求,Jenkins通过此URL即可出发自动部署。
1.前提是你的Jenkins可以外网访问。
这边Git仓库用的是Gitee,其他GitHub、GitLib都是配置WebHook
配置完成WebHook后,推送代码是会触发请求URL完成自动构建。
注意:直接在浏览器通过Get方式访问触发URL没问题,Gitee在访问时通过POST访问,结果403错误。
解决方式,下载Gitee插件