jenkins 簡介
- Jenkins是基于Java開發的一種持續集成工具,用于監控持續重復的工作,功能包括:持續的軟件版本發布/測試項目和監控外部調用執行的工作。
- 官網地址地址: https://jenkins.io
下載安裝啟動
CentOS 下用yum進行安裝啟動
# 先更新源再安裝最新版 jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins
# 啟動
sudo service jenkins start
# 停止
sudo service jenkins stop
# 重啟
sudo service jenkins restart
# 檢查
sudo chkconfig jenkins on
下載war包放到tomcat中啟動
- 服務器 yum 安裝速度太慢了,最終我選擇了這種方式,本地下載好war包傳到服務器上的tomcat容器下,然后啟動
- 下載地址:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
初始化
- 在瀏覽器中輸入url打開jenkins的后臺控制頁面初始化界面
- 初始化成功后會自動生成一個管理員密碼放到指定位置,根據頁面提示復制密碼粘貼到輸入框就可以登錄了初始登錄界面
- 登錄成功后回讓你選擇插件的安裝,可以選擇建議的安裝也可以自己進行選擇,不清楚的話可以使用建議的安裝初始登錄界面
- 由于建議安裝的插件比較多,安裝的過程有點慢,多等待一會初始登錄界面
- 安裝的過程也可能因為網絡等一些原因安裝會失敗,現在可以無視它,點擊Continue,后面再進行手動的安裝安裝完成
- 安裝完成后最好新創建一個管理員賬戶代替之前的臨時自動生成的密碼賬戶創建新的管理員賬戶
- 初始化完成,進入后臺管理界面初始化完成后臺管理界面
安裝插件
- 之前初始化的時候,有些插件安裝失敗,可以在用到的時候來手動修復它,沒用到的話就可以暫且不理它,不影響jenkins的使用
- 點擊左側邊欄的“系統管理”,就可以看了插件安裝的一些錯誤信息插件錯誤信息
- 在“系統管理”中往下拉,找到“管理插件”點擊進去就可以查看和管理所有的插件,點擊“可選插件”顯示所有jenkins支持的插件,在右上角的“過濾”輸入框中,輸入需要安裝的插件名就可以篩選查找到想要的插件查找插件
- 選中要安裝的插件輸入框,點擊安裝就可以在線安裝需要的插件,當然由于網絡的原因也可能再次安裝錯誤,或者安裝的比較慢。我們可以點擊插件名進入插件的主頁,里面有該插件的詳細信息并能下載hpi文件進行手動安裝插件詳情
- 在“管理插件”的頁面中點擊高級選項,我們可以在下面找到“上傳插件”,上傳下載好的插件,點擊“上傳”,系統就會自動上傳安裝該插件。上傳插件
gitlab的配置
- 集成gitlab,讓jenkins能夠直接讀取修改gitlab中的代碼,方便項目的構建
- 安裝gitlab-plugin
- 在“系統管理” -> “系統設置“ -> “Gitlab” 中配置對應的gitlab信息
- 點擊“Test Connection”測試下配置是否成功Gitlab配置Add Gitlab CredentialsGitlab API token
Publish Over SSH
- 通過ssh連接遠程服務器,并能執行腳本部署項目
- 安裝publish-over-ssh
- 在“系統管理” -> “系統設置“ -> “Publish over SSH” 中配置對應的ssh信息
- Key中填登錄遠程服務器的密碼(ssh免密碼登錄)
- 點擊"SSH Servers"后的“增加”按鈕,新增一個遠程服務器
- 點開“高級...”按鈕,能進一步的配置端口等信息。
- 配置為Server信息后,點擊"Test Configuration"按鈕測試是否能夠連接成功。ssh配置
監測代碼變動自動部署
- 點擊左側邊欄的“新建”按鈕,新建一個任務。
- 填寫項目的名稱,并選擇一種構建的方式,此時我們選擇第一個,構建一個自由風格的軟件項目,然后點擊“OK”按鈕創建任務,并進行詳細的配置新建任務
- 默認設置里填寫項目名和描述,并選擇之前配置好的要連接的gitlab默認配置
- 配置源碼,填寫要構建項目的源碼倉庫地址,并指定要構建的分支配置源碼
- 配置觸發器,選擇觸發構建的方式,可以通過hook,根據jenkins提供的地址,放到gitlab中的hook配置中,就會自動觸發構建。此時我們選擇的是定時檢測項目變動,如果檢測到分支有新的變動就觸發構建,如果感覺一分鐘時間太頻繁的話,可以自己設置時間頻率。構建觸發器
- 配置構建,構建選用的是“Invoke top-level Maven target”,填寫對應的maven命令,就會自動執行maven命令進行侯建
- 配置構建后操作, 該行為會在構建完成后執行,我們選用的是“Send build artifacts over SSH”的方式,把構建完成的jar包發送到遠程服務器上用ssh命令執行啟動,此時jenkins所有機器的默認路徑是任務所在的目錄,遠程機器的默認路徑是之前publish-over-ssh中指定的文件地址。Source files指定要傳送到遠程服務器上的文件,remote directory指定的是傳送到遠程服務器上的文件地址,Remove prefix是值要去除的文件目錄,不然傳送到遠程服務器也會帶有該目錄層級結構的。exec Command里輸入的是在遠程服務器上要執行的指令。構建部署配置
- 項目構建后會有構建歷史,點擊進去,選擇“Console Output”就可以查看構建過程中的執行記錄
項目回滾
- 上面雖然實現了項目的自動部署,但是有時部署失敗的時候我們需要回滾到指定版本的構建,這樣才能更靈活的進行項目的構建部署。我們可以選擇“參數化的構建過程”進行傳遞不同的參數來選擇是進行新的構建還是回滾
- 如果要在實現回滾,一定要在構建后將,構建完成的文件進行存檔,方便以后回滾的時候使用構建后存檔
- 使用參數化構建過程,讓后面的腳步可以根據不同的變量執行不同的操作。添加“Choice”參數配置不同的選項,讓選擇發布還是回滾,添加“String Parameter”參數來傳遞要回滾的版本號。參數和構建過程
- 構建選擇“Execute Shell”的方式,自己根據變量,自定義構建的腳本,此時如果是發布安裝maven的構建過程進行新的構建,如果是回滾,知道歷史構建后的文件,復制到當前構建結果目錄。構建腳本
- 點擊構建,根據不同的參數選擇發布還是回滾,回滾的時候填寫要回滾到的歷史版本號構建頁面
作者:尋夢的尕柳
鏈接:http://www.jianshu.com/p/dceaa1c7bb49
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。