Pipeline翻譯過來就是流水線的意思,在公司中可能會有不少項目,若是使用Jenkins構建完成後,開發構建項目須要一項一項點擊,比較麻煩,所以,pipeline就應用而生了 。web
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測試
三、新建任務
在下面輸入要執行的命令,這裏輸入一個測試命令「sudo ssh root@192.168.171.135 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 root@192.168.171.135 source /etc/init.d/test.sh hello world
返回Jenkins的web主頁面,點擊以前建立的一個web1項目:
上面添加的構建後操做,做用是,當這個項目構建後,就會自動觸發剛剛建立的pipeline項目。翻譯
新建視圖,更直觀的測試兩個項目的關係
進行構建測試:code
如下是以前的,注意測試前和測試後的顏色對比,下面的顏色是沒有關聯構建的:
執行RUN命令後,等構建完成後,刷新頁面,便可看到以下:
能夠很明顯的看到,新產生的視圖兩個顏色是一致的,說明關聯成功了blog