一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - 服務(wù)器知識(shí) - jenkins插件Pipeline腳本jenkinsfile操作指南

jenkins插件Pipeline腳本jenkinsfile操作指南

2022-03-01 22:38kl 服務(wù)器知識(shí)

這篇文章主要為大家介紹了jenkins插件Pipeline腳本jenkinsfile的操作使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

jenkins插件Pipeline腳本jenkinsfile操作指南

前言

jenkins是一款流行的開(kāi)源持續(xù)集成軟件,插件豐富,擴(kuò)展靈活。2.0后推出pipeline流式構(gòu)建,支持構(gòu)建任務(wù)腳本化。本文主要旨在使用jenkins 的pipeline功能完成java maven項(xiàng)目的打包,上傳jar到目標(biāo)服務(wù)器。pipeline推出時(shí)間不長(zhǎng),實(shí)際使用的不是很多,網(wǎng)上基本沒(méi)啥參考資料,官方的文檔很詳細(xì),但不成本文所述體系。這篇博文是博主摸索半天后的成果,如有錯(cuò)落,歡迎指出。

說(shuō)明:本文環(huán)境默認(rèn)包含組件:jenkins,maven,jdk

一,安裝pipeline支持插件

到配置中心插件管理搜索如下插件,安裝

Pipeline Maven Integration Plugin :執(zhí)行withMaven方法支持,用于構(gòu)建maven項(xiàng)目工程,使用方式如下圖,詳細(xì)說(shuō)明見(jiàn):https://wiki.jenkins.io/display/JENKINS/Pipeline+Maven+Plugin

jenkins插件Pipeline腳本jenkinsfile操作指南

SSH Agent Plugin :sshagent方法支持,用于上傳構(gòu)建產(chǎn)物到目標(biāo)服務(wù)器,使用詳情見(jiàn):
https://wiki.jenkins.io/display/JENKINS/SSH+Agent+Plugin,這邊博主實(shí)操時(shí)有個(gè)大坑,后面說(shuō)詳細(xì)說(shuō)明

二,創(chuàng)建流式Item

如圖

jenkins插件Pipeline腳本jenkinsfile操作指南

三,編寫(xiě)pipeline腳本

腳本分三個(gè)步驟塊,分別是git clone(下載源碼到本地),build(構(gòu)建工程),deploy(上傳構(gòu)建產(chǎn)物到目標(biāo)主機(jī))

腳本如下:

