26.1 jenkins介绍php
26.2 jenkins安装html
26.3 了解jenkinsjava
26.1 jenkins介绍node
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线linux
持续集成 (Continuous integration,简称CI)git
#每一个人负责不一样的模块,最后汇总到一块儿。这个过程叫集成。集成的频率可能会不少,好比今天集成一次,明天集成两次,这回设计到工做量。可能单独的模块测试没有问题,那集成到一块儿呢,也是须要测试。而持续集成就是咱们不停的持续的去作集成web
持续交付(Continuous delivery)docker
#1.咱们把这些代码(集成的模块)交给测试人员,让他们去测试。持续交付就是不停的集成不停的去交付shell
#2.咱们把成型的产品交付给须要人员(用户)数据库
持续部署(continuous deployment)
#运维人员须要把成型的代码部署到线上去,让他提供服务
因此能够理解为先交付在部署,也能够理解为先部署在交付。由于交付有两层含义,一个交付给测试,一个交付给用户
!!!由于以上咱们要把它搞成自动化,由于太频繁了(持续的),很容易出错。咱们就可让他在后台不断的去集成、不断地去交付、不断的去部署,而Jenkins就是一个持续集成、交付、部署的工具
参考 http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
1.官网 https://jenkins.io
#做为领先的开源自动化服务器,Jenkins提供数百个插件来支持构建,部署和自动化任何项目(php、java均可以)。 官网用很简单的一句话解释了jenkins
2.Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
3.Jenkins是一个工具集,提供了各类各样的插件
好比获取git上最新的代码
好比能够帮你编译源代码
好比能够调用自定义的shell脚本远程执行命令
官方文档 https://jenkins.io/doc/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26.2 jenkins安装
最低配置: 很多于256M内存,不低于1G磁盘,jdk版本>=8
1.安装jdk1.8
yum install -y java-1.8.0-openjdk
#java开发。图省事也能够yum一个openjdk。固然也能够根据以前学的去安装一个jdk
2.wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
# -O 在这里是定义输出文件名字。 若是不加这参数是直接把结果打印到屏幕上的。
3.rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
#安装jenkins的一个key
4.yum install -y jenkins
#到这,就会安装一个最新的稳定版
5.systemctl start jenkins
6.less /var/log/jenkins/jenkins.log //查询admin密码
访问 http://ip:8080/ 进行安装
注意:
也能够用docker拉一个jenkins,用容器去启动它
若是使用的是ubuntu就要去jenkins官方去看怎么安装。
[root@axinlinux-01 ~]# yum install -y java-1.8.0-openjdk
[root@axinlinux-01 ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
--2019-06-10 14:03:08-- https://pkg.jenkins.io/redhat/jenkins.repo 正在解析主机 pkg.jenkins.io (pkg.jenkins.io)... 52.202.51.185 正在链接 pkg.jenkins.io (pkg.jenkins.io)|52.202.51.185|:443... 已链接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:71 正在保存至: “/etc/yum.repos.d/jenkins.repo” 100%[=====================================================>] 71 --.-K/s 用时 0s 2019-06-10 14:03:18 (10.7 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [71/71])
[root@axinlinux-01 ~]# cat /etc/yum.repos.d/jenkins.repo #能够cat一下咱们指定输出的文件。也就是说上一步的wget就是生成了这个文件(在咱们-O指定的目录里)。不wget的话也能够直接编辑这个文件
[jenkins] name=Jenkins baseurl=http://pkg.jenkins.io/redhat gpgcheck=1
[root@axinlinux-01 ~]# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key #由于上面的配置文件gpgcheck=1,须要安装jenkins的key
[root@axinlinux-01 ~]#yum install -y jenkins
[root@axinlinux-01 ~]# systemctl start jenkins
[root@axinlinux-01 ~]# less /var/log/jenkins/jenkins.log #找到初始化的密码
Running from: /usr/lib/jenkins/jenkins.war 2019-06-10 07:50:23.695+0000 [id=1] WARNING winstone.Logger#logInternal: Parameter handlerCountMax is now deprecated 2019-06-10 07:50:23.696+0000 [id=1] WARNING winstone.Logger#logInternal: Parameter handlerCountMaxIdle is now deprecated 2019-06-10 07:50:24.079+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @1992ms to org.eclipse.jetty.util.log.JavaUtilLog 2019-06-10 07:50:24.804+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file 2019-06-10 07:50:33.147+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath 2019-06-10 07:50:33.329+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-9.4.z-SNAPSHOT; built: 2019-05-02T00:04:53.875Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 1.8.0_212-b04 2019-06-10 07:50:34.622+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet 2019-06-10 07:50:34.769+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0 2019-06-10 07:50:34.769+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults 2019-06-10 07:50:34.786+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms Jenkins home directory: /var/lib/jenkins found at: SystemProperties.getProperty("JENKINS_HOME") 2019-06-10 07:50:38.146+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started/
This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword #也能够到这去找
http://192.168.193.125:8080 #能够直接在浏览器访问了
以上用360浏览器不成功。使用谷歌浏览器
接下来,他会按照本身的推荐去安装插件。以后的过程看下张
26.3 了解jenkins
安装完插件就会建立用户
而后再回到linux服务器上
[root@axinlinux-01 ~]# vim /etc/sysconfig/jenkins #jenkins配置文件。如下简单讲解一下
JENKINS_HOME="/var/lib/jenkins" #home,就是jenkins程序放到了哪
JENKINS_JAVA_CMD="" #cmd,保持默认
JENKINS_USER="jenkins" #哪一个用户启动的
JENKINS_HOME="/var/lib/jenkins" ## Type: string ## Default: "" ## ServiceRestart: jenkins # # Java executable to run Jenkins # When left empty, we'll try to find the suitable Java. # JENKINS_JAVA_CMD="" ## Type: string ## Default: "jenkins" ## ServiceRestart: jenkins # "/etc/sysconfig/jenkins" 144L, 3116C
[root@axinlinux-01 ~]# cd /var/lib/jenkins/ #jenkins程序主目录
[root@axinlinux-01 jenkins]#
[root@axinlinux-01 jenkins]# ls
config.xml logs secrets hudson.model.UpdateCenter.xml nodeMonitors.xml updates identity.key.enc nodes userContent jenkins.install.UpgradeWizard.state plugins users jenkins.telemetry.Correlator.xml secret.key jobs secret.key.not-so-secret
[root@axinlinux-01 jenkins]# ls jobs/ #jobs目录就是浏览器上建立的任务。好比建立一个任务叫axin,在这个jobs目录下就会有一个axin的目录 常关注的!!
[root@axinlinux-01 jenkins]# ls logs/ #logs是日志相关
tasks
[root@axinlinux-01 jenkins]# ls nodes/ #多节点的时候用到的
[root@axinlinux-01 jenkins]# ls plugins/ #插件所在的目录。也是很是重要的目录。好比你先加一个插件,这个插件就存在这个目录里 常关注的!!
[root@axinlinux-01 jenkins]# ls secrets/ #密码密钥相关的
filepath-filters.d initialAdminPassword jenkins.model.Jenkins.crumbSalt master.key org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY slave-to-master-security-kill-switch whitelisted-callables.d
[root@axinlinux-01 jenkins]# ls updates/ #升级相关的
default.json hudson.tasks.Maven.MavenInstaller
[root@axinlinux-01 jenkins]# ls users/ #用户相关的,好比我建立了一个admin,就会存在这个目录下
admin_2141142232249431003 users.xml
若是,咱们想要备份jenkins。就能够直接把jenkins目录(/var/lib/jenkins)所有考走,到新的机器上就能够了。jenkins不须要借助数据库存储数据。他的配置所有存在了.xml这样的文件里