jenkins安裝使用方法

jenkins 介紹

Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工作。

作用

  1. 持續、自動地構建/測試軟件項目
  2. 監控一些定時執行的任務

特點

  1. 開源免費;
  2. 跨平臺,支持所有的平臺;
  3. master/slave支持分佈式的build;
  4. web形式的可視化的管理頁面;
  5. 安裝配置超級簡單;
  6. tips及時快速的幫助;
  7. 已有的200多個插件

jenkins安裝

注意:安裝jenkins時需要連接網絡

jenkins官網:https://jenkins.io

jenkins下載地址:https://jenkins.io/download/

1.rpm包安裝jenkins

centos7系統;防火牆和selinux處於關閉狀態;
jenkins基於java因此需要安裝java,要求至少在1.5以上

rpm包配置java環境

[root@localhost Desktop]# ls
jdk-8u171-linux-x64.rpm  jenkins-2.121.1-1.1.noarch.rpm
[root@localhost Desktop]# yum install -y jdk-8u171-linux-x64.rpm 
#測試java環境是否安裝完成
[root@localhost Desktop]# java 
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
[root@localhost Desktop]# java -version
java version "1.8.0_171"
[root@localhost Desktop]# yum install -y jenkins-2.121.1-1.1.noarch.rpm
[root@localhost Desktop]# systemctl start jenkins.service 
#安裝成功後,配置文件在/etc/sysconfig/jenkins下,默認端口爲8080
[root@localhost Desktop]# netstat -antpl | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      4640/java    

解壓包配置java環境

[root@localhost ~]#  wget  https://download.java.net/java/early_access/jdk8/b03/BCL/jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
[root@localhost ~]# tar -zxf jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
[root@localhost ~]# mv jdk1.8.0_202/ /usr/local/java
將java加入系統變量,編輯配置文件,在配置文件後面添加一下幾行
[root@localhost ~]# vi /etc/profile
export JAVA_HOME=/usr/local/java
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
加載配置文件,是配置文件生效
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_202-ea"
Java(TM) SE Runtime Environment (build 1.8.0_202-ea-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b03, mixed mode)
[root@localhost ~]# javac -version
javac 1.8.0_202-ea

2.war包安裝jenkins

1.直接運行war包

[root@localhost ~]# wget http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.138.3/jenkins.war
[root@localhost local]# java -jar jenkins.war --httpPort=8080
##放入後臺運行
[root@localhost local]# nohup java -jar jenkins.war >> /tmp/jenkins.log &

2.將war包放在tomcat的webapps目錄下,在該目錄下tomcat會自動生成jenkins目錄,瀏覽器訪問:http://localhost:80080/jenkins

[root@localhost ~]# mv jenkins.war /usr/local/tomcat/webapps/
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT

jenkins基於web界面操作

  1. 查詢root用戶登陸密碼,複製密碼粘貼到框框,點擊右下角的下一步:
[root@localhost Desktop]# cat /var/lib/jenkins/secrets/initialAdminPassword 
73f2e652c2604a5ea43325416c02654c

瀏覽器輸入ip:8080訪問
這裏寫圖片描述
2. 選擇第一個install suggested plugins
這裏寫圖片描述
3. 連接網絡在線安裝
這裏寫圖片描述
4. 創建第一個管理員用戶
這裏寫圖片描述如果不創建選擇save and continue旁邊的cintinue as admin繼續
5. 直接點擊save and finsh
這裏寫圖片描述
6. 點擊start using jenkins
這裏寫圖片描述
7. 輸入剛纔創建的管理員用戶以及密碼
這裏寫圖片描述
8. 登錄頁面
這裏寫圖片描述

jenkins詞彙表

  • agent 通常是一個機器或容器,它連接到Jenkins主機,並在主控器指導時執行任務。
  • artifact在Build或Pipeline 運行期間生成的不可變文件,該文件歸檔到Jenkins Master上以供用戶隨後檢索。
  • build 項目單次執行的結果.
  • cloud提供動態代理配置和分配的系統配置
  • downstream配置Pipeline或項目時被觸發作爲一個單獨的Pipeline或項目的執行的一部分。
  • executor用於執行由節點上的Pipeline或 項目定義的工作的插槽。節點可以具有零個或多個配置的執行器,其對應於在該節點上能夠執行多少併發項目或Pipeline。
  • fingfreprint考慮全局唯一性的哈希追蹤跨多個Pipeline或項目的工件或其他實體的使用 。
  • folder類似於文件系統上的文件夾的Pipeline和/或項目的組織容器。
  • item Web UI中的實體對應於Folder, Pipeline, or Project.
  • master存儲配置,加載插件以及爲Jenkins呈現各種用戶界面的中央協調過程。
  • node作爲Jenkins環境的一部分並能夠執行Pipeline或項目的機器。無論是Master還是Agents都被認爲是Nodes。
  • project用戶配置的Jenkins應該執行的工作描述,如構建軟件等。
  • pipeline用戶定義的連續輸送Pipeline模型
  • plugin與Jenkins Core分開提供的Jenkins功能擴展。
  • plublisher完成發佈報告,發送通知等的所有配置步驟後的構建的一部分。
  • stage是Pipeline的一部分,用於定義整個Pipeline的概念上不同的子集,例如:“構建”,“測試”和“部署”,許多插件用於可視化或呈現Jenkins Pipeline狀態/進度。
  • step單一任務從根本上講,指的是Jenkins 在Pipeline或項目中做了什麼。
  • trigger觸發新Pipeline運行或構建的標準。
  • update center託管插件和插件元數據的庫存,以便在Jenkins內部進行插件安裝。
  • upstream 配置的Pipeline或項目,其觸發單獨的Pipeline或項目作爲其執行的一部分。
  • workspaceNoede文件系統上的一次性目錄, 可以由Pipeline或項目完成工作。在 Build或 Pipeline運行完成後,工作區通常會保留原樣,除非在Jenkins Master上已經設置了特定的Workspace清理策略。

