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命令後,等構建完成後,刷新頁面,即可看到如下:

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