您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“jenkins怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“jenkins怎么用”這篇文章吧。
官網 https://jenkins.io
Jenkins是一個開源的、可擴展的持續集成、交付、部署(軟件/代碼的編譯、打包、部署)基于web界面的平臺。
jenkins的特點:
持續集成和持續交付
作為一個可擴展的自動化服務器,Jenkins可以用作簡單的CI服務器,或者變成任何項目的連續交付中心。
簡易安裝
Jenkins是一個獨立的基于Java的程序,可以立即運行,包含Windows,Mac OS X和其他類Unix操作系統。
配置簡單
Jenkins可以通過其網頁界面輕松設置和配置,其中包括即時錯誤檢查和內置幫助。
插件
通過更新中心中的1000多個插件,Jenkins集成了持續集成和持續交付工具鏈中幾乎所有的工具。
擴展
Jenkins 可以通過其插件架構進行擴展,從而為 Jenkins 可以做的事提供幾乎無限的可能性。
分布式
Jenkins可以輕松地在多臺機器上分配工作,幫助更快速地跨多個平臺推動構建,測試和部署。
Jenkins通常作為一個獨立的應用程序在其自己的流程中運行, 內置Java servlet 容器/應用程序服務器(Jetty)。
在安裝jenkins之前,需要確保已經安裝了java8以上(可以是Java運行環境JRE,也可以是Java開發工具包JDK)
[root@jin-10 ~]# yum install -y java-1.8.0-openjdk
下載jenkins的yum源:
[root@jin-10 ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
安裝jenkins的密鑰:
[root@jin-10 ~]# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
安裝jenkins:
[root@jin-10 ~]# yum install -y jenkins
啟動jenkins:
[root@jin-10 ~]# systemctl start jenkins [root@jin-10 ~]# ps aux|grep jenkins jenkins 9180 88.3 9.9 2336480 99024 ? Ssl 14:20 0:07 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/libjenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 root 9214 0.0 0.1 112724 996 pts/1 S+ 14:20 0:00 grep --color=auto jenkins
然后打開瀏覽器,并輸入本機IP:
管理員密碼可以在/var/lib/jenkins/secrets/initialAdminPassword文件里找到,也可以在jenkins日志文件中找到/var/log/jenkins/jenkins.log
輸入管理員密碼后,點擊“繼續”,進入jenkins的插件安裝界面,此處我們選擇“安裝推薦的插件”:
此時jenkins就會自動安裝需要安裝的插件:
然后創建管理員帳戶:
最后點擊“開始使用jenkins”:
此時會進入jenkins的默認界面:
[root@jin-10 ~]# rpm -ql jenkins /etc/init.d/jenkins #jenkins的開啟/關閉/重啟文件 /etc/logrotate.d/jenkins /etc/sysconfig/jenkins #配置文件 /usr/lib/jenkins #jenkins的主目錄 /usr/lib/jenkins/jenkins.war /usr/sbin/rcjenkins /var/cache/jenkins #jenkins的緩存文件 /var/lib/jenkins #安裝目錄 /var/log/jenkins #日志目錄
點擊“系統管理”→“插件管理”→“已安裝”, 檢查是否有“Git plugin”和“Publish Over SSH”兩個插件,如果沒有,則需點擊“可選插件”,找到它并安裝。
在Linux服務器上生成一對密鑰:
[root@jin-10 ~]# ssh-keygen -f/root/.ssh/jenkins Generating public/private rsa key pair. Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/jenkins. Your public key has been saved in /root/.ssh/jenkins.pub. The key fingerprint is: SHA256:fUC8UzU0Q8Ww5zL/zpHVMyMifRzmJ9GA0DoNQocy0Ak root@jin-10 The key's randomart image is: +---[RSA 2048]----+ | E+ o..++ .=O+.| | = o.o.o. o=.| | o . =o +...| | ++o+ oo.| | S.o+.*o=+| | ..o ++*| | o.| | .o| | .+| +----[SHA256]-----+
點擊“系統管理”→ “系統設置” 下拉,找到“Publish Over SSH”。
填寫下面的內容,測試是否能連接,然后點保存:
再新增一臺主機為jin-11
把jin-10上的公鑰內容粘貼到jin-11的.ssh/authorized.keys中
然后點新增:
測試連接成功后,點擊保存。
點擊“創建一個新任務”或“新建Item”:
再增加一臺服務器jin-11:
點擊“保存”。然后在主控制臺點擊“Build Now”:
此時就會自動開始構建,我們可以點擊控制臺查看輸出:
再在兩臺機器上查看是否成功:
可以看到,兩臺機器都執行成功。
如果github上的代碼進行了更新,只要在jenkins上再次點擊“立即構建”就可以發布更新。
依次點擊 系統管理 -> 系統設置 -> Jenkins Location 先設置系統管理員郵件地址,這里的郵件地址需要和后續要設置的發郵件地址一致。
然后往下拉,找到“E-mail Notification”那一欄 填寫SMTP服務器,此處我們以qq郵箱為例,SMTP服務器為smtp.qq.com,然后點右側的高級,打勾“Use SMTP Authentication”,填寫用戶名密碼,密碼為授權碼。如果使用的是ssl協議,還需要在這里打勾,smtp端口默認為25 可以打勾“通過發送測試郵件測試配置”,然后填寫接收郵件的地址,點右側的Test configuration:
可以看到,郵件是可以成功發送的。
保存設置后,回到剛才的test項目下,增加一個構建后操作:
保存后,測試下:
首先刪除上一次構建生成的文件,然后給test_jenkins目錄加上特殊權限,使這個目錄不能添加文件。
[root@jin-10 /tmp]# rm -rf test_jenkins/* [root@jin-10 /tmp]# chattr +i test_jenkins/
再點擊構建,查看控制臺:
可以看到,構建失敗,同時,郵件也已發出。
查看是否已收到郵件:
由于內置的郵件功能一般,滿足不了大部分的需求,所以一般我們都使用郵件插件Email Extension Plugin來發送郵件。
我們把內置的郵件通知關掉,再點擊 系統管理->系統設置->Extended E-mail Notification,配置如下:
再打開test項目,把原來的E-mail Notification刪除,增加構建后操作 Editable Email Notification:
點擊保存后,再選擇立即構建,查看控制臺輸出:
可以看到,無論構建成功與否,都會發送郵件。
JAVA項目是需要編譯和打包的,而編譯和打包用的都是maven,需要我們安裝maven插件。
在安裝maven插件之前,需要在主機上(jin-10)下載maven安裝包并解壓:
maven的下載地址:https://maven.apache.org/download
[root@jin-10 /usr/local/src]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz --2019-09-12 13:27:03-- http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz 正在解析主機 mirror.bit.edu.cn (mirror.bit.edu.cn)... 114.247.56.117, 2001:da8:204:1::22 正在連接 mirror.bit.edu.cn (mirror.bit.edu.cn)|114.247.56.117|:80... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:9142315 (8.7M) [application/octet-stream] 正在保存至: “apache-maven-3.6.2-bin.tar.gz” 100%[==============================================>] 9,142,315 344KB/s 用時 28s 2019-09-12 13:27:31 (321 KB/s) - 已保存 “apache-maven-3.6.2-bin.tar.gz” [9142315/9142315]) [root@jin-10 /usr/local/src]# tar zxvf apache-maven-3.6.2-bin.tar.gz
把解壓的目錄移動到/usr/local/下:
[root@jin-10 /usr/local/src]# mv apache-maven-3.6.2 /usr/local/
查看maven的相關信息:
[root@jin-10 /usr/local]# ./apache-maven-3.6.2/bin/mvn --version Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00) Maven home: /usr/local/apache-maven-3.6.2 Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.27.2.el7.x86_64", arch: "amd64", family: "unix"
依次選擇 系統管理-->全局工具配置-->新增Maven:
系統管理-->管理插件,查看Maven Integration 和 Deploy to container兩個插件是否已安裝,如沒有則安裝。
安裝完成后需重啟jenkins
systemctl restart jenkins
打開gitlab,并創建一個名為test_java的項目和空倉庫:
先給git作一個全局配置,設定用戶和郵箱 :
[root@jin-10 ~]# git config --global user.name "zjin" [root@jin-10 ~]# git config --global user.email "zjin@git.com"
克隆遠程倉庫到本地,然后寫入一個文件README.md并推送到遠程倉庫:
[root@jin-10 ~]# git clone git@192.168.154.10:root/test_java.git 正克隆到 'test_java'... The authenticity of host '192.168.154.10 (192.168.154.10)' can't be established. ECDSA key fingerprint is SHA256:WiJY7DRJy/UJcTtP5LjqnfYrqe9NTP+Rc8Fajy6dzBc. ECDSA key fingerprint is MD5:c3:18:f8:05:ec:89:3f:1b:27:89:61:2b:ec:a7:1e:47. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.154.10' (ECDSA) to the list of known hosts. warning: 您似乎克隆了一個空版本庫。 [root@jin-10 ~]# cd test_java/ [root@jin-10 ~/test_java]# echo 'Hello world!' >> README.md [root@jin-10 ~/test_java]# git add README.md [root@jin-10 ~/test_java]# git commit -m "add README.md" [master(根提交) f8d8431] add README.md 1 file changed, 1 insertion(+) create mode 100644 README.md [root@jin-10 ~/test_java]# git push -u origin master Counting objects: 3, done. Writing objects: 100% (3/3), 221 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.154.10:root/test_java.git * [new branch] master -> master 分支 master 設置為跟蹤來自 origin 的遠程分支 master。 [root@jin-10 ~/test_java]# echo 'test_java project' >> README.md [root@jin-10 ~/test_java]# git add README.md [root@jin-10 ~/test_java]# git commit -m "change README.md" [master 9b9f0bc] change README.md 1 file changed, 1 insertion(+) [root@jin-10 ~/test_java]# git push warning: push.default 未設置,它的默認值將會在 Git 2.0 由 'matching' 修改為 'simple'。若要不再顯示本信息并在其默認值改變后維持當前使用習慣, 進行如下設置: git config --global push.default matching 若要不再顯示本信息并從現在開始采用新的使用習慣,設置: git config --global push.default simple 參見 'git help config' 并查找 'push.default' 以獲取更多信息。 ('simple' 模式由 Git 1.7.11 版本引入。如果您有時要使用老版本的 Git, 為保持兼容,請用 'current' 代替 'simple' 模式) Counting objects: 5, done. Writing objects: 100% (3/3), 274 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.154.10:root/test_java.git f8d8431..9b9f0bc master -> master
查看遠程倉庫是否有這個文件:
下載地址:https://codeload.github.com/94fzb/zrlog/zip/master
下載后解壓:
[root@jin-10 ~]# unzip zrlog-master.zip
解壓后移動到test_java目錄下,然后推送到遠程倉庫:
[root@jin-10 ~]# mv zrlog-master/* test_java/ mv:是否覆蓋"test_java/README.md"? y [root@jin-10 ~]# cd !$ cd test_java/ [root@jin-10 ~/test_java]# ls bin data LICENSE mvnw.cmd README.en-us.md service common doc mvnw pom.xml README.md web [root@jin-10 ~/test_java]# git add . [root@jin-10 ~/test_java]# git commit -m "add zrlog" [root@jin-10 ~/test_java]# git push
查看是否推送成功到遠程倉庫:
下載并解壓:
[root@jin-10 /usr/local/src]# tar zxvf apache-tomcat-8.5.35.tar.gz [root@jin-10 /usr/local/src]# mv apache-tomcat-8.5.35 /usr/local/tomcat [root@jin-10 /usr/local/src]# cd !$ cd /usr/local/tomcat [root@jin-10 /usr/local/tomcat]# ls bin conf lib logs README.md RUNNING.txt webapps BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
修改文件 vim /usr/local/tomcat/conf/tomcat-users.xml,加入如下內容:
<role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user name="admin" password="123456" roles="admin,manager,admin-gui,admin-script,manager-gui, manager-script,manager-jmx,manager-status" />
啟動tomcat后會發現8080端口被占用,我們修改下端口,更改為8081:
再修改配置文件vim /usr/local/tomcat/webapps/manager/META-INF/context.xml,增加如下圖的IP段:
再重新啟動tomcat:
[root@jin-10 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@jin-10 ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@jin-10 ~]# netstat -lntp |grep 8081 tcp6 0 0 :::8081 :::* LISTEN 53513/java
在瀏覽器中打開,并點擊如圖所示位置,此時會提示我們輸入用戶名和密碼進行認證:
點擊確定后,就會進入Tomcat Web Application Manager管理界面:
返回jenkins的主界面,點擊新建,名稱自定義,選擇構建一個maven項目”,點擊確定。
源碼管理,選擇要構建的gitlab地址:
此時會報錯,需要配置相對應的key,點擊“Add”那里,然后選擇“jenkins”,類型選擇“SSH Username with private key”,username填寫"git",再粘貼jin-10主機的私鑰:
"build"欄填寫如下:
“構建后操作”,選擇“增加構建后操作”里的"Editable Email Notification",如圖所示:
構建后操作
點擊“增加構建后操作步驟”選擇“Deploy war/ear to a container”,“WAR/EAR files”填寫“**/*.war”,Contex path留空,Containers選擇Tomcat 8.x,Tomcat URL填寫要把war包發布到的那臺機器的url,如http://192.168.154.10:8080 Credentials這里需要點擊右側的Add,添加用戶名和密碼
繼續點擊“增加構建后操作步驟”選擇“Editable Email Notification” Project Recipient List,改為$DEFAULT_RECIPIENTS,493734218@ qq.com, 意思是增加額外一個收件人。
點擊右下角的“Advanced settings”,定位到“Triggers”,然后點擊下方的“Add Trigger”,可以增加發郵件的條件。
最后點左下角的“保存”。
之后就可以點左側的“立即構建”,然后可以查看對應任務的“控制臺輸出”。
以上是“jenkins怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。