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這樣的文件裏