因爲項目需要,需要給開發團隊在內網環境下搭建jenkins實現代碼的部署,基本上都能找到相應的內容,本人只是將搭建過程中用到的相關資料做了梳理,方便下次使用。
整體文章內容比較長,就打算拆分成若干篇文檔來完成這部分內容的描述,本篇是第一部分
官網服務包下載
到官網選擇自己需要的版本,官網提供中文版本說明頁面,可以自行挑選想要的版本
百度雲盤下載地址(2.176.2 版本):
鏈接:https://pan.baidu.com/s/1N0Fl_0QHd8YiCGmHpIaALA
提取碼:p99b
部署環境準備
介紹目前整體使用的軟件環境
運行環境
- jdk 1.8
- tomcat 8.5.45
- git 1.8.3.1
- jmeter 5.1.1
- ant 1.10.6
- maven3.1.0
- Jenkins 2.176.2
環境變量修改
#root賬號全局修改
vim /etc/profile
#只修改當前用戶的相關環節變量
vim ~/.bash_profile
export JAVA_HOME=/usr/java/jdk1.8.0_181
export MAVEN_HOME=/home/maven/apache-maven-3.1.0
export JENKINS_HOME=/home/jenkins/
export JMETER_HOME=/home/jmeter/apache-jmeter-5.1.1
export ANT_HOME=/home/ant/apache-ant-1.10.6
## 注意classpath裏需要配置jmeter的bin/ApacheJMeter.jar,否則運行的時候會報錯
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/bin/ApacheJMeter.jar
export PATH=$JAVA_HOME/bin/:$PATH:$MYSQL_HOME:$NEXUS_HOME/bin:$MAVEN_HOME/bin:$JMETER_HOME/bin/:$ANT_HOME/bin/;
#完成以後source生效
source /etc/profile 或者 source ~/.bash_profile
#完成以後可以使用echo 輸出變量來檢查,或者直接運行相應的服務檢查
服務器賬號權限處理過程
爲了確保jenkins可以正常使用, jenkins賬號需要擁有/home/ant、/home/jmeter、/home/maven 等目錄的相關讀寫權限,爲了方便,直接將這幾個目錄的所屬用戶設置成jenkins。規範嚴謹的運維做法是每一塊單獨設置賬號,這樣不會因爲某個權限的賬號誤操作影響其他用戶。
- 用root賬號給jenkins賦權/home 目錄所有權
- 使用jenkins賬號完成相關目錄的創建和文件拷貝
- 用root賬號收回/home 目錄所有權
修改文件目錄shell
#網上資料很多,不做贅述
chown 用戶名 -R 目錄名稱
-R 代表遞歸操作,否則只處理當前目錄
chmod 權限描述 -R 目錄名稱
-R 代表遞歸操作,否則只處理當前目錄
啓動jenkins(新手入門指引)
jenkins本質是一個war工程,利用tomcat運行,將war包拷貝到tomcat的webapps目錄下啓動即可。
啓動包括運行過程中jenkins會執行自動更新,可以不去理會
初始訪問
http://ip:端口/jenkins
根據提示找到默認admin密碼登錄
路徑是 %JMETER_HOME%/secrets/initialAdminPassword 如果未設置%JMETER_HOME%環境變量,該路徑就是tomcat的路徑
插件安裝選擇-跳過此處
jenkins會根據當前服務器的網絡情況來選擇出現的頁面,當前處於離線狀態,本次介紹的環境也是離線安裝的.代理配置部分就不做介紹。這裏的話先直接跳過
默認新建用戶-建議跳過
建議不要新建,因爲新建賬戶以後默認用新賬戶登陸,但是新的賬號沒有配置任何權限,會出現一些不必要的麻煩
實例配置-建議不修改默認
這一步是全局環境變量的一個配置信息確認,在其他組件使用過程中需要用到,此處就不做修改
新手指引完成
此時默認用admin完成了登陸可以做後續的處理
Manage Jenkins
設置頁面,很多內容涉及從這個入口進入,爲了簡化下文冗餘圖片,從這個入口進入的內容都不再單獨截圖展示
插件安裝
插件下載包以*.hpi形式,完成安裝後%JENKINS_HOME%/plugins會出現解壓的包,包名爲插件名稱,裏面都是jar和pom文件,同時部分hpi插件還會生成jpi形式的文件;如果存在hpi文件安裝了但是需要重啓生效,此時還會生成對應的.bak文件.,
批量更新
將下載的jpi文件拷貝到 %JENKINS_HOME%/plugins 目錄下,然後重啓服務,有兩種方式
- 軟件操作重啓 http://ip:端口/jenkins/updateCenter
- 重啓tomcat服務
批量方式部分hpi文件安裝成功後,會刪除相應的hpi文件,生成jpi文件。另外,因爲部分文件存在依賴關係,批量安裝的過程可能需要若干次重啓。
批量安裝存在問題
目前matrix-auth.hpi、matrix-project.hpi使用批量形式無法成功更新,只能手工更新。
手動更新
http://ip:端口/jenkins/pluginManager/advanced
Manage Jenkins ——> Manage Plugin
用戶管理(admin)
個人信息編輯
每個用戶都可以設置,基本信息,用戶姓名,描述,密碼等
新建用戶
http://ip:端口/jenkins/securityRealm/
Manage Jenkins ——> Manage Users
用戶權限設置
目前我的文檔裏使用的是經典的權限Manage and Assign Roles,基於角色的權限控制模型(很經典)。
- Privileges 權限信息,細化每一種操作對應的權限
- Roles 角色信息,針對角色屬性配置相應的權限
- User 用戶,選擇分配相應的角色,擁有角色所屬的權限
開啓Manage and Assign Roles權限控制
使用Manage and Assign Roles的配置除了需要裝插件以外,還需要在安全設置裏開啓。
http://ip:端口/jenkins/configureSecurity/
Manage Jenkins ——> Configure Global Security
權限配置詳情
http://ip:端口/jenkins/role-strategy/
從Manage Jenkins——>Manage and Assign Roles
Privileges
權限控制,這裏的Privileges部分jenkins已經預設好,沒有維護的頁面,只需要選擇即可,沒有單獨的維護頁面,在角色權限設置的時候選擇。
Manage Roles
角色&權限編輯頁面。按需選擇,可以設置不同的頁面權限。可以自行設置以後用配置的賬號登錄查看效果
Manage Roles——Global roles
全局權限設置web頁面部分基礎權限和針對jenkins job,這裏針對全部的job做的配置
admin對應的Project 權限就在這裏做配置,無需再到Assign Roles裏去設置
Manage Roles——Project roles
針對現有的jenkins job 來設置權限,比Global roles裏提供更加精細的job權限控制
Pattern可以支持模糊匹配, .*這個整體代表匹配的意思,不是單獨的*,此處截圖裏面是匹配以uat-爲前綴的job
Assign Roles
用戶&角色編輯頁面
Assign Roles——Global roles
對應Manage Roles的Global roles選擇
頁面上不針對不存在的用戶或者用戶組做添加的相關限制,但是會有錯誤提示
Assign Roles——Item roles
對應Manage Roles的Project roles選擇
頁面上不針對不存在的用戶或者用戶組做添加的相關限制,但是會有錯誤提示;同時,必須要選擇了role保存時才生效,否則保存不生效也不報錯
展示效果
deploy賬號
admin賬號