開始於一切之前,請安裝jdk,不懂的朋友請移步
1.安裝和配置Jenkins
1.1安裝Jenkins
請移步我的另一篇文章RedHat安裝Jenkins
1.2打開Jenkins,輸入管理員密碼
管理員密碼人家已經很明確的告訴你在哪了,別說你不知道怎麼看……
1.3安裝插件
點擊下一步之後應該是安裝插件,然後一般你會看到這樣一個界面
再次吐槽一下,各大網站的ssl證書都特麼有問題,也不管,還到處提供https鏈接,簡直了……
解決方案:
1.3.1打開一個新的tab,輸入網址http://你的ip:你的端口/pluginManager/advanced
1.3.2這裏面最底下有個【升級站點】,把其中的鏈接改成http的就好了,http://updates.jenkins.io/update-center.json
1.3.3.在服務列表中關閉jenkins,再啓動,這樣就能正常聯網了
sudo service jenkins restart
1.3.4各種刷新之後,終於進入了插件安裝界面,現在開始安裝插件
漫長的等待……
1.4創建管理員賬號
這個就不說了,填好信息一路下一步吧
1.5修改權限
好不容易全部走完了,發現頁面是空白的有木有,怎麼搞?
1.5.1找到jenkins安裝目錄 /var/lib/jenkins中的config.xml
裏面有這麼一段
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
替換成
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
意思是任何人可以訪問任何頁面……雖然說極端不安全,不過,我覺得無所謂了,大家如果較真,可以嘗試修改爲
登錄用戶可以做任何事
<
authorizationStrategy
class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
這個權限對應 test用戶可以是管理員、打標籤權限
<
authorizationStrategy
class="hudson.security.GlobalMatrixAuthorizationStrategy">
<
permission
>hudson.model.Hudson.Administer:test</
permission
>
<
permission
>hudson.scm.SCM.Tag:test</
permission
>
</
authorizationStrategy
>
2.使用Jenkins發佈後臺服務
終於登陸成功了,迫不及待的要開始使用自動化構建
2.配置插件
jenkins跑起來以後,我們還需要安裝和配置一些額外的插件才能讓我們的項目自動構建起來
2.1Gradle插件
這個很坑,說好了自動安裝,結果根本不能用,首先還是在jenkins所在機器上下載安裝一個gradle,如果不會可以留言,我下次再寫一篇linux安裝gradle的文章。
安裝好之後,進入
找到gralde選項卡,配置安裝好的gradle目錄
2.2安裝SSH插件,用於遠程配置
進入插件管理,選擇可選插件選項卡,搜索SSH,找到Publish Over SSH插件,勾選後點擊直接安裝
安裝完成後需要重啓jenkins,重啓命令參考RedHat安裝Jenkins
2.3配置SSH服務器
2.3.1進入系統管理/系統設置,找到Publish over SSH設置
2.3.2Passprase這一項輸入密碼,如果有令牌之類的可以添加Path to key 和key
2.3.3點擊新增添加一個服務器,輸入名稱,主機ip,用戶名,以及傳輸發佈包到的遠程目錄
2.3.4點擊TestConfiguration如果顯示成功表示連接上了
2.3.5如果需要設置代理,可以點擊高級進行更多的設置,另外,服務器獨立密碼也在高級裏面
3.開始創建自動構建任務
3.1輸入項目描述,我這裏選擇丟棄舊的構建,週期爲7天,其他的我們可以另外討論
3.2配置svn信息,Credentials可以直接點添加,輸入你的svn用戶名密碼
3.3配置觸發條件
輪詢SCM指的是定時觸發,配置方式如下:
1.首先格式爲:* * * * *(五個星);
2.第一個*表示分鐘,取值0~59
第二個*表示小時,取值0~23
第三個*表示一個月的第幾天,取值1~31
第四個*表示第幾月,取值1~12
第五個*表示一週中的第幾天,取值0~7,其中0和7代表的都是週日
3.使用舉例:
每隔10分鐘構建一次:H/5 * * * *
每隔1小時構建一次: H H/1 * * *
每月30號構建一次: H H 30 * *
3.3配置gradle構建
注意一定要先配置gradle插件,否則這裏選不了,另外就是別被這裏的單選按鈕迷惑了,上下兩個都要填
3.4配置構建後自動發佈
3.4.1我這裏配置了構建之後發送郵件給我的郵箱,只用配置收件郵箱號就行,如果需要從特定郵箱發送,可以去系統設置中設置stmp服務器
3.4.2 通過SSH發送構建的應用
3.4.2.1選擇要發佈的SSH服務器,這個在之前已經配置了
3.4.2.2Source files指要發佈的內容,填相對路徑
3.4.2.3Remove prefix指定去除掉的目錄,如果不配置,會連文件夾一起復制過去
3.4.2.4Remote directory遠程文件夾,如果不配置,取之前SSH服務器配置的
3.4.2.5實際上核心還是發佈腳本,我講解一下我的腳本
這個是我配置的SSH遠程目錄,我指定的發佈包會被髮送到這裏,我首先進入文件夾並解壓發佈包
cd /mpjava/jenkins
tar -xvf xxxxxxxx.tar
接着殺死舊的進程
process=`jps | grep AppProvider | awk '{print $1}'`
for i in $process
do
kill -9 $i
done
剛解壓出來的文件需要給予執行權限
chmod 777 /mpjava/jenkins/xxxxxx/bin/xxxxx
source /etc/profile
運行發佈包
#BUILD_ID=dontKillMe
nohup /mpjava/jenkins/xxxxxx/bin/xxxxxx >> /mpjava/jenkins/nohup.out&
#sleep 3 && echo finished
#exit 0
至此,所有的配置全部完成了。
4.構建項目
4.1進入配置好的項目,點擊立即構建
4.2使用之前配置的token
4.3svn提交代碼,當jenkins輪詢時發現提交了代碼,會更新並自動執行構建