node {
   stage("git clone") { // for display purposes
     checkout([$class: "GitSCM", branches: [[name: "*/${branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "xxxx-xxxx-xxxxx-xxxxxx", url: "http://git.xx.xxx/xxx/xform-boot.git"]]])
   }
   stage("Build") {
           env.JAVA_HOME="${tool "jdk1.8.0_92"}"
           withMaven(
            maven: "M3",
            mavenLocalRepo: ".repository") {
                sh "mvn clean install -U  -P${profile} -Dmaven.test.skip=true"
        }
   }
   stage("deploy") {
    sshagent(credentials: ["deploy_ssh_key"]) {
        sh "ssh [email protected]"
        sh "echo hello"
       sh "scp producer/target/salesApp-1.0-RELEASES.jar  [email protected]:/root/deploy/"
     }
   }
}

如上腳本需要配置兩個(gè)認(rèn)證憑證,分別是git的credentialsId和sshagent的credentials,到配置管理credentials處添加,如圖

jenkins插件Pipeline腳本jenkinsfile操作指南

git的認(rèn)證比較簡(jiǎn)單,使用密碼用戶名驗(yàn)證,直接選Username with password就好了,這里還有個(gè)技巧,后面會(huì)講到。

sshagen測(cè)試下來(lái)只支持私鑰,需要選擇如下配置:

jenkins插件Pipeline腳本jenkinsfile操作指南

如圖,使用了From the Jenkins master ~./ssh,需要你到j(luò)enkins所在主機(jī)的.ssh目錄,通過(guò)命令”ssh-keygen -t rsa“生成公私鑰,生成時(shí)會(huì)詢問(wèn)你是否使用密碼 加密,可以直接跳過(guò),如果寫(xiě)了密碼,那么上圖中Passphrase需要寫(xiě)上加密密碼,沒(méi)寫(xiě)就留空。然后將id_rsa.pub中的內(nèi)容拷貝到目標(biāo)主機(jī)的/root/.ssh/authorized_keys文件中。上圖中的ID可以指定,不指定會(huì)生成一個(gè)唯一字符串如:

jenkins插件Pipeline腳本jenkinsfile操作指南

這個(gè)ID對(duì)應(yīng)了pipeline腳本中的驗(yàn)證ID,到此,我們準(zhǔn)備工作都已經(jīng)做完了。

添加運(yùn)行參數(shù)

細(xì)心的你可能發(fā)現(xiàn)了腳本中有類似占位符。這些的代碼,如${branch},${profile},其實(shí)就是pipeline的占位符,這些參數(shù)控制了git從哪個(gè)分支拉代碼,maven構(gòu)建的哪個(gè)環(huán)境的代碼,這些參數(shù)需要在構(gòu)建任務(wù)中明確指定,用以區(qū)分是生產(chǎn)環(huán)境還是測(cè)試環(huán)境等,如圖

jenkins插件Pipeline腳本jenkinsfile操作指南

四,嘗試構(gòu)建任務(wù)

到這里我們的準(zhǔn)備工作都已完成了,可以開(kāi)啟構(gòu)建任務(wù)測(cè)試了,這時(shí)博主走了一個(gè)好大的坑,無(wú)論認(rèn)證憑證模塊怎么配置,總是拋如下的異常:Host key verification failed.

jenkins插件Pipeline腳本jenkinsfile操作指南

這個(gè)異常非常明顯,pipeline流式構(gòu)建前兩個(gè)步驟已經(jīng)成功了,代碼拉下來(lái)并已經(jīng)構(gòu)建成功了。但是通過(guò)sshagent上傳到目標(biāo)服務(wù)器時(shí),認(rèn)證失敗了。這個(gè)問(wèn)題占了我們摸索過(guò)程的一大半時(shí)間。最后還是感謝唐老大發(fā)現(xiàn)了問(wèn)題。

異常原因:生產(chǎn)公私鑰使用的root用戶生產(chǎn)的,jenkins是使用jenkins用戶啟動(dòng)的,所有jenkins沒(méi)有權(quán)限,

其實(shí)上面所有的步驟都沒(méi)問(wèn)題。最終在嘗試了無(wú)數(shù)次的構(gòu)建失敗后構(gòu)建圖標(biāo)終于綠了,構(gòu)建產(chǎn)物成功上傳到目標(biāo)主機(jī)

一次次的失敗:

jenkins插件Pipeline腳本jenkinsfile操作指南

成功的綠標(biāo)

jenkins插件Pipeline腳本jenkinsfile操作指南

jenkins插件Pipeline腳本jenkinsfile操作指南

五,pipeline的一點(diǎn)技巧

流式項(xiàng)目Item創(chuàng)建好后,在左邊菜單最下面會(huì)有pipeline的語(yǔ)法菜單,點(diǎn)進(jìn)去,會(huì)有如下頁(yè)面:

jenkins插件Pipeline腳本jenkinsfile操作指南

1.其中箭頭一所指的,就是前文提到的git添加認(rèn)證的一個(gè)小技巧,這個(gè)是一個(gè)pipeline腳本生成器,選中g(shù)it scm后會(huì)出來(lái)git相關(guān)的配置,按照提示添加后,點(diǎn)擊生成,就會(huì)生成以及配置組裝好的腳本。特別適合新手

2.箭頭而是步驟指南,這個(gè)里面羅列了所有pipeline語(yǔ)法支持的一些DSL函數(shù),如git,checkout,wthMaven等,并且詳細(xì)的描述了方法的具體使用細(xì)節(jié),詳細(xì) 到每個(gè)參數(shù)的說(shuō)明,如withMavene:

jenkins插件Pipeline腳本jenkinsfile操作指南

文末結(jié)語(yǔ)

pipeline的概念去年就聽(tīng)說(shuō)了,現(xiàn)在實(shí)際操作了一把,還是非常的震撼,通過(guò)在項(xiàng)目中新增jenkinsfile就可以解決構(gòu)建問(wèn)題,而且非常靈活,支持寫(xiě)if等的邏輯判斷腳本來(lái)決定構(gòu)建行為。經(jīng)歷了無(wú)數(shù)次失敗后成功的成就感不言而喻,有興趣的都可以試試,徹底改變?cè)鹊臉?gòu)建模式。建議剛接觸pipeline的新手,多看看pipeline語(yǔ)法頁(yè)面的相關(guān)內(nèi)容,對(duì)理解pipeline語(yǔ)法及書(shū)寫(xiě)腳本有很大的幫助。其次就是去相關(guān)的插件wiki頁(yè)面多看看說(shuō)明。國(guó)內(nèi)的那些博客很多都是一筆帶過(guò),看不出在生產(chǎn)上面應(yīng)用的痕跡,不建議去參考

以上就是jenkins插件Pipeline腳本jenkinsfile操作指南的詳細(xì)內(nèi)容,更多關(guān)于jenkins插件Pipeline腳本jenkinsfile操作的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!

原文地址:http://www.kailing.pub/article/index/arcid/203.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费精品国产 | 狠狠插综合网 | 99视频网址 | 国产欧美日韩精品一区二区三区 | freese×video性欧美丝袜 | 好湿好紧好多水c | 草莓绿巨人香蕉茄子芭乐 | 免看一级一片一在线看 | 图片专区亚洲欧美另类 | 日本aa大片在线播放免费看 | 亚洲大片免费看 | 亚洲高清中文字幕一区二区三区 | 日本一区二区三区久久精品 | 亚洲国产韩国欧美在线不卡 | 热99re国产久热在线 | 国产主播福利在线观看 | 日本公与妇中文在线 | 91精品国产综合久久精品 | 欧美日韩在线观看一区二区 | 成人永久免费福利视频网站 | 日本视频一区在线观看免费 | 女人爽到喷水的视频免费 | 九九影院午夜理论片无码 | 波多野结衣在线看 | 亚洲国产午夜看片 | 91看片淫黄大片欧美看国产片 | 欧美在线一 | 办公室的秘密在线观看 | 性欧美hd | 四虎影视在线影院在线观看观看 | 91无毒不卡 | 好大好湿好硬好爽好深免费视频 | dasd-698黑人在线播放 | 精品视频在线观看免费 | 幻女free性zozo交体内谢 | 天堂va在线 | 99精品国产综合久久久久 | 国产高清在线观看 | 久久99精品涩AV毛片观看 | 国产精品亚洲综合久久 | 91国内在线国内在线播放 |