做医疗科普的网站,打赏网站怎么建设,部门网站建设的工作领导小组,在线crm平台Devops 实践 基本概念jenkins实践安装jenkins仓库环境准备代码环境准备第一次构建持续集成持续部署集成插件 优秀实践心得体会 参考 摘要#xff1a;本文首先将介绍一些基本概念#xff0c;包括Devops#xff0c;CI/CD等#xff0c;然后基于知名开源CI/CD工具jenkins进行实… Devops 实践 基本概念jenkins实践安装jenkins仓库环境准备代码环境准备第一次构建持续集成持续部署集成插件 优秀实践心得体会 参考 摘要本文首先将介绍一些基本概念包括DevopsCI/CD等然后基于知名开源CI/CD工具jenkins进行实战。最后本文将简单介绍一些业界关于这方面的优秀实践同时给出自己的一些见解和思路。 关键词 DevopsCI/CDjenkins质量门禁 基本概念
devops devops这个词前半部分的dev是development的缩写意指开发ops是operations的缩写意指运维所以devops一般指一种软件开发思想开发团队和运维团队要高效地协作、沟通和配合或者干脆就变成一个团队既是开发又是运维。CI/CD CI/CD是英文单词continuous integration/continuous deployment的缩写也就是指持续集成持续部署也就是说要加快交付的速度能够支持频繁的交付在这种情况下部署往往需要自动化部署。质量门禁 基于以上的一些概念业界的一些研发平台会将开发测试发布抽象成一条流水线一次代码上的变更经过这些阶段完成交付。在流水线上可以有很多的节点比如在发布中可以有编译节点、容器打包节点等等可以在一些阶段插入一些卡点节点通过预先定义的规则如果某次代码变更在一些测试覆盖率、单元测试覆盖率上、流量回放diff率等指标如果达不到预先定义的阈值可以对这些变更进行拦截从而起到阻止有一定风险的变更上线这就是质量门禁。
jenkins实践
jenkins是知名的开源CI/CD的工具本文介绍如何使用jenkins来自动持续部署和质量把关。
安装jenkins
笔者所使用的实验平台为ubuntu 20.04。
安装好java环境命令如下
sudo apt update sudo apt install openjdk-17-jdk通过java --version验证是否安装成功安装成功输出如下 2. jenkins官网下载war包 笔者下载的是最新的LTS版本下载地址 运行是下载该war且运行该war包的命令如下
wget https://get.jenkins.io/war-stable/2.479.2/jenkins.war java -jar jenkins.war --httpPort8080运行成功后输出中提示 也就是说通过访问http://127.0.0.1:8080来访问jenkins然后管理员的密码可以在某个文件中找到访问这个网址如下图 输入密码进入如下界面 选择安装建议的插件因为jenkins只是一个平台或者说是一个空的流水线真正发挥作用的是流水线上的节点也就是这里所说的插件。安装大概需要十分钟左右的时间然后设置账户界面要求设置一个管理员账户这里可以选择跳过继续使用刚才的admin账户。 同理后面的一些设置也可以跳过最终完成所有配置。如下
仓库环境准备
我们希望达成的一个目标就是向代码仓库的分支提交代码时能够自动发起编译测试构建部署等流程这样就达到了持续集成持续部署的目的。在jinkens平台上可以连接git仓库包括githubgitee和直接搭建的gitlab等等。由于jinkens部署在内网而这些多在外网上因此需要在本地搭建一个简单的git代码仓库。我们选择Gogs这种轻量级的代码仓库作为工具以下为如何安装Gogs的过程 首先下载安装包和解压命令为 wget https://dl.gogs.io/0.13.0/gogs_0.13.0_linux_amd64.tar.gz tar -zxvf gogs_0.13.0_linux_amd64.tar.gz。 然后输入命令cd gogs nohup ./gogs web /dev/null 21 后台启动访问http://127.0.0.1:3000/进入安装配置界面如下 数据库选择sqlite3然后进入如下界面 完成注册后用该账户登录来到如下界面直接创建一个仓库
代码环境准备
为了和后面实践的一些插件保持一致这里生成一个demo形式的maven管理的sprint-boot项目资源连接。这是一个简单的spring boot项目定义一个ping接口返回pong后续通过不断新增提交代码来触发jinkens的自动构建。 现在将这个项目的代码推送到gogs中在git push origin master中回提示输入用户名及密码就是刚才注册的。 提交成功示意图如下
第一次构建
回到jinkens的控制台进行源代码相关的配置如下图配置为gogs仓库的地址和访问凭证。 然后点击build now进行第一次构建如下图 点击查看第一次构建的详情如下 可以看到只是拉取了代码要真正构建需要直接写脚本来构建运行如下图在配置中增加构建步骤选择执行脚本然后脚本里只有一行命令通过maven启动这个sprint-boot项目。保存后再次构建。 第一次构建成功也确实可以正常访问相关接口。
持续集成持续部署
要想达到持续集成持续部署的目的一般要配置触发器能够让jinkens自动地开始部署。一般有三种方式一个是关联其他项目如果其他项目完成构建那么本项目开始构建一个是定时构建还有一个可能也是最常用的一个就是代码仓库有更新就构建。我们以最后一个进行相关的演示。 首先需要安装如下插件 回到项目的配置页面配置构建触发器如下图可以看到是需要代码仓库在代码更新时主动调用相关接口进行触发。 然后配置gogs首先找到gogs的安装目录进入custom/conf文件夹修改app.ini文件如下图增加一个LOCAL_NETWORK_ALLOWLIST配置其中ip地址是jinkens所在的地址。 先重新启动然后进入一下完整验证配置是否生效 然后在测试仓库中添加钩子注意如果添加失败请确保payload url的ip地址在上面配置的local network allowlist中。 然后更新代码增加一个接口提交到代码仓库发现jinkens自动发起了一次构建如下图所示 至此达到了持续集成持续部署的目的。
集成插件
jinkens只是一个平台真正有用的还是其内部丰富的插件。在以上的实践中jinkens这条流水线只有一些编译、构建和部署节点但其实还可以增加更多的节点比如一些测试节点、门禁卡点节点、代码漏洞检查节点、发布周知节点等等。下面我们通过安装使用更多的插件来丰富我们这条自动发布构建流水线的功能。 首先是安装Allure自动化测试报告插件如下图。 然后对allure插件进行相关配置 最后对构建项目进行配置在构建完项目后选择allure report。
优秀实践
心得体会
参考
美团到店终端从标准化到数字化的演进之路持续集成09–Jenkins配置Sonar代码漏洞扫描工具Jenkins官网CI/CD 实践总结