CI/CD:Jenkins入门,流水线和插件使用
最近,我们使用的开发服务器被回收了,换了一台新的服务器,CI/CD平台需要重新搭建。 我的运维能力一直薄弱,所以借此机会学习了一番如何使用Jenkins进行持续集成开发和部署,实践并踩了一些坑,在此记录一下。
引言 假如没有CI/CD平台想要部署到服务器,我们需要本地打包上传至服务器,或上传源码至服务器上打包,覆盖原来的安装包,进行部署。
当所需要部署的只是一个jar包或者只是一个服务,并且代码不经常更新,这样是可以的。但是开发过程中,更常见的是代码经常迭代更新,并且项目中有多个组件。 这带来了大量的机械重复劳动,打包、上传、构建、测试、发布,如果都由人工操作,很容易混淆代码版本、不易跟踪异常。如果代码有多个分支版本,需要应对多个测试/生产环境,劳动量会指数级别飙升,到人无法承受的地步。 而Jenkins提供了解决方案,使我们可以一劳永逸地应对部署。
Jenkins可以做什么它的流水线操作正如其名,将机械的工作流程提炼出来,重复执行,可以定义成定时操作,可以定义触发条件,可以填写参数,可以写入控制语句。 代替我们完成: 1、拉取源码至服务器(与代码管理平台直接集成,可集成gitlab/svn等) 2、打包源码(可选择使用maven、nodeJS等等打包工具) 3、测试 4、准备环境 5、发布 总之,一切需要的工作,都可以定义成流水线里的一个流程。
Jenkins搭建与配置本次安装的Jenkins是Jenkins中文社区提供的中文镜像版,不仅做了汉化,Jenkins可以灵活使用的1500多个插件也提供了国内的镜像地址,安装只需要一条docker指令。
1、环境准备1、查看系统版本,预留空间和Jenkins运行端口 2、安装docker
2、快速开始 创建容器docker run -d -v /jenkins_home:/var/jenkins_home -u 0 -p 8786:8080 --name jenkins jenkinszh/jenkins-zh
指令解释: -d: 后台运行 -v:将Jenkins主目录挂在出来 -u 0 :将系统用户传入(0为root用户),避免一些权限问题 -p :指定映射到宿主机的端口,如果8786端口被占用也可以使用其他端口 --name:指定运行容器名称为jenkins jenkinszh/jenkins-zh Jenkins中文社区提供的镜像名称,docker会检测本地有无该镜像,如果没有,会自动拉取。
docker logs jenkins 查看日志运行之后,访问宿主机ip+ 8786(指定端口),看到Jenkins初始页面。
Jenkins创建成功!
3、初始化稍微等待之后,自动跳转至管理员登录页面。
创建容器时我们已经将该目录挂载到宿主机了,所以可以直接访问映射出的文件: cat /jenkins_home/secrets/initialAdminPassword
也可以使用docker exec指令访问容器内文件: docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword 输入密码,登陆进入新手入门页面。 选择安装推荐插件。 如果有安装失败的,可以点击继续,直接跳过,进入Jenkins管理页面,等待后续使用时再进行安装。
4、新建