概述
本文操作基於Ubuntu系統,其它系統操作類似。
本文目標:實現Ubuntu系統下,Jenkins環境的搭建和通過SSH方式的多機部署。
爲便於操作,以下操作過程中均使用root用戶。
安裝
安裝JDK
Oracle JDK下載地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
安裝過程比較簡單,此處從略。
安裝Jenkins
1. 下載
下載地址:https://jenkins.io/zh/download/
選擇自己機器對應的版本即可。鑑於我比較喜歡綠色版軟件,此處選擇最後那個
Generic Java package (.war)。
切換到要安裝Jenkins的目錄,比如我的/data/tools/jenkins
,執行wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
,下載完成後如圖:
2. 啓動
執行命令java -jar jenkins.war --httpPort=8080
如果看到如下圖的日誌,表明啓動成功
如果沒有成功,請檢查JDK是否正確安裝並且8080端口是否被佔用,如果端口被佔用,換一個即可。
3. 初始化
打開瀏覽器,輸入http://localhost:8080
,如果是遠程操作,請替換localhost爲對應機器的IP。如圖
按照提示,複製/root/.jenkins/secrets/initialAdminPassword
文件中的初始admin密碼,然後點繼續。
我這裏圖省事,直接選擇推薦的插件:
插件安裝完成後,填寫管理員信息保存即可,如圖
跟隨指引走完流程之後進入主界面,如圖
至此初始化完成。
但是,由於要發佈的是Java項目,並且要發佈到遠程機器上,所以maven插件(Maven Integration)和SSH插件(Publish Over SSH)需要裝一下。操作過程如圖:
插件安裝完成,重啓Jenkins之後即可開始個性化配置啦。
配置
全局工具配置
在全局配置中可以指定maven,git,JDK等環境配置
如果機器上沒有安裝git,maven,以及編譯代碼使用的JDK,都可以在這裏讓Jenkins自動安裝。如果使用的是maven私服,也可以指定下maven配置文件在機器上的位置。
配置完成後,點保存即可。
系統配置
這裏的配置項非常多,不再展開說明,只講下發布配置。
發佈時可以使用用戶名+密碼的方式,也可以用SSH的方式,這裏講下使用SSH的發佈方式。
主要步驟
- 配置遠程機器允許SSH訪問,配置方式可參考另一篇文章:Linux通過SSH訪問其它機器
- 指定私鑰在機器上的路徑,或者直接把私鑰內容粘貼到Key文本框中,如圖
- 添加遠程目標機器。點擊SSH Servers後邊的新增按鈕,添加剛剛配置過SSH的目標機器信息,如圖
保存即可。
憑據配置
配置憑據是爲了從私有的git倉庫上拉取代碼,同樣有幾種方式,可以選擇使用用戶名+私鑰,也可以選擇用戶名加密碼,根據自己喜好選擇即可,這裏選擇用戶名+私鑰。操作過程如圖
把私鑰粘貼過來,保存即可。如圖
Git配置
此處以GitHub爲例,進入個人設置頁,然後配置服務器公鑰即可,如圖
創建任務
- 新建一個Jenkins任務,如圖
名字一般就是項目名稱,這裏選擇maven項目
確定之後,在任務配置頁進行項目名稱,git地址,憑證,分支,編譯,發佈等配置,如圖
此處的project.name
是一個字符串參數,可以在接下來的配置中當變量來用,這樣如果項目名改了,我們直接修改project.name
的默認值即可,其餘配置不用改。
添加部署腳本:
其中部署腳本比較簡單,這裏粘出來,便於複製修改
source /etc/profile
cd /data/apps/${project.name}
mkdir -p history
ps -ef | grep ${project.name} | grep -v grep| awk ‘{print $2}’ | xargs kill -9
sleep 10
#移除3天前的app備份
find ./history -name "${project.name}.jar.*" -mtime +2 -exec rm {} \;
mv ${project.name}.jar ./history/${project.name}.jar.`date +%Y%m%d-%H:%M:%S`
#啓動app
chmod -R a+r ./
chmod a+x ${project.name}.jar
nohup java -jar ${project.name}.jar &
最後保存,任務編寫完成。
驗證
回到主界面,可以看到test任務已經創建好了,點啓動按鈕,然後點開始構建即可,如圖
構建Console控制檯中看到 Finished: SUCCESS即表示構建成功了。