Jenkins之Pipeline程式碼流水線

  • 2020 年 3 月 26 日
  • 筆記

Pipeline翻譯過來就是流水線的意思,在公司中可能會有很多項目,如果使用Jenkins構建完成後,開發構建項目需要一項一項點擊,比較麻煩,因此,pipeline就應用而生了 。

一、部署Pipeline——程式碼流水線管理

Jenkins部署及其他服務部署可參考博文:持續集成之程式碼品質管理———Sonar 另外我們再開一台測試端 1、Jenkins伺服器操作如下(配置免密登錄及對Jenkins的用戶配置授權):

執行命令主要涉及的是許可權問題,我們要搞明白,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

這裡我們使用第二種

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

2、Jenkins的web頁面添加pipeline插件

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

3、新建任務

在下面輸入要執行的命令,這裡輸入一個測試命令「sudo ssh [email protected] source /etc/init.d/test.sh」

在測試端編寫對應的腳本並測試:

[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 [email protected] source /etc/init.d/test.sh  hello world

返回Jenkins的web主頁面,點擊之前創建的一個web1項目:

上面添加的構建後操作,作用是,當這個項目構建後,就會自動觸發剛剛創建的pipeline項目。

新建視圖,更直觀的測試兩個項目的關係

進行構建測試:

以下是之前的,注意測試前和測試後的顏色對比,下面的顏色是沒有關聯構建的:

執行RUN命令後,等構建完成後,刷新頁面,即可看到如下:

可以很明顯的看到,新產生的視圖兩個顏色是一致的,說明關聯成功了