1. 程式人生 > >Jenkins流水線(pipeline)實戰之:從部署到體驗

Jenkins流水線(pipeline)實戰之:從部署到體驗

關於Jenkins流水線(pipeline)

Jenkins 流水線 (pipeline) 是一套外掛,讓Jenkins可以實現持續交付管道的落地和實施。

關於blueocean

Blue Ocean是pipeline的視覺化UI,本文中的demo暫時用不上blueocean,後續的文章中會用到;

系列文章地址

  1. 《Jenkins流水線(pipeline)實戰之:從部署到體驗》;
  2. 《讓Jenkins執行GitHub上的pipeline指令碼》;

    本篇實戰概覽

    本文是《Jenkins流水線(pipeline)實戰》系列的第一篇,本次實戰的內容是部署好帶有pipeline外掛的Jenkins環境,然後建立流水線任務並執行,全文由以下幾部分組成:
  3. 部署Jenkins;
  4. 體驗pipeline;

    環境資訊

    為了快速完成Jenkins部署,本次實戰用到了Docker,請在實戰前準備好以下環境:
  5. 作業系統:Ubuntu 18.04.2 LT
  6. Docker:19.03.1

本次使用的Jenkins版本是2.176.3。

部署Jenkins

  1. 以root的身份登入Linux,新建一個資料夾,例如我這裡是/root/blueocean,進入此資料夾;
  2. 執行以下命令,即可建立好Jenkins環境:
docker run \
  -u root \
  -idt \
  --name blueocean \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean:1.19.0

上述命令引數中有幾處需要注意:

a. 映象是jenkinsci/blueocean:1.19.0:這是Jenkins官方的開源映象(https://github.com/jenkinsci/blueocean-plugin ),裡面已經集成了pipeline和blueocean,十分方便;

b. -v jenkins-data:/var/jenkins_home:Jenkins容器在工作的時候,如果要執行Docker的命令(例如 docker ps、docker run等),需要有個途徑能連線到宿主機的docker服務,此引數就是用來建立容器和宿主機docker服務的連線的,如果您想了解這方面的詳情,請參考《docker的/var/run/docker.sock引數》;

c. -v /var/run/docker.sock:/var/run/docker.sock:將該容器的資料保留在宿主機的目錄,這樣即使容器崩潰了,裡面的配置和任務都不會丟失;

  1. 執行命令 docker exec blueocean cat /var/jenkins_home/secrets/initialAdminPassword,用於獲取Jenkins容器的登入token,如下所示,控制檯輸出登入token為 a60f9aa5ebd4400e92886ca49d574198:
root@hedy:~# docker exec blueocean cat /var/jenkins_home/secrets/initialAdminPassword
a60f9aa5ebd4400e92886ca49d574198


  1. 用瀏覽器訪問:http://192.168.50.75:8080 ,192.168.50.75是宿主機IP地址,頁面如下所示,在紅框中填入剛才得到的登入token a60f9aa5ebd4400e92886ca49d574198,再點選右下角的"繼續"按鈕:

  1. 接下來的頁面是讓使用者選擇安裝哪些外掛,如下圖,點選紅框內部,安裝官方推薦外掛:
  2. Jenkins開始自動安裝外掛,如下圖,需要您稍作等待:
  3. 外掛安裝完成後,會要求設定賬號和密碼,設定完畢後點擊右下角的“儲存並完成”按鈕:
  4. 點選右下角的"儲存並完成":
  5. 至此Jenkins環境已經部署完成,檢視已安裝的外掛列表,發現pipeline和blueocean都已裝好:

    體驗pipeline

    環境準備完畢,我們來建立一個pipeline並執行試試:
  6. 如下圖,點選紅框中的"新建Item":
  7. 在頁面表單上填寫任務名稱,再選擇"流水線",如下圖:
  8. 接下來會彈出詳細設定的表單,如下圖,選擇"流水線"的Tab頁,在頁面上直接輸入一段pipeline內容,再點選左下角的"儲存"按鈕:

    上圖紅框3的原始碼如下:
pipeline {
    agent any 
    stages {
        stage('Stage 1') {
            steps {
                echo 'Hello world!' 
            }
        }
    }
}
  1. 點選下圖紅框中的"立即構建",即可執行剛才輸入的pipeline指令碼:
  2. 任務執行完畢後如下圖所示,點選紅框中的圖示,即可檢視本次任務執行過程中的控制檯輸出:
  3. 如下圖,控制檯列印了pipeline的資訊:

    至此,Jenkins環境已經準備完畢,接下來的實戰將一起體驗流水線的更多功能。

    歡迎關注我的公眾號:程式設計師欣宸