容:
拷貝指定文件密碼,進入用戶自定義插件界面,建議選擇安裝官方推薦插件:
接下來是進入插件安裝進度界面:
等待一段時間之后,插件安裝完成,配置用戶名密碼:
OK,你可以使用jenkins來編譯、發布你的代碼了。oh,它支持從代碼庫中直接拉取代碼,git、svn都支持。趕快使用你的Spring boot、go試試吧。
安裝部署Jenkins環境,下載所需要的插件,直接用IP加端口進行登錄。
在系統管理的系統設置里配置需要遠程的服務器。
新建節點,當新建節點與原有節點類似的時候,可以選擇復制現有的節點。
填寫遠程工作目錄、標簽、Host、Credentials等信息,點擊save保存成功。
此時在構建執行列表里就能看到新添加的節點的信息。
在頁面點擊“+”,添加一個試圖,在這里我的視圖名稱就叫:自動化部署。
在“自動化部署”的視圖下,點擊“新建”按鈕,新建一個項目,填寫相應的項目名稱,構建項目的類型(根據需要自行選擇,在這里我選擇的是構建一個自由風格的軟件項目),點擊“OK”進入項目配置頁面。
在項目配置頁面,對項目的各種屬性進行配置。
在項目名稱下,添加適當的描述,可以是閱讀的人直觀的了解項目。
選擇項目的jdk選項,在這里我選擇JAVA-HOME。
源碼管理和構建觸發器保持默認設置即可。
構建環境的時候,勾選第一項,在SSH site選擇一開始添加的遠程服務器節點即可。
在構建的時候,在增加構建步驟里選擇“execute shells”。
在execute shell里面的買粉絲mand里面填寫在需要執行更新操作的命令即可。
點擊“保存”按鈕,創建及完成。列表顯示如下圖。
在列表頁,選中name里的立即構建,即可構建項目
在構建歷史里,選擇買粉絲nsole output,即可查看構建的信息。
Jenkins 配置svn自動部署
Jenkins 環境搭建好之后,就需要配置項目了,這里也介紹一下。
新建一個項目
這里寫圖片描述
點擊新建
輸入項目名稱
選擇:構建一個自由風格的軟件項目
點擊 OK
這里寫圖片描述
輸入項目描述
配置構建保留天數和最大個數
這里寫圖片描述
輸入svn 項目地址
選擇用戶名&密碼 #如果沒有就,點擊add 自己添加一個
這里寫圖片描述
配置每天 1:15AM 構建
配置每次 SCM 版本變更,構建
這里寫圖片描述
配置每次構建前,刪除目錄,放置構建產生的文件導致,svn 不能正常更新
這里寫圖片描述
添加構建:
這里寫圖片描述
cd /home/xxx/.jenkins/workspace/fft-bill-web/ && ant #打開工作目錄,項目會被更新到這個目錄下, 執行ant 命令進行打包
cd /home/xxx/.jenkins/workspace/fft-bill-web/release/ #打開war 目錄,打好的包會被放到這個目錄下
mv xxxx-1.0.0.0.war xxx.war #給war包重新命名
scp xxx.war [email protected]:/opt/tomcat-xxxx/webapps #把war包發送到指定服務器目錄
ssh [email protected] "cd /xxx/xxx/tomcat-xxxx/bin && sh shutdown.sh" #遠程關閉 tomcat
ssh [email protected] "cd /xxx/xxx/tomcat-xxxx/bin && sh startup.sh" #遠程命令啟動 tomcat
1
2
3
4
5
6
1
2
3
4
5
6
到這里基本就配置完成了,點擊立即構建,試一下。
后面還可以添加一些構建后的操作步驟,例如發送郵件等等。
1:Jenkins秘鑰查看
需要查看秘鑰,
然后在 **.16.200.22和**.16.200.28服務器的目錄下面將Jenkins秘鑰放到~/.ssh/authorized_keys文件里。
3:Jenkins自動化部署到多臺服務器腳本
library 'lib-base@master'
def map = [:]
//######傳參########
map.put('GIT_URL','買粉絲://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 '-Dna買粉絲s.logging.default.買粉絲nfig.enabled=false -Xms512m -Xmx512m' -h **.16.200.22")
map.put('DEPLOY_RUN',deploylist)
//################
DockerBuild("maven",map);
目錄
一、CICD簡介
二、CICD實踐過程
三、含淚踩坑
四、 歷史 文章指路
一、CICD簡介
1、CICD定義
2、DevOps定義
DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。
DevOps的基礎核心是CICD。
CICD的基礎核心是自動化。
二、CICD實踐過程
1、起因
在我之前的團隊,因為要切換全新業務線,需要為新業務搭建一套全新的環境,所有東西從0開始。
原先只是用于部署測試環境,后面決定一起部署生產環境,這個過程中我還造成了一個嚴重生產環境問題,好在當時的生產環境還未正式使用,未造成嚴重影響。
在當時挺害怕也挺有壓力的,但是后面項目完整落地,平穩運行,我還是挺有成就感的,接下來我將整個項目過程完整的分享出來。
2、技術棧選型
首先進行技術棧選型,我們選擇的是Jenkins,Jenkins當屬業內持續集成老大哥,有著非常豐富的插件,也可以選擇gitlab集成的CICD,因為我們還有其它的測試腳本需要集成,所以Jenkins對于我們來說是最優的選擇;
Ansible是批量運維工具,通過編寫yaml腳本,可以方便實現批量管理多臺機器,并且Ansible是比較輕量級應用,很容易上手;
shell腳本可以用于執行一系列命令。
其它的就結合團隊項目情況進行搭建。
3、Jenkins應用部署實現流程
首先來梳理下整個項目的實現流程,主要分為Jenkins主節點和應用服務器,是一對多的關系。