Jenkins之Pipeline代碼流水線

Pipeline翻譯過來就是流水線的意思,在公司中可能會有不少項目,若是使用Jenkins構建完成後,開發構建項目須要一項一項點擊,比較麻煩,所以,pipeline就應用而生了 。web

1、部署Pipeline——代碼流水線管理

Jenkins部署及其餘服務部署可參考博文:持續集成之代碼質量管理———Sonar

另外咱們再開一臺測試端
一、Jenkins服務器操做以下(配置免密登陸及對Jenkins的用戶配置受權):bash

執行命令主要涉及的是權限問題,咱們要搞明白,jenkins 是以什 麼權限來執行命令的。那麼問題來了,咱們如今 192.168.171.134 上,若是在想 192.168.171.135 上執行命令。須要怎麼作呢?
咱們作無祕鑰有 2 種分案:
1)使用 jenkins 用戶將祕鑰分發給 192.168.171.135 上
2)使用 root 用戶將祕鑰分發給 192.168.171.135 上,若是使用 root 用戶還要進 行 visudo 受權。由於 Web 上默認執行命令的用戶是 jenkins 服務器

這裏咱們使用第二種ssh

[root@jenkins /]# ssh-copy-id root@192.168.171.135        # 將公鑰發送到測試端
[root@jenkins /]# visudo       # 受權
root    ALL=(ALL)       ALL         #在root用戶的受權下寫入如下內容
jenkins     ALL=(ALL)   NOPASSWD:/usr/bin/ssh

二、Jenkins的web頁面添加pipeline插件ide

依次點擊:系統管理==>>插件管理==>>點擊高級
下載我提供的插件(提取碼: 9rak),按照編號依次上傳至Jenkins測試

Jenkins之Pipeline代碼流水線
三、新建任務
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
在下面輸入要執行的命令,這裏輸入一個測試命令「sudo ssh root@192.168.171.135 source /etc/init.d/test.sh」
Jenkins之Pipeline代碼流水線
在測試端編寫對應的腳本並測試:插件

[root@test /]# cat > /etc/init.d/test.sh << EOF
> #!/bin/bash
> echo "hello world"
> EOF
[root@test /]# chmod +x /etc/init.d/test.sh 
#回到Jenkins服務器測試命令是否能夠執行成功
[root@jenkins /]# sudo ssh root@192.168.171.135 source /etc/init.d/test.sh 
hello world

返回Jenkins的web主頁面,點擊以前建立的一個web1項目:
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
上面添加的構建後操做,做用是,當這個項目構建後,就會自動觸發剛剛建立的pipeline項目。翻譯

新建視圖,更直觀的測試兩個項目的關係
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
Jenkins之Pipeline代碼流水線
進行構建測試:code

如下是以前的,注意測試前和測試後的顏色對比,下面的顏色是沒有關聯構建的:
Jenkins之Pipeline代碼流水線
執行RUN命令後,等構建完成後,刷新頁面,便可看到以下:
Jenkins之Pipeline代碼流水線
能夠很明顯的看到,新產生的視圖兩個顏色是一致的,說明關聯成功了blog

相關文章
相關標籤/搜索