jenkins配置maven環境

1.到官網去下載maven的源碼包
在這裏插入圖片描述
apache-maven-3.6.0-bin.zip下載
2.源碼編譯安裝maven

[root@localhost ~]# wget http://101.44.1.124/files/6105000007791492/mirrors.hust.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.zip
[root@localhost ~]# tar -zxf apache-maven-3.6.0-bin.tar.gz
[root@localhost ~]# mv apache-maven-3.6.0 /usr/local/maven
[root@localhost ~]# vi /etc/profile
export M2_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
[root@localhost ~]# source /etc/profile
如果檢查配置文件沒錯,多執行幾次以上命令,將配置文件導入系統變量
[root@localhost ~]# mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_202-ea, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

3.jenkins設置maven安裝路徑
系統管理—>全局工具配置---->maven選項配置
在這裏插入圖片描述
設置第一項Maven Configuration:
在這裏插入圖片描述
找到maven選項,配置maven路徑
在這裏插入圖片描述
4.maven全局配置
系統管理—系統設置—找到maven設置變量
在這裏插入圖片描述
5.jenkins安裝maven插件
a.如果創建新的任務,卻沒有構建一個maven項目的選項那就是缺少插件
b.系統管理—>插件管理---->avaliable選項—>查找Maven插件
在這裏插入圖片描述

一般配置(general)

GitHub 項目
配置響應的url和需要顯示的名稱

構建時鎖住文件
This build requires lockable resources

節流構建
Throttle builds:通過設置時間段內允許併發的次數來實現構建的控制

丟棄舊的構建
設置構建歷史的保存策略

參數化構建過程
可以配置不通的參數,便於在構建時引用這些參數

關閉構建項目
Disable this project

必要時進行併發構建
Execute concurrent builds if necessary:

限制項目運行的節點服務器
Restrict where this project can be run

觸發器(Build Triggers)

其他工程構建後觸發
Build after other projects are built
可以輸入多個依賴的jobs,多個job中間用逗號隔開
在這裏插入圖片描述

  • Trigger only if build is stable:只有在構建穩定時才觸發
  • Trigger even if the build is unstable:即使構建不穩定,也要觸發
  • Trigger even if the build fails:即使構建失敗,也要觸發
    如果項目不存在該選項,可能是下面未設置:
    在這裏插入圖片描述
    觸發遠程構建
    Trigger builds remotely
    在這裏插入圖片描述
    測試實驗:
    遠程構建的觸發url格式如下:
    http://{IP}:{端口號}/jenkins/buildByToken/build?job={Job名稱}&token={Token}
    http://192.168.126.129:8080/jenkins/buildByToken/build?job=first&token=TOKEN_NAME
    在這裏插入圖片描述
    點擊保存任務,打開另外的瀏覽器訪問觸發的url會觸發任務的構建
    在這裏插入圖片描述
    在這裏插入圖片描述
    查看控制檯輸出結果:
    在這裏插入圖片描述
    配置gitlab的whook觸發條件,配置前需要安裝一下插件:
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    切換到gitlab界面去配置whook觸發:結合另外一項配置
    當遠程倉庫提交時構建
    Build when a change is pushed to GitLab. GitLab CI Service URL: XXXXX
  • Enabled GitLab triggers :啓用GitLab觸發器
  • Push Events:push 事件
  • Opened Merge Request Events:打開合併請求事件
  • Accepted Merge Request Events :接受合併請求事件
  • Closed Merge Request Events :關閉合並請求事件
  • Rebuild open Merge Requests :重建開放合併請求
  • Comments :評論
  • Comment for triggering a build:註釋觸發構建

gitlab找到需要構建的項目配置wehook選項:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
點擊test hook進行gitlab的web hook觸發條件
在這裏插入圖片描述
代表url條件已經觸發
在這裏插入圖片描述
查看jenkins的任務構建
在這裏插入圖片描述
定時構建
build periodically
例如:H/30 * * * * 沒半個小時構建一次
第一顆表示分鐘,取值0~59
第二顆
表示小時,取值0~23
第三顆表示一個月的第幾天,取值1~31
第四顆
表示第幾月,取值1~12
第五顆*表示一週中的第幾天,取值0~7,其中0和7代表的都是週日
在這裏插入圖片描述
github鉤子觸發gitscm輪詢
GitHub hook trigger for GITScm polling

