目录
一,jekins介绍1,什么是jekins?2,jekins可以为我们解决什么问题?3,什么是持续集成?4, 持续集成的操作流程二,jenkins部署1,jenkins基本配置部署(基于docker)1.1,docker下载镜像1. 2,启动jenkins容器,建立目录映射1.3,网站登录jenkins1.4,进行插件安装1.5,创建第一个管理员用户1.6,实例配置1.7,重启jenkins(已安装完成)2,手动安装插件三,全局工具处理四,配置SSH插件五,部署应用一,jekins介绍
1,什么是jekins?
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。也是通过java的独立程序,有一1731个插件。
2,jekins可以为我们解决什么问题?
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
3,什么是持续集成?
1,持续集成
指的是频繁的将代码集成到主干,有两个好处:
快速发现错误,每完成一点更新,就集成到主干,可以快速发展错误,定位错误也比较容易
防止分支大幅偏离主干,如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
“ 持续集成并不能消除bug,而是而是让他们非常容易发现和改正”
持续集成强调开发人员提交了新代码之后,立刻进行构建,(单元)测试,根据测试结果,我们可以确定新代码和原有代码能否正确集成在一起
2,持续交付(CD)
持续交付指的是频繁地将软件的新版本,交付给质量团队或者用户,以供评审,如果评审通过,代码就进入生产阶段
强调的是,不管怎么更新,软件是随时随地可以交付的
持续交付在持续集成的基础上,将集成后的代码部署到更贴近的真实运行环境的类生产环境中,
比如完成单元测试之后,可以把代码部署带连接数据库的staging环境中的测试,如果代码没有问题,可以继续手动部署到生产环境中。
3,持续部署(自动部署)
是持续交付的下一步,指的是代码通过评审之后,自动部署到生产环境
目标是代码在任何时刻都是可部署的,可进入生产阶段
持续部署的前提是能自动化完成测试,构建,部署等步骤
4, 持续集成的操作流程
根据持续集成的设计,代码从提交到生产,整个过程有以下几步
提交—>测试(第一轮)—>构建---->测试(第二轮)---->部署—>回滚
二,jenkins部署
1,jenkins基本配置部署(基于docker)
1.1,docker下载镜像
docker pull jenkins/jenkins:lts
1. 2,启动jenkins容器,建立目录映射
mkdir -p /mydata/jenkins_home //建立目录[root@ ~]# docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts //启动容器,进行端口映射与目录映射8e62f602d301dcc95004527433f27b02c6aaf17a542dcdb2cf70b15ba0ee889a####注意######此步如果遇到容器创建成功,但是启动失败的话,可能会是映射目录文件夹权限的问题修改权限:chown -R 1000 /mydata/jenkins_home/然后删除创建的容器,重新再创建并启动
1.3,网站登录jenkins
输入网址:http:20.0.0.30:8080 (此时做的服务器的ip是20.0.0.30)
如果遇到以下问题:
此时网站上的建议日志存储路径是错误的使用下面我们所启动Jenkins时的启动日志查看密码:
docker logs jenkins
具体存储密码在下面的路径:
[root@nodeapachenginx ~]# cd /mydata/jenkins_home/[root@nodeapachenginx jenkins_home]# ll总用量 36-rw-r--r--. 1 lihuihui lihuihui 1643 12月 11 17:10 config.xml-rw-r--r--. 1 lihuihui lihuihui 50 12月 11 17:07 copy_reference_file.log-rw-r--r--. 1 lihuihui lihuihui 156 12月 11 17:07 hudson.model.UpdateCenter.xml-rw-------. 1 lihuihui lihuihui 1712 12月 11 17:07 identity.key.enc-rw-r--r--. 1 lihuihui lihuihui 7 12月 11 17:07 jenkins.install.UpgradeWizard.state-rw-r--r--. 1 lihuihui lihuihui 171 12月 11 17:07 jenkins.telemetry.Correlator.xmldrwxr-xr-x. 2 lihuihui lihuihui 6 12月 11 17:07 jobsdrwxr-xr-x. 3 lihuihui lihuihui 19 12月 11 17:07 logs-rw-r--r--. 1 lihuihui lihuihui 907 12月 11 17:07 nodeMonitors.xmldrwxr-xr-x. 2 lihuihui lihuihui 6 12月 11 17:07 nodesdrwxr-xr-x. 2 lihuihui lihuihui 6 12月 11 17:07 plugins-rw-r--r--. 1 lihuihui lihuihui 64 12月 11 17:07 secret.key-rw-r--r--. 1 lihuihui lihuihui 0 12月 11 17:07 secret.key.not-so-secretdrwx------. 4 lihuihui lihuihui 265 12月 11 17:07 secretsdrwxr-xr-x. 2 lihuihui lihuihui 67 12月 11 17:10 updatesdrwxr-xr-x. 2 lihuihui lihuihui 24 12月 11 17:07 userContentdrwxr-xr-x. 3 lihuihui lihuihui 56 12月 11 17:07 usersdrwxr-xr-x. 11 lihuihui lihuihui 4096 12月 11 17:07 war[root@nodeapachenginx jenkins_home]# cd secrets/[root@nodeapachenginx secrets]# ll总用量 20drwxr-xr-x. 2 lihuihui lihuihui 29 12月 11 17:07 filepath-filters.d-rw-r-----. 1 lihuihui lihuihui 33 12月 11 17:07 initialAdminPassword-rw-r--r--. 1 lihuihui lihuihui 32 12月 11 17:07 jenkins.model.Jenkins.crumbSalt-rw-r--r--. 1 lihuihui lihuihui 256 12月 11 17:07 master.key-rw-r--r--. 1 lihuihui lihuihui 272 12月 11 17:07 org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY-rw-r--r--. 1 lihuihui lihuihui 5 12月 11 17:07 slave-to-master-security-kill-switchdrwxr-xr-x. 2 lihuihui lihuihui 26 12月 11 17:07 whitelisted-callables.d[root@nodeapachenginx secrets]# cat initialAdminPassword 5b81fe44bbb740eb8e60d224697f4f35[root@nodeapachenginx secrets]#
1.4,进行插件安装
自动连网安装
1.5,创建第一个管理员用户
密码123456
1.6,实例配置
地址就选择我们服务器所在的地址即可
http://20.0.0.30:8080/
1.7,重启jenkins(已安装完成)
使用刚才设置的用户登录
2,手动安装插件
选择可选插件,手动搜索插件
注意:遇到以下红的标记的插件表示不可用,与我们所用的jenkins版本不一致
然后后点击要安装的插件,选择直接安装即可(此时显示等待安装,蓝色成功,红色失败,失败后重新安装,与网络环境有关系)
注意:如果因为网络原因无法安装插件,可选择高级来上传插件
此时插件可以去官网下载插件 比如说阿里云插件管理的地方
三,全局工具处理
因为是java项目,所以运行环境是jdk
先配置jdk
再安装maven
四,配置SSH插件
用来连接服务器上面的jenkins
点击凭据
下一步
进入之后点击新增
五,部署应用
首先提交代码到git仓库,进行测试,构建,再进行第二次1测试
下载地址项目,