jenkins腳本自動部署
A. Jenkins自動發布-openssh7.1配置
在jenkins部署腳本自動發布的時候,在系統設置中,會用到jenkins插件ssh-plugin所帶的「ssh sites」模塊,但是如果目標伺服器的openssh是7.0版本的話,jenkins會不識別openssh7.0的演算法,導致jenkins一直會報「can not connect!」的錯誤。(如下圖)
我也是煞費苦心,研究了好多天才,查了無數的文檔,才得以解決。
首先,連接不上的原因,是因為openssh7.0更新了新的演算法,老版本不識別新版本的演算法。
其次,也有部分原因是jenkins插件的升級,相關插件及版本,如下圖。
最後,保證以上插件版本都沒問題的情況下,修改目標伺服器上面的/etc/ssh/sshd_config文件:
1.將 PasswordAuthentication 參數的值修改為yes,如果是注釋掉的,把注釋去掉。
2.在文件最下方添加:
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc
MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,hmac-sha1-96,hmac-md5-96
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]
Ps:Ciphers 指定SSH-2允許使用的加密演算法。
MACs 指定允許在SSH-2中使用哪些消息摘要演算法來進行數據校驗。
Kexalgorithms 指定可用的密鑰(密鑰交換)演算法。
以上就是所有的步驟了。現在,再去jenkins里看下是不是好了。呵呵噠。
為此,樓主可是高興了半天。
B. 如何利用jenkins git shell腳本自動部署服務
shell作業要求:
1、從git伺服器clone和pull代碼(可指定分支,http方式)
2、項目打包
3、部署到本地tomcat
4、需要支持的參數(可通過配置文件):git項目地址、分支名稱、項目本地目錄
注意:腳本的話不要隨意的在網頁上運行,因為不同的操作系統會自動給它加上一個你看不到的標記,這會讓新手非常的茫然,自己手動敲敲沒什麼壞處
C. Jenkins+Rancher自動化部署
本文主要記錄Jenkins+Rancher+k8s自動化部署相關配置說明,不涉及rancher和jenkins安裝部署,包含java server項目、WAR項目、前端VUE項目部署配置介紹。
伺服器環境信息:
需要在安裝jenkins服務上部署下面相應的軟體,請注意軟體版本,如已經安裝相關軟體,可跳過此章節。
需要安裝rancher-cli,並且使用jenkins用戶預先登錄rancher平台:命令參考:
--token:這個用戶的token建議設置為永不過期,在rancher管理端 -> api&key > 添加。
建議安裝阿里鏡像,提高編譯速度:
jenkins啟動用戶需要添加到docker組中:
項目主要是java和vue開發的,所以需要安裝Maven Integration plugin插件。
spring boot或者spring cloud自帶容器,以及其它服務類型的java後端應用部署。
1、填寫項目名稱,選擇"構建一個maven項目"
點擊下面"OK"按鈕
2、填寫項目描述信息
3、輸入項目地址,並選擇用戶憑證
本文通過conding.net作為代碼管理平台,點擊"Add"添加自己賬號憑證(輸入coding.net平台登陸賬號密碼即可)。
4、配置maven編譯腳本
5、編寫rancher部署腳本
Dockerfile參數說明:FROM:選擇基礎鏡像包,該項目是用java語言開發需要jdk1.8所以選擇openjdk:8ADD:將bRule-deploy-1.0.0.tar.gz文件解壓並上傳到鏡像的brule目錄EXPOSE:容器內部啟動2002埠,根據自身項目填寫指定埠,多個埠填寫多行EXPOSE標簽ENTRYPOINT:容器啟動時執行的命令,執行多條命令使用&&拼接,命令行中帶&需要加上轉移符\&,使用tail -fn監聽應用日誌,以便容器日誌查看。
用於創建docker鏡像,就好比創建一個已經安裝並且配置好了應用程序的操作系統鏡像。
參數說明:192.168.100.21:5000:為本地docker鏡像伺服器地址brule:latest:應用名稱,根據自身項目名稱修改
利用上面創建好的操作系統鏡像啟動一個vmware虛擬機,創建k8s容器。
參數說明:brule:應用名稱,根據自身項目名稱修改,應用名稱規范?(.?)*image:剛才創建的docker鏡像containerPort:容器啟動埠,多個埠使用多行containerPort標簽聲明,埠限制在【30000-32000】
前面vmware虛擬機創建好後,怎麼能讓別人訪問?這個時候就需要創建一個網路服務,用於打通路由器與vmware本地虛擬機的網路。
參數說明:brule:應用名稱,根據自身項目名稱修改port:容器啟動埠nodePort:對外提供服務埠,外部機器訪問
將上面配置好的shell腳本復制到Post Steps -> 執行shell文本域中,並點擊"保存" -> "立即構建"即可部署。
1、進入剛才創建好的jenkins任務,點擊立即構建
2、點擊左下角構建任務,選擇"Console Output",查看構建日誌
3、登錄rancher管理平台,查看構建好的應用
基於J2EE項目的war包部署,前面操作都一致,只是shell部署腳本稍有不同,這里主要詳細說明rancher部署腳本。
Dockerfile參數說明:FROM:選擇基礎鏡像包,war統一使用tomcat容器部署,tomcat:8.5-jre8-slimADD:將operation.war文件解壓並上傳到鏡像的/usr/local/tomcat/webapps/目錄EXPOSE:容器內部啟動8080埠,根據自身項目填寫指定埠,多個埠填寫多行EXPOSE標簽
這里不需要配置ENTRYPOINT標簽,因為tomcat鏡像包中已經有了。
用於創建docker鏡像,就好比創建一個已經安裝並且配置好了應用程序的操作系統鏡像。
參數說明:192.168.100.21:5000:為本地docker鏡像伺服器地址operation:latest:應用名稱,根據自身項目名稱修改
利用上面創建好的操作系統鏡像啟動一個vmware虛擬機,創建k8s容器。
參數說明:operation:應用名稱,根據自身項目名稱修改image:剛才創建的docker鏡像containerPort:容器啟動埠,多個埠使用多行containerPort標簽聲明,埠限制在【30000-32000】
前面vmware虛擬機創建好後,怎麼能讓別人訪問?這個時候就需要創建一個網路服務,用於打通路由器與vmware本地虛擬機的網路。
參數說明:operation:應用名稱,根據自身項目名稱修改port:容器啟動埠nodePort:對外提供服務埠,外部機器訪問
將上面配置好的shell腳本復制到Post Steps -> 執行shell文本域中,並點擊"保存" -> "立即構建"即可部署。
基於webpack構建的VUE項目部署,前面操作都一致,只是shell部署腳本稍有不同,這里主要詳細說明rancher部署腳本。
Dockerfile參數說明:FROM:選擇基礎鏡像包,前端統一使用tomcat容器部署,tomcat:8.5-jre8-slimCOPY:將/dist目錄上傳到鏡像的/usr/local/tomcat/webapps/fastquery/目錄EXPOSE:容器內部啟動8080埠,根據自身項目填寫指定埠,多個埠填寫多行EXPOSE標簽
這里不需要配置ENTRYPOINT標簽,因為tomcat鏡像包中已經有了。
用於創建docker鏡像,就好比創建一個已經安裝並且配置好了應用程序的操作系統鏡像。
參數說明:192.168.100.21:5000:為本地docker鏡像伺服器地址operation:latest:應用名稱,根據自身項目名稱修改
利用上面創建好的操作系統鏡像啟動一個vmware虛擬機,創建k8s容器。
前面vmware虛擬機創建好後,怎麼能讓別人訪問?這個時候就需要創建一個網路服務,用於打通路由器與vmware本地虛擬機的網路。
參數說明:shutcm-fastquery-web:應用名稱,根據自身項目名稱修改port:容器啟動埠nodePort:對外提供服務埠,外部機器訪問
將上面配置好的shell腳本復制到Post Steps -> 執行shell文本域中,並點擊"保存" -> "立即構建"即可部署。
D. Jenkins自動化部署到多台伺服器配置
1:Jenkins秘鑰查看
需要查看秘鑰,
然後在 **.16.200.22和**.16.200.28伺服器的目錄下面將Jenkins秘鑰放到~/.ssh/authorized_keys文件里。
3:Jenkins自動化部署到多台伺服器腳本
library 'lib-base@master'
def map = [:]
//######傳參########
map.put('GIT_URL','http://172.16.0.1/FN-PM0091/cdd.git')
map.put('GIT_BRANCH','master')
map.put('GIT_CRED_ID','jenkins')
def archivelist=[]
archivelist.add('job-excutor/target/cdd1.jar')
map.put('ARCHIVE_FILE',archivelist)
// skywalking 服務目錄
def SKYWALKING_DIR = '/usr/local/apps/apache-skywalking-apm-bin-es7'
// skywalking oap 服務地址
def SKYWALKING_OAP_IP = '172.16.200.54'
def SKYWALKING_OAP_PORT = 11800
def deploylist=[]
deploylist.add("runjar -f 'cdd-service/target/cdd1.jar' -v '/data/cddm' -j '-Xms512m -Xmx512m' -h **.16.200.28")
deploylist.add("runjar -f 'report-executor/target/cdd1.jar' -v '/data/cddm' -j '-Dnacos.logging.default.config.enabled=false -Xms512m -Xmx512m' -h **.16.200.22")
map.put('DEPLOY_RUN',deploylist)
//################
DockerBuild("maven",map);
E. Gitlab+Jenkins通過鉤子實現自動部署web項目,圖文詳細教程
擴展參考:Jenkins+Gitlab通過腳本自動部署回滾web項目至集群
1):Gitlab伺服器:ubuntu 192.168.152.131 ---參考搭建:linux安裝gitlab,docker安裝gitlab教程
2):Jenkins伺服器:ubunu 192.168.152.130 ---參考搭建:linux安裝Jenkins,或docker安裝Jenkins教程
在伺服器上生成ssh-keygen,用於配置web伺服器和Gitlab伺服器。
3):web伺服器:centos 192.168.152.150 ---已搭建好LNMP環境
4):開發者電腦:Windows+key密鑰 (用於提交代碼)
1:在gitlab創建項目Test Project
2.1): 配置一個開發者電腦的ssh公鑰到gitlab
配置一個開發者電腦的ssh公鑰到gitlab,這樣才能模擬開發上傳代碼到gitlab。
windows生成key過程及git安裝,可參考:Windows下git和github的使用圖文詳細教程_the丶only的博客-CSDN博客_github win
在windows測試clone,和提交代碼。
註:最新版git 已經將默認分支master改為main了。所以看到main,而不是master不要太奇怪
測試成功,在gitlab也顯示有index.html文件。
2.2): 配置jenkins公鑰到gitlab
同理,同樣需要jenkins公鑰,因為jenkins也需要拉去gitlab的代碼。
在 jenkins伺服器 上查看公鑰並復制添加到gitlab,並命名為jekins。
1:插件管理,安裝插件
jenkins本身沒什麼功能,主要是依靠插件來實現各種強大的功能。
基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter
可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 選項搜索安裝插件即可。
安裝完成後,重啟Jenkins。
2:添加需要部署的web主機
在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 選項,點擊add ssh server。
在Jenkins伺服器上,查看私鑰,注,是私鑰,不是公鑰。
將私鑰填寫在key位置,還有添加web伺服器相關信息。
註:如果測試報錯如下
Failed to connect or change directory
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@2e54414f]
是因為默認用ssh-keygen命令,默認生成了OPENSSH 格式密鑰。而Jenkins暫時不支持這種私鑰,私鑰開頭結尾如下:
所以,需要生成rsa密鑰格式的。用開頭說的ssh-keygen加其他參數生成即可。
私鑰開頭結尾如下:
再次測試,顯示success,則成功。然後點擊save保存即可。
3:構建任務項目
首頁創建任務或者一個項目
命名為web-project,選擇為freestyle project 自由項目。然後ok確認。
3.1):源碼管理 Source Code Management
選擇源碼管理,添加gitlab的項目clone地址。
註:最後路徑選擇分支,我gitlab主分支名字為main,如果是master,則寫master,或者合並的其他分支。
在add添加用戶
添加完成後,選擇git用戶,這時沒有紅色提醒,說明已成功連接
3.2):構建觸發器 Build Triggers
現在Build Triggers,勾選build when....,其他默認,並記下鏈接 http://192.168.152.130:8080/project/web-project
點擊高級 advance 選項。
勾選filter branches regex選擇,填寫分支,生產token。其他默認
3.3):構建 Build
選擇Build 選項。選擇ssh
添加web伺服器
添加完畢,最後save保存。
1:添加鉤子webhooks.
選擇自己的項目Test Project,在設置setting里,選擇鉤子webhooks.
填寫剛才記下的http://192.168.152.130:8080/project/web-project和token值。
最後Add webhook完成:
2:如添加失敗,報錯,更改Network
註:如填寫失敗提示Url is blocked: Requests to the local network are not allowed
還需更改Network選項。
3:測試鉤子
添加完成後,下面會出現鉤子選擇。點擊test中的,push event。
出現successful,即添加成功。
在Jenkins也可以看到剛才的測試時間信息。
在開發電腦上測試提交,我這里為Windows電腦測試。
打開Git Bash,輸入以下命令:
提交成功,回到Jenkins,查看是否構建成功:
綠色顯示構建成功,無錯誤顯示。回到gitlab查看項目。
時間顯示剛才也提交成功,無錯誤。最後在瀏覽器輸入web地址測試,本人配置了web訪問埠8082。所以輸入IP加埠訪問。
內容也已經自動更新成功。
完結撒花!!!
F. 自動化部署工具jenkins,從此擺脫重復單調的工作
它是基於Java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟體平台,使軟體的持續集成變成可能。
有了它你可以免除手工編譯,發布代碼,上線更容易。節省的時間你可以喝杯咖啡,放鬆一下 ^_^
道路千萬條,熟悉第一條,我這里使用 Red Hat 家族衍生的 centos 上安裝Jenkins。
這里可以下載rpm包: http://pkg.jenkins-ci.org/redhat/
也可以如下操作:
安裝
將Jenkins存儲庫添加到yum repos,並從此處安裝Jenkins。
安裝穩定版
還有一個LTS YUM資源庫的LTS版本線
安裝Java
Jenkins需要Java才能運行,但默認情況下某些發行版不包含此內容。要安裝Open Java Development Kit(OpenJDK),請運行以下命令:
安裝完成後Jenkins 啟動之前的注意事項
默認情況是Jenkins是使用Jenkins用戶啟動的,但這個用戶目前系統並沒有賦予許可權,這里我們將啟動用戶修改為root;另外Jenkins默認埠是8080,這個跟tomcat的默認埠沖突,我們也修改一下默認埠。
找到 JENKINS_USER 和JENKINS_PORT ,修改為root和你需要的埠
啟動/停止
注意:如果收到以下錯誤消息,請確保已安裝Java:
Starting jenkins (via systemctl): Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details.[FAILED]
禁用防火牆
有關CentOS Java的重要說明
Jenkins需要Java才能運行,但yum install jenkins不強制已經安裝了java。檢查以確保您已通過運行安裝了hava java java -version。為了進一步使CentOS用戶感到困難,默認的CentOS版本的Java與Jenkins不兼容。Jenkins通常最適合使用Java的Sun實現,由於許可原因,它不包含在CentOS中。
如果您獲得類似於以下內容的輸出,則表示您使用的是Java的默認(GCJ)版本,該版本不適用於Jenkins:
要解決此問題,您可能需要刪除GC的GCJ版本並安裝Sun兼容版本。
如果收到上面的輸出,請卸載默認的java:
然後在卸載Java之後(或者如果你根本沒有安裝Java那麼開始)。您需要安裝與Sun兼容的Java版本。最簡單的方法是使用OpenJDK,它可以通過EPEL存儲庫獲得(或者您可以直接從Oracle安裝官方 RPM)。要安裝OpenJDK,請運行以下命令:
根據您的CentOS版本,OpenJDK的軟體包名稱可能有所不同。使用yum search openjdk來檢查包的名稱。如果通過yum找不到OpenJDK,則可能需要安裝EPEL yum存儲庫。安裝後,您應該能夠獲得以下java -version輸出:
Ok,到此jenkins安裝完成。
接下來你可以在瀏覽器地址中輸入Jenkins網址,如:IP:埠,將顯示如下內容:
拷貝指定文件密碼,進入用戶自定義插件界面,建議選擇安裝官方推薦插件:
接下來是進入插件安裝進度界面:
等待一段時間之後,插件安裝完成,配置用戶名密碼:
OK,你可以使用jenkins來編譯、發布你的代碼了。oh,它支持從代碼庫中直接拉取代碼,git、svn都支持。趕快使用你的Spring boot、go試試吧。
G. Jenkins自動化發布方法
jenkins自動化發布首先需要知道其原理,知道了理論後才可以更好的配置。同時也需要知道一些基本知識(如果不懂需要自己學習),比如webhook、docker、宿主主機、掛載目錄/文件(外掛倉庫)、shell腳本等。
一、前期准備
1、分支
確保自動化發布倉庫分支統一,正式環境需要是release,內網測試環境test_release。如果沒有的請先新建好。
註:release需要是保護分支,因為正式環境不允許隨意發布。設置後需要在保護分支設置裡面配置其【可合並 Pull Request 成員】為可以審核發布人。如下saas中台前端的配置:
H. jenkins部署jeecg-boot3.1(前後端)自動化
我是使用我的騰訊雲輕量應用伺服器做的本次實戰
(操作系統:CentOS 7.6 64bit)
(主機規格:CPU: 4核 內存: 4GB)這個配置起前端有點帶不動-_-,建議8G內存,這個問題我反復測試很多次。一跑npm 就開始瘋狂佔資源,然後操作系統內存不夠直接把jenkins的進程都給殺了。所以如果你也是4g或者2g內存,盡量不要有其他多餘的應用或者容器在機器上運行。
啟動:
a與b的結果都是將jenkins啟動,也是我們的目標,本篇文章採用war包方式,也建議war包的方式,docker啟的話,裡面jdk是11,而我機器的jdk是8,同時項目jdk也是8,換11的話,天知道會出什麼問題。 啟動之後,訪問一下,上述例子中我映射了7999埠,同時我的騰訊雲防火牆也開放了7999這個埠,下面是訪問圖例:
根據提示粘貼密碼,如果是war包啟動的就直接復制頁面提示的路徑就可以,輸入命令,即得密碼
如果是docker啟動的,上面的-v掛載了一個路徑 /jenkins-data 這裡面的文件就是容器里jenkins_home裡面的文件,故路徑就變成了
隨後,輸入得到的密碼,進入,選擇安裝推薦的插件
接下來,就等待機器安裝,然後創建第一個賬戶,然後jenkinsURL默認是啥就是啥(反正可以改的),可能會提示重啟,如果沒有不管。進入jenkins
到這里,先停一下。右上角紅色的1不管。
裝插件: (系統管理)Manage System -> (插件管理)Manage Plugins -> (可選的插件)Available,在 Filter 中搜索 Gitee,Jersey2 API這兩個插件,然後分別選中,然後點install without restart。
等待安裝完畢即可。
之後,就是配置gitee了
系統管理—>系統配置---->gitee配置
在 鏈接名 中輸入 Gitee 或者你想要的名字
Gitee 域名 URL 中輸入碼雲完整 URL地址: https://gitee.com (碼雲私有化客戶輸入部署的域名)
證書令牌 中如還未配置碼雲 APIV5 私人令牌,點擊 Add - > Jenkins
Domain 選擇 全局憑據
Kind 選擇 Gitee API 令牌
Scope 選擇你需要的范圍
Gitee API Token 輸入你的碼雲私人令牌,獲取地址: https://gitee.com/profile/personal_access_tokens
這個令牌建議保存在雲筆記之類的東西上,方便自己以後用
ID, Descripiton 中輸入你想要的 ID 和描述即可。然後點添加,然後回來選擇剛剛添加的令牌,點擊測試鏈接,出現成功即可。
我是在宿主機安裝的maven,這樣後面shell命令裡面可以直接用mvn
maven的話最好是使用jeecg官方推薦的
找一下settings文件
就可以看到maven home 然後在maven home的conf目錄下就有settings文件了。
然後替換一下 settings.xml文件,或者直接改也行(就下面這部分):
npm是裝在宿主機的。因為我是war包直接起的。所以可以直接在後面shell命令裡面用npm,如果是docker啟動的,容器裡面是沒有node的,而且容器裡面jdk是11,就…不是很方便,所以我前面建議war包直接起。
我的版本:
jeecg-boot/ ant-design-vue-jeecg / Dockerfile:
jeecg-boot/ ant-design-vue-jeecg / .env.proction
新建任務–>構建一個自由風格的軟體項目—>源碼管理—>點git
輸入repository URL: https://gitee.com/xiao_chaowen/jeecg-boot.git( 也就是倉庫地址)
配置憑證:
gitee的用戶名密碼
點高級:
Branch Specifier 選項:
對於單倉庫工作流輸入: origin/g i t e e S o u r c e B r a n c h
對 於 P R 工 作 流 輸 入 : p u l l / {giteeSourceBranch}
對於 PR 工作流輸入: pull/giteeSourceBranch
對於PR工作流輸入:pull/{giteePullRequestIid}/MERGE
Additional Behaviours 選項:
對於單倉庫工作流,如果你希望推送的分支構建前合並默認分支(發布的分支),可以做以下操作:
點擊 Add 下拉框
選擇 Merge before build
設置 Name of repository 為 origin
設置 Branch to merge to 為 ${ReleaseBranch} 即要合並的默認分支(發布分支)
對於 PR 工作流,碼雲服務端已經將 PR 的原分支和目標分支作了預合並,您可以直接構建,如果目標分支不是默認分支(發布分支),您也可以進行上訴構建前合並。
接著構建觸發器:
點擊gitee webhook觸發構建
點擊生成一下gitee webhook密碼 同時記錄上面一張圖的gitee webhook要填的URL。然後去gitee新增webhook進行填寫即可。
然後回來配置構建,點擊增加構建步驟—>執行shell:
這堆命令,就是起後台和前台的鏡像,可以根據自己情況更改
然後是構建後操作:
完事了保存一下。就可以在gitee webhook那裡點擊測試,然後回到jenkins查看控制台輸出
然後查看伺服器,會有四個容器已經啟動,如果啟動失敗的,看一下logs,有可能是配置之類的問題。
現在就可以訪問8000
I. Jenkins 自動構建部署tomcat項目
Jenkins 是一個開源的、功能強大的應用程序,可持續集成並且持續交付項目。Jenkins自動構建項目的流程原理如下圖所示:
用戶通過將源碼push到svn或者git等倉庫上,然後Jenkins會定期pull檢查倉庫中的源碼是否有變化。如發生變化則會重新構建測試項目並打包生成相應的文件存放在指定的目錄,這過程中的完成情況可設置以郵件的形式反饋給管理員,並且管理員可登陸到Jenkins上查看相應項目的構建情況。接著項目構建成功後,Jenkins會把相應的項目包推送到指定的伺服器上的指定目錄下, 然後執行相應的命令進行項目的部署。
接著我們就來看看如何使用Jenkins完成tomcat項目的自動構建部署。
Jenkins的安裝可參考: https://www.jianshu.com/p/f2da45e2bac7
在Jenkinsweb界面中的系統管理->系統配置 添加相應的SSH Servers:
如上圖所示,添加相應的SSH Server的Ip、用戶密碼等信息,並設置遠程主目錄為根目錄,也可以配置SSH key 實現免密認證訪問。
因為本次實驗中我需要構建 https://github.com/charliewch/game-of-life 此項目,因此在構建之前需要保證Jenkins能夠連接上GitHub。此實驗中,我的Jenkins運行在tomcat應用上,因此其運行用戶為tomcat,所以需要使用tomcat用戶生成相應的ssh key 然後設置到github 的 setting中。
把上述的id_rsa.pub內容復制粘貼到github的setting中的SSH and GPG keys上:
配置完成後,能夠出現下述信息,說明tomcat 用戶連接到github已經成功。
在系統管理->系統設置中找到下圖的設置,並配置相關的郵件伺服器信息
點擊新建任務,輸入項目名後選擇構建一個自由風格的軟體項目並確定保存。
在源碼管理中添加git作為源碼倉庫。
設置輪詢SCM為每15分鍾輪詢一次,此處的編寫規則遵循crontab 任務的周期編寫規則。
在構建增加調用頂層Maven模板的步驟,添加目標為clean package,用於將相應的java項目打包成war包,存放在target目錄下。
在構建後的步驟中,新增Editable Email Notification,並在高級中配置觸發郵件報警的條件:
此處設置的recipient List 為上一步設置的收件人列表
繼續在構建後操作添加步驟:Send build artifacts over SSH
配置完成後點擊保存即可
在Gameoflife任務的工作空間中,點擊立即構建按鈕觸發新的構建,點擊Build history可查看相應的構建情況:
另外在相應的構建任務中點擊查看控制台輸出,能夠查看構建的結果及相應信息輸出,有助於排查錯誤。
從下圖看到,報警郵件也觸發成功了。
最後,此時如果用戶對修改相應的git倉庫的中源碼,在下一次git輪詢Jenkins會自動觸發相應的項目構建並進行推送部署,用戶可查看相應的git輪詢日誌來查看輪詢的情況。
J. 再見 Jenkins!幾行腳本搞定自動化部署,這款神器有點厲害
Drone是一款基於容器技術的持續集成工具,使用簡單的YAML配置文件即可完成復雜的自動化構建、測試、部署任務,在Github上已經有22K+Star。
對比Jenkins復雜的圖形化界面操作,Drone使用腳本來定義流水線任務無疑更簡單、更直觀。Drone更加輕量級,內存佔用少且響應速度快!自動化部署要啥Jenkins?直接給Git整個CI/DI功能難道不香么?
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-drone