poll scm
輪詢scm:定時檢查源碼變更,如果有更新就checkout最新代碼下來,然後執行構建動作。
在這裏插入圖片描述
時間表:方框裏面需要填寫的
Ignore post-commit hooks(可選項):忽略post-commit鉤子

構建環境

構建開始前刪除工作區
Delete workspace before build starts:

使用祕密文本或者文件
Use secret text(s) or file(s)

構建啓動前,通過ssh發送文件或者執行命令
Send files or execute commands over SSH before the build starts:

構建啓動之後,通過ssh發送文件或者命令
Send files or execute commands over SSH after the build runs

構建卡住終止任務
Abort the build if it’s stuck

向控制檯輸出添加時間戳
Add timestamps to the Console Output

jenkins配置連接遠程服務器

1.安裝插件
我這裏已經安裝
在這裏插入圖片描述
2.配置遠程ssh環境
系統管理---->系統設置—>Publish over SSH
免密鑰登陸配置參考
在這裏插入圖片描述
點擊add添加ssh服務器,進行配置如下:
在這裏插入圖片描述
點擊test configuration測試配置的ssh 遠程連接是否成功,成功會顯示success!

構建maven項目部署遠程服務器

1.創建maven項目
我這裏之前已經創建過該項目
在這裏插入圖片描述
2.配置maven項目
在這裏插入圖片描述
branch specifter */matser是遠程倉庫項目的分支

在這裏插入圖片描述
測試:
在這裏插入圖片描述

[root@work tmp]# pwd
/tmp
[root@work tmp]# ls
hello
[root@work tmp]# cd hello/
[root@work hello]# ls
pk-1.0-SNAPSHOT.war

jenkins部署war包到tomcat服務器

1.創建maven項目
2.安裝以下插件:否則在構建後後操作無法找到部署war包的選項
在這裏插入圖片描述
3.配置tomcat使用管理員權限(用戶和密碼)登陸部署war包。
具體配置方法可以參考文章
4.選擇構建後操作—添加構建步驟—選擇部署war包到容器

在這裏插入圖片描述
在這裏插入圖片描述
5.點擊保存開始構建
控制檯輸出相關信息:
在這裏插入圖片描述
瀏覽器進行訪問:
在這裏插入圖片描述

jenkins忘記 管理員密碼

[root@localhost jenkins]# pwd
/var/lib/jenkins
###編輯文件config.xml,刪除以下代碼:
 <useSecurity>true</useSecurity>
  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
    <denyAnonymousReadAccess>true</denyAnonymousReadAccess>
  </authorizationStrategy>
  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
    <disableSignup>true</disableSignup>
    <enableCaptcha>false</enableCaptcha>
  </securityRealm>
###重新啓動jenkins服務
[root@localhost jenkins]# systemctl restart jenkins.service 

瀏覽器重新訪問jenkins頁面:
在系統管理選擇全局安全配置
這裏寫圖片描述
選擇啓用安全和jenkins專用用戶數據庫,點擊保存
這裏寫圖片描述
在系統管理裏面含有管理用戶:
這裏寫圖片描述
往下拉看到密碼,然後修改密碼即可,保存
這裏寫圖片描述
點擊右上角登錄重新登錄用戶
這裏寫圖片描述
這裏寫圖片描述

再次安裝jenkins時遇見的報錯

AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless

java.lang.UnsatisfiedLinkError: /usr/local/java/jre/lib/amd64/libawt_xawt.so: libXext.so.6: cannot open shared object file: No such file or directory
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
............................................................

報錯原因是libXext.so.6找不見插件,解決辦法如下:

[root@localhost ~]# yum list available | grep libXext 
libXext.i686                              1.3.3-3.el7                    base   
libXext.x86_64                            1.3.3-3.el7                    base   
libXext-devel.i686                        1.3.3-3.el7                    base   
libXext-devel.x86_64                      1.3.3-3.el7                    base 
[root@localhost ~]# yum install -y libXext.x86_64 libXext-devel.x86_64

重新刷新頁面接着遇見如下幾個報錯,解決辦法同上:

java.lang.UnsatisfiedLinkError: /usr/local/java/jre/lib/amd64/libawt_xawt.so: libXrender.so.6: cannot open shared object file: No such file or directory

java.lang.UnsatisfiedLinkError: /usr/local/java/jre/lib/amd64/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

安裝插件過程中出現一個錯誤: No such plugin: cloudbees-folder
解決辦法如下:
下載需要的插件:jenkisn缺失的插件
將插件放在jenkins的WEB-INF/detached-plugins/目錄下,重啓tomcat

 cp cloudbees-folder.hpi /usr/local/tomcat/webapps/jenkins/WEB-INF/detached-plugins/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章