Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)
持續集成及Jenkins介紹和安裝配置
- 持續集成及Jenkins介紹
- 軟件開發生命周期
- 持續集成
- 持續集成的組成要素
- 持續集成的好處
- Jenkins介紹
- Jenkins安裝和持續集成環境配置
- Gitlab代碼托管服務器安裝
- Gitlab添加組、創建用戶、創建項目
- 源碼上傳到Gitlab倉庫
- Jenkins安裝
- Jenkins插件管理
- Jenkins用戶權限管理
- Jenkins憑證管理
- 配置憑據 將gitlab上面的代碼拉取到jenkins
- 創建用戶密碼類型憑證
- 創建SSH密鑰類型憑據
- Maven安裝及配置
- 全局工具配置關聯JDK和Maven
- 添加Jenkins全局變量
- 測試Maven是否配置成功
- Tomcat安裝和配置
- 配置Tomcat用戶角色權限
持續集成及Jenkins介紹
軟件開發生命周期
軟件開發生命周期又叫做SDLC(Software Development Life Cycle),它是集合了計劃、開發、測試和部署過程的集合
Requirement Analysis(需求分析)
- 這是生命周期的第一階段,根據項目需求,團隊執行一個可行性計劃的分析。
- 項目需求可能是公司內部或者客戶提出的。這階段主要是對信息的收集,也有可能是對現有項目的改善和重新做一個新的項目。
- 還要分析項目的預算多長,可以從哪方面受益及布局,這也是項目創建的目標。
Design(設計)
- 第二階段就是設計階段,系統架構和滿意狀態(就是要做成什么樣子,有什么功能),和創建一個項目計劃。計劃可以使用圖表,布局設計或者文者的方式呈現。
Implementation(實現/實施)
- 第三階段就是實現階段,項目經理創建和分配工作給開者,開發者根據任務和在設計階段定義的目標進行開發代碼。依據項目的大小和復雜程度,可以需要數月或更長時間才能完成。
Testing(測試)
- 測試人員進行代碼測試 ,包括功能測試、代碼測試、壓力測試等。
Evolution(進化)
- 最后進階段就是對產品不斷的進化改進和維護階段,根據用戶的使用情況,可能需要對某功能進行修
改,bug修復,功能增加等。
持續集成
持續集成( Continuous integration , 簡稱 CI )指的是,頻繁地(一天多次)將代碼集成到主干。
持續集成的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。
提交
流程的第一步,是開發者向代碼倉庫提交代碼。所有后面的步驟都始于本地代碼的一次提交(commit)
測試(第一輪)
代碼倉庫對commit操作配置了鉤子(hook),只要提交代碼或者合并進主干,就會跑自動化測試
構建
通過第一輪測試,代碼就可以合并進主干,就算可以交付了
交付后,就先進行構建(build),再進入第二輪測試。所謂構建,指的是將源碼轉換為可以運行的實
際代碼,比如安裝依賴,配置各種資源(樣式表、JS腳本、圖片)等等
測試(第二輪)
構建完成,就要進行第二輪測試。如果第一輪已經涵蓋了所有測試內容,第二輪可以省略,當然,這時構建步驟也要移到第一輪測試前面
部署
過了第二輪測試,當前代碼就是一個可以直接部署的版本(artifact)。將這個版本的所有文件打包(tar filename.tar * )存檔,發到生產服務器
回滾
一旦當前版本發生問題,就要回滾到上一個版本的構建結果。最簡單的做法就是修改一下符號鏈接,指向上一個版本的目錄
持續集成的組成要素
- 一個自動構建過程, 從檢出代碼、 編譯構建、 運行測試、 結果記錄、 測試統計等都是自動完成的, 無需人工干預。
- 一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構建過程的素材庫,一般使用SVN或Git。
- 一個持續集成服務器, Jenkins 就是一個配置簡單和使用方便的持續集成服務器
持續集成的好處
Jenkins介紹
Jenkins 是一款流行的開源持續集成(Continuous Integration)工具,廣泛用于項目開發,具有自動化構建、測試和部署等功能。
Jenkins開源幫助我們自動構建各類項目。Jenkins強大的插件式,使得Jenkins可以集成很多軟件,可以幫助我們持續集成我們的工程項目。官網
Jenkins的特征
- 開源的Java語言開發持續集成工具,支持持續集成,持續部署
- 易于安裝部署配置:可通過yum安裝,或下載war包以及通過docker容器等快速實現安裝部署,可方便web界面配置管理
- 消息通知及測試報告:集成RSS/E-mail通過RSS發布構建結果或當構建完成時通過e-mail通知,生成JUnit/TestNG測試報告
- 分布式構建:支持Jenkins能夠讓多臺計算機一起構建/測試
- 文件識別:Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等
- 豐富的插件支持:支持擴展插件,你可以開發適合自己團隊使用的工具,如git,svn,maven,docker等
Jenkins安裝和持續集成環境配置
| 代碼托管服務器 | 192.168.188.97 | Gitlab-12.9.5 |
| 持續集成服務器 | 192.168.188.98 | Jenkins 2.290-1.1,JDK1.8,Maven3.8.1 Git,SonarQube |
| 應用測試服務器 | 192.168.188.99 | JDK1.8,Tomcat8.5 |
Gitlab代碼托管服務器安裝
下載 Centos7 gitlab 12.9.5社區版
安裝相關依賴 yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python設置postfix開機自啟,并啟動,postfix支持gitlab發信功能 systemctl enable postfix && systemctl start postfix關閉防火墻 關閉selinux安全中心將下載的gitlab上傳至服務器并安裝 rpm -ivh gitlab-ce-12.9.5-ce.0.el7.x86_64.rpm安裝成功
第一次需要修改root賬戶密碼
登陸成功
Gitlab添加組、創建用戶、創建項目
創建組
使用管理員 root 創建組,一個組里面可以有多個項目分支,可以將開發添加到組里面進行設置權限,不同的組就是公司不同的開發項目或者服務模塊,不同的組添加不同的開發即可實現對開發設置權限的管理
創建一個項目
創建用戶
點擊上面的小扳手
點擊new user
選擇普通用戶類型
創建成功之后,再次編輯用戶,可給用戶設置密碼
將新建用戶分配到之前創建的組里面
用戶可用分配5種角色
Gitlab用戶在組里面有5種不同權限:
- Guest:可以創建issue、發表評論,不能讀寫版本庫
- Reporter:可以克隆代碼,不能提交,QA、PM可以賦予這個權限
- Developer:可以克隆代碼、開發、提交、push,普通開發可以賦予這個權限
- Maintainer:可以創建項目、添加tag、保護分支、添加項目成員、編輯項目,核心開發可以賦予這個權限
- Owner:可以設置項目訪問權限 - Visibility Level、刪除項目、遷移項目、管理組成員,開發組組長可以賦予這個權限
我們為新用戶分配一個owner權限 將其拉入組內
使用新用戶登錄gitlab
源碼上傳到Gitlab倉庫
寫一個簡單的微服務
開啟版本控制
選擇Git
提交代碼到本地倉庫
先Add到緩存區
右鍵項目選擇Git
再Commit到本地倉庫
添加遠程倉庫地址
最后推送到Gitlab項目倉庫中
進入倉庫查看
Jenkins安裝
接下來我們在Jenkins服務器上操作
Jenkins需要依賴JDK,所以先安裝JDK1.8 yum install -y java-1.8.0-openjdk* 安裝目錄為:/usr/lib/jvm[root@jenkins ~]# cd /usr/lib/jvm [root@jenkins jvm]# ls java java-openjdk jre-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64 java-1.8.0 jre jre-openjdk java-1.8.0-openjdk jre-1.8.0 java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64 jre-1.8.0-openjdk獲取jenkins安裝包下載jenkins安裝包
下載地址
通過瀏覽器ip+端口
輸入密碼
因為Jenkins插件需要連接默認官網下載,速度非常慢,而且經過會失敗,所以我們暫時先跳過插件安裝
點右邊選擇插件安裝
選擇 無
創建用戶
Jenkins插件管理
Jenkins國外官方插件地址下載速度非常慢,所以可以修改為國內插件地址
Jenkins->Manage Jenkins->Manage Plugins,點擊Available
這樣做是為了把Jenkins官方的插件列表下載到本地,接著修改地址文件,替換為國內插件地址
最后,Manage Plugins點擊Advanced,把Update Site改為國內插件下載地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在瀏覽器ip后面/restart 然后重啟jenkins
下載中文漢化包
重啟后發現已經漢化
Jenkins用戶權限管理
我們可以利用Role-based Authorization Strategy 插件來管理Jenkins用戶權限
選擇
創建一個角色用有讀權限
創建兩個角色可以訪問java項目和springboot
創建兩個新的用戶
我們通過新創建用戶登錄jenkins 發現沒有權限
我們通過管理員賬號給新用戶分配角色
都分配基本的登陸權限
然后xiaotian賬號只能訪問java.*項目
zhuzhu只能訪問springboot.*項目
創建項目進行權限測試
創建兩個項目
使用不同賬戶登陸驗證
xiaotian只能看到java01
zhuzhu只能看到springboot01
Jenkins憑證管理
憑據可以用來存儲需要密文保護的數據庫密碼、Gitlab密碼信息、Docker私有倉庫密碼等,以便Jenkins可以和這些第三方的應用進行交互。
安裝Credentials Binding插件
要在Jenkins使用憑證管理功能,需要安裝Credentials Binding插件
如果遇到下載失敗的 則單獨搜索這個插件名去下載 就可以了
下載完成之后會在安全里面出現憑據
新建一個憑據
可以添加的憑證有5種:
常用的憑證類型有:Username with password用戶密碼和SSH Username with private keySSH
密鑰
配置憑據 將gitlab上面的代碼拉取到jenkins
為了讓Jenkins支持從Gitlab拉取源碼,需要安裝Git插件以及在CentOS7上安裝Git工具。
下載完成之后 ,去服務器上安裝Git
創建用戶密碼類型憑證
Jenkins->憑證->系統->全局憑證->添加憑證
這里不要搞混了,添加的賬號和密碼是gitlab的
我們去創建一個測試項目test01
因為我們憑據使用的是賬戶密碼 因此git拉去方式選擇http方式
選擇之前設置的憑據
選擇構建項目
控制臺可以查看拉取過程
創建SSH密鑰類型憑據
SSH免密登錄示意圖
通過瀏覽器打開gitlab
使用root賬號登錄 點擊頭像選擇設置
公鑰上傳完畢
去jenkins上面添加SSH類型的憑證
需要添加root的私鑰
將私鑰add進憑據
添加一個新項目進行測試
將gitlab上面ssh 鏈接復制到項目里面
構建項目
成功啦
再去服務器上面查看git的代碼
Maven安裝及配置
在Jenkins集成服務器上,我們需要安裝Maven來編譯和打包項目
下載地址
我下載的 apache-maven-3.8.1-bin.tar.gz
全局工具配置關聯JDK和Maven
瀏覽器來到全局工具配置
配置jdk
配置maven
添加Jenkins全局變量
在系統配置中的全局屬性
添加三個全局變量
- JAVA_HOME
- M2_HOME
- PATH+EXTRA
修改Maven的settings.xml提高下載速度
測試Maven是否配置成功
進入test02項目的配置
構建下面添加shell腳本
讓mvn先清空字節碼和構建好的包
然后package 構建一個war包
構建
控制臺查看輸入
正在使用配置的阿里源拉取包
等待一會兒 項目成功編譯和打包
進入項目目錄下查看
Tomcat安裝和配置
進入tomcat服務器 安裝JDK yum install -y java-1.8.0-openjdk* java -versiontar xf apache-tomcat-8.5.16.tar.gz -C /usr/localcd /usr/local mv apache-tomcat-8.5.16 tomcat啟動tomcat cd /usr/local/tomcat/bin ./startup.sh 通過瀏覽器測試配置Tomcat用戶角色權限
我們在tomcat網頁下點擊
發現權限不足
后續Jenkins部署項目到Tomcat服務器,需要用到Tomcat的用戶,所以修改tomcat以下配置,添加用戶及權限
重啟tomcat
點擊manager webapp
輸入tomcat tomcat
總結
以上是生活随笔為你收集整理的Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈网站的logo设计
- 下一篇: 程鑫峰:1.19伦敦金陷多空交织,长江金