溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何部署Jenkins 管道

發(fā)布時間:2021-07-30 17:58:06 來源:億速云 閱讀:140 作者:Leah 欄目:大數(shù)據(jù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何部署Jenkins 管道,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

jenkins

Jenkins是一個用Java編寫的開源的持續(xù)集成工具。在與Oracle發(fā)生爭執(zhí)后,項目從Hudson項目復(fù)刻。

Jenkins提供了軟件開發(fā)的持續(xù)集成服務(wù)。它運行在Servlet容器中(例如Apache Tomcat)。它支持軟件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以執(zhí)行基于Apache Ant和Apache Maven的項目,以及任意的Shell腳本和Windows批處理命令。Jenkins的主要開發(fā)者是川口耕介。Jenkins是在MIT許可證下發(fā)布的自由軟件。

可以通過各種手段觸發(fā)構(gòu)建。例如提交給版本控制系統(tǒng)時被觸發(fā),也可以通過類似Cron的機制調(diào)度,也可以在其他的構(gòu)建已經(jīng)完成時,還可以通過一個特定的URL進行請求。

創(chuàng)建Pipeline

如何部署Jenkins 管道

基本環(huán)境搭建好后,我們來配置一個工作流親自感受一下

工作流在Jenkins中被稱為pipeline,pipeline的運行行為由用戶自己定義,定義的內(nèi)容存放在一個Jenkinsfile文件中,并將該文件存放在git倉庫的根目錄,大致的流程如下

  1. 用戶將代碼提交到git

  2. Jenkins從git拉取最新代碼

  3. 讀取根目錄下的Jenkinsfile文件,并依次執(zhí)行文件中定義的任務(wù)

下面是具體的配置步驟

編寫Jenkinsfile

pipeline {
    agent {
        label 'master' /* 執(zhí)行節(jié)點 */
    }
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy - Staging') {
            steps {
                sh './deploy staging'
                sh './run-smoke-tests'
            }
        }
        stage('Sanity check') {
            steps {
                input "Does the staging environment look ok?"
            }
        }
        stage('Deploy - Production') {
            steps {
                echo './deploy production'
            }
        }
    }

    post {
        always {
            echo 'One way or another, I have finished'
            deleteDir() /* clean up our workspace */
        }
        success {
            echo 'I succeeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
        changed {
            echo 'Things were different before...'
        }
    }
}

以上是一個基本的Jenkinsfile模板,其中有以下幾個關(guān)鍵概念

  • agent - 指定在哪臺機器上執(zhí)行任務(wù),還記得上面配置Node時候填的Label嗎,如果這兩個label匹配得上,就在該Node中執(zhí)行

  • stage - 組成工作流的大的步驟,這些步驟是串行的,例如buildtest,deploy

  • steps - 描述stage中的小步驟,同一個stage中的steps可以并行

  • sh - 執(zhí)行shell命令

  • input - 需要你手動點擊確定,Pipeline才會進入后續(xù)環(huán)節(jié),常用于部署環(huán)節(jié),因為很多時候部署都需要人為的進行一些確認

  • post- 所有pipeline執(zhí)行完成后,會進入post環(huán)節(jié),該環(huán)節(jié)一般做一些清理工作,同時還可以判斷pipeline的執(zhí)行狀態(tài)

了解了這些后,你會發(fā)現(xiàn)寫一個Jenkinsfile是一件很容易的事情。好了,現(xiàn)在要測試pipeline功能,把上面的代碼中的sh換成echo,拷貝到你的Jenkinsfile中,并存放在git倉庫的根目錄

創(chuàng)建pipeline

回到Jenkins web頁面,添加pipeline

如何部署Jenkins 管道

如果你想每次git commit時自動執(zhí)行該pipeline,有兩種方法,一種是讓Jenkins對git進行輪詢,每分鐘檢查git倉庫有沒有更新,如下配置

如何部署Jenkins 管道

另一種方式是使用git提供的hook,該方式原理是git一旦提交,便會觸發(fā)hook中的腳本,讓腳本給Jenkins發(fā)送執(zhí)行pipeline的指令,這種方式更優(yōu)雅,但相應(yīng)要做的事情更多一點,這里就不演示這種方法了,感興趣的同學(xué)可以自己研究一下。

最后,我們需要設(shè)置git的地址,其中的授信設(shè)置,和上面說的Master到Node的授信設(shè)置一致

如何部署Jenkins 管道

設(shè)置完畢后,一旦你的git倉庫收到新的提交,就會觸發(fā)這個pipeline的運行,以下這張圖是上面Jenkinsfile例子的運行狀態(tài),可以看到當(dāng)運行到Sanity check這一步時,需要你手動觸發(fā)是否執(zhí)行后面的操作。

如何部署Jenkins 管道

其他

項目地址:https://github.com/changdaye/jenkins-docker-demo/

步驟圖形化插件介紹: https://wiki.jenkins.io/display/JENKINS/Pipeline+Stage+View+Plugin

如何部署Jenkins 管道

上述就是小編為大家分享的如何部署Jenkins 管道了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI