1.Jenkins簡介
Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。
持續集成是一種軟件開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過**自動化的構建(拉取代碼,編譯,發佈,自動化測試)**來驗證,從而儘快地發現集成錯誤。許多團隊發現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟件。
2.Jenkins軟件下載
下載 https://pkg.jenkins.io/redhat-stable/
Name | Last modified | Size |
---|---|---|
jenkins-2.190.1-1.1.noarch.rpm | 2019/09/25 | 74.4M |
jenkins-2.176.4-1.1.noarch.rpm | 2019/09/25 | 73.6M |
jenkins-2.176.3-1.1.noarch.rpm | 2019/08/28 | 73.6M |
jenkins-2.176.2-1.1.noarch.rpm | 2019/07/17 | 73.6M |
3.Jenkins 安裝
注意:在安裝Jenkins 前 Linux 服務器已經安裝好了 jdk-1.8 了,沒有安裝的要先安裝 jdk 後再安裝 Jenkins.
1.在存放jenkins-2.190.1-1.1.noarch.rpm
的文件夾下執行:
sudo rpm -ih jenkins-2.190.1-1.1.noarch.rpm
2.自動安裝完成之後:
/usr/lib/jenkins/jenkins.war WAR包 (jenkins官網)
/etc/sysconfig/jenkins 配置文件( 可以修改Jenkins的端口 )
/var/lib/jenkins/ 默認的JENKINS_HOME目錄(存放下載的插件,用戶初始密碼,用戶信息 ,新建的任務...)
/var/log/jenkins/jenkins.log Jenkins日誌文件
4.啓動Jenkins
直接在linux的終端上執行:
sudo service jenkins start // 啓動Jenkins
sudo service jenkins stop // 關閉Jenkins 。 http://localhost:8080/exit
sudo service jenkins reload // 重新加載配置信息Jenkins。 http://localhost:8080/reload
sudo service jenkins restart // 重啓Jenkins。 http://localhost:8080/restart
注意:
1.啓動之後最好把 /var/lib/jenkins/hudson.model.UpdateCenter.xml中的 https 改成 http 協議,不然後面插件可能下載會失敗
2.如果沒有安裝jdk的話啓動會報錯:Starting Jenkins bash: /usr/bin/java: No such file or directory
參考:https://blog.csdn.net/cai454692590/article/details/85918467
5.輸入密碼
第一打開Jenkins官網需要輸入密碼
密碼在 /var/lib/jenkins/secrets/initialAdminPassword
文件中
6.安裝插件(可選)
在Customize Jenkins 這一步可以選擇推薦安裝Install suggested plugins
,安裝的時間比較久,如果安裝失敗也沒關係,安裝失敗了可以直接跳過。後面根據自己需要再安裝對應的插件也是可以的。
以下是默認安裝的插件:
Folders :這個插件允許用戶創建“文件夾”組織工作。用戶可以自定義分類法(如按項目類型、組織類型)。文件夾是可嵌套文件夾內和您可以定義視圖。
OWASP Markup Formatter:插件有時也稱爲“AntiSamy標記格式化程序”或“安全HTML標記格式化程序”
Build Timeout : 這個插件允許您自動中止構建如果是耗時太長。 一旦超時,jenkins的行爲就好像一隻看不見的手已點擊“中止”按鈕。
Credentials Binding :允許將憑證綁定到環境變量,使用在各種各樣的構建步驟。
Timestamper : 將時間戳添加到控制檯輸出。
Workspace Cleanup: 插件可以刪除構建工作區
Ant :這個插件添加Apache Ant支持JenKins。此功能用於核心的一部分,但是詹金斯1.431,這是分裂成獨立的插件。
Gradle: 這個插件添加Gradle支持詹金斯。Gradle是作爲另一個工具來管理內部詹金斯(Ant或Maven一樣),包括支持自動安裝和提供了一個新的構建步驟來執行它的任務。
Pipeline: 一套插件讓你編排自動化、簡單的或複雜的管道流
GitHub Branch Source: GitHub分支源代碼插件允許您從一個或多個存儲庫結構GitHub用戶或組織創建一個新項目。你可以: 1) 從GitHub用戶或組織中所有或存儲庫的子集作爲工作導入工作區 2)導入單個存儲庫的分支從GitHub用戶或組織工作
Pipeline: GitHub Groovy Libraries :Groovy 允許管道從GitHub庫動態加載
Pipeline: Stage View: 當你有複雜的構建管道,是很有用的可以看到每個階段的進展。管道階段視圖插件包括一個擴展的可視化管道建設歷史的索引頁面流項目,下階段的觀點。
Git :這個插件添加Git支持
Subversion :這個插件添加 SVN 支持
SSH Slaves : 提供了一種方法來啓動代理通過SSH
Matrix Authorization Strategy :在使用這個插件詹金斯實現細粒度的訪問控制。 矩陣授權允許配置權限的最低水平,如開始新構建,配置項目,單獨或刪除他們。
PAM Authentication :增加了Unix可插入的身份驗證模塊(PAM)支持詹金斯。
LDAP:這個插件提供了另一種方法使用LDAP身份驗證的用戶。它可以用於LDAP服務器像Active Directory或OpenLDAP等等。支持配置可以找到這些線以下。
Email Extension : 這個插件添加 Email 支持
Mailer :這個插件允許您配置構建結果郵件通知。這是一個跑火的原始核心基礎郵件組件
Localization: Chinese (Simplified): 簡體中文本地化詹金斯核心和插件。
如果直接跳過這一步,什麼插件都不安裝就要自己手動安裝(不是很建議)
7.離線安裝Jenkins中的插件
離線安裝插件 :https://www.cnblogs.com/jimmy-xuli/p/9020825.html
第一步:在https://plugins.jenkins.io/這裏搜索對應的插件,然後在插件詳情的右上角點擊get past version來下載 xxxx.hpi 的插件文件
第二步:登錄Jenkins官網,在 <系統管理> 下的 <插件管理>中的<高級>選項中的<上傳插件>,選中下載好的xxx.hpi文件後點擊上傳即可。
第三步:如果安裝失敗後重新多次安裝就可以了或者安裝多個插件並且之間有依賴時要注意安裝順序。安裝完後重啓JenKins
8.在線安裝Jenkins中的插件
登錄Jenkins官網,在<插件管理>中心的<可選插件> 搜索對應的插件來安裝。
1.NodeJS 插件安裝和使用(搭建Node構建環境)
第一步:安裝NodeJS插件( NodeJS插件是給詹金斯提供了NodeJS & npm集成包)
第二步:linux服務安裝Node環境
第三步:在<全局工具配置> 中配置全局的Node環境 , 例如:/usr/nodejs 安裝路勁,不需要 /bin
第四步:在<新建任務>的 <構建環境> 選擇 Provide Node & npm bin/ folder to PATH
2.Publish Over SSH 插件安裝和使用(推送代碼到遠程服務器)
第二步: 點擊- 系統管理-系統設置-拉到最下面的Publish over SSH 選項 - 配置SSH Servers
配置SSH Servers:
Passphrase: 密碼(目標機器的密碼, 必填)
Path to key:key文件(私鑰)的路徑
SSH Server Name: 標識的名字(隨便你取什麼)
Hostname: 需要連接ssh的主機名或ip地址,此處填寫應用服務器IP(建議ip), 必填
Username: 用戶名 , 必填
Remote Directory: 遠程發佈目錄(自己選擇比如 /usr/local/xxx/webapps/ 或者 /usr/local/webserver/nginx 等等 ) , 必填
第三步:在<新建任務>的 <構建後操作> 選擇 Send build aitifacts over SSH
Name : 這裏是自定義的ssh遠程服務器,如果有多臺,點擊add post-build step 繼續添加
Source files : 源文件地址,相對地址 比如這個:/var/lib/jenkins/workspace/ZnflWeb/ 。直接寫成 dist/** 就相當於絕對路徑是:/var/lib/jenkins/workspace/ZnflWeb/dist/**
Remove prefix : 這裏寫 dist/ 指的是忽略前面的 dist/ 。拷貝到遠程服務器的文件直接就是dist文件夾下所有內容(拷貝時就不會包含dist目錄)
Remote directory : 遠程服務器用來保存文件(剛纔dist裏的所有文件)的目錄。直接寫成 ZnflWeb 就相當於遠程服務器的絕對路徑是: /usr/local/webserver/nginx /ZnflWeb/ 這裏是存放dist裏的所有文件。(這個文件夾不存在默認會自動新建,路基是相對於上面配的Remote Directory)
Exec command : 這裏直接寫 bash 腳本名稱 xx.sh 或者執行命令,也是遠程服務器的腳本
9.卸載 Jenkins
1.rpm 卸載
rpm -e jenkins
rpm -ql jenkins 檢查是否卸載成功
2、徹底刪除殘留文件:
find / -iname jenkins | xargs -n 1000 rm -rf