Jenkins流水線(pipeline)實戰之:從部署到體驗
阿新 • • 發佈:2019-09-16
關於Jenkins流水線(pipeline)
Jenkins 流水線 (pipeline) 是一套外掛,讓Jenkins可以實現持續交付管道的落地和實施。
關於blueocean
Blue Ocean是pipeline的視覺化UI,本文中的demo暫時用不上blueocean,後續的文章中會用到;
系列文章地址
- 《Jenkins流水線(pipeline)實戰之:從部署到體驗》;
《讓Jenkins執行GitHub上的pipeline指令碼》;
本篇實戰概覽
本文是《Jenkins流水線(pipeline)實戰》系列的第一篇,本次實戰的內容是部署好帶有pipeline外掛的Jenkins環境,然後建立流水線任務並執行,全文由以下幾部分組成:- 部署Jenkins;
體驗pipeline;
環境資訊
為了快速完成Jenkins部署,本次實戰用到了Docker,請在實戰前準備好以下環境:- 作業系統:Ubuntu 18.04.2 LT
Docker:19.03.1
本次使用的Jenkins版本是2.176.3。
部署Jenkins
- 以root的身份登入Linux,新建一個資料夾,例如我這裡是/root/blueocean,進入此資料夾;
- 執行以下命令,即可建立好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:將該容器的資料保留在宿主機的目錄,這樣即使容器崩潰了,裡面的配置和任務都不會丟失;
- 執行命令 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
- 用瀏覽器訪問:http://192.168.50.75:8080 ,192.168.50.75是宿主機IP地址,頁面如下所示,在紅框中填入剛才得到的登入token a60f9aa5ebd4400e92886ca49d574198,再點選右下角的"繼續"按鈕:
- 接下來的頁面是讓使用者選擇安裝哪些外掛,如下圖,點選紅框內部,安裝官方推薦外掛:
- Jenkins開始自動安裝外掛,如下圖,需要您稍作等待:
- 外掛安裝完成後,會要求設定賬號和密碼,設定完畢後點擊右下角的“儲存並完成”按鈕:
- 點選右下角的"儲存並完成":
至此Jenkins環境已經部署完成,檢視已安裝的外掛列表,發現pipeline和blueocean都已裝好:
體驗pipeline
環境準備完畢,我們來建立一個pipeline並執行試試:- 如下圖,點選紅框中的"新建Item":
- 在頁面表單上填寫任務名稱,再選擇"流水線",如下圖:
- 接下來會彈出詳細設定的表單,如下圖,選擇"流水線"的Tab頁,在頁面上直接輸入一段pipeline內容,再點選左下角的"儲存"按鈕:
上圖紅框3的原始碼如下:
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
echo 'Hello world!'
}
}
}
}
- 點選下圖紅框中的"立即構建",即可執行剛才輸入的pipeline指令碼:
- 任務執行完畢後如下圖所示,點選紅框中的圖示,即可檢視本次任務執行過程中的控制檯輸出:
如下圖,控制檯列印了pipeline的資訊:
至此,Jenkins環境已經準備完畢,接下來的實戰將一起體驗流水線的更多功能。歡迎關注我的公眾號:程式設計師欣宸