Azure DevOps (六) 通過FTP上傳流水線制品到Linux服務器


上一篇我們實現了把流水線的制品保存到azure的流水線制品倉庫里去,本篇我們會開始研究azure的發布流水線。

文章配套視頻專欄:

https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536

本篇要研究的是把流水線倉庫的制品發布到任意一台公網的linux服務器上去,所以我們先研究FTP和流水線的聯動。

首先我們需要創建一條發布流水線,點擊左側的Releases,創建新的流水線,選擇我們在前幾篇文章中發布到倉庫的制品。

 

創建好流水線后,點擊Stages添加第一個步驟,這里我們選擇Empty Job,填入一下基礎的信息,然后點擊我們創建好的步驟進行任務的編輯,

進來之后azure會默認給我們添加了一個agent,我們可以理解為agent就是我們的執行器,他會去幫我執行接下來我們定義的各種自動化任務,

因為我們的目的是要執行linux的命令並且上傳文件到linux服務器上,所以我們要選擇agent的類型為ubantu.

 

 

 

 agent設置好之后,我們接下來創建兩個task,他們的作用分別為:

1.查看從流水線倉庫下載過來的制品是否正確。

2.使用Ftp上傳到一個公網的服務器上去。

首先創建第一個task,我們點擊agent上的加號,在右側搜索bash,點擊add,添加一個bash操作到我們的流水線上。

 

 

 

然后我們選中Bash選擇模式為online,然后在里面寫一些簡單的腳本來查看我們的流水線制品。

 

 

然后我們添加第二個task,我們在右側搜索FTP

 

 

 然后填寫一下FTP的信息, 這里Authentication Method我們選擇輸入驗證,然后填入我們的FTP信息,注意URL要帶上ftp://

rootFolder是我們制品所在的位置,Remote directory是我們要上傳到服務器的哪個文件夾上去,$(Build.BuildId)這個環境變量記錄的是編譯的id我們可以使用它讓每次的上傳都新建一個文件夾。

 

 

 填寫好之后保存並一下我們的發布流水線,這里順道貼一下FTP的安裝命令

1、查看是否已經安裝了vsftpd
vsftpd -version

2、安裝vsftpd(CentOS7)
yum install -y vsftpd

3.創建一個目錄
mkdor /home/ftp

4.授權
chmod 777 /home/ftp

5.創建用戶
useradd -d /home/ftp -s /bin/bash  myftp

6.設置密碼
passwd myftp 

發布流水線創建好之后,我們稍微回去改造一下之前的編譯流水線,畢竟總不能每次都把全量的代碼傳過去,我們讓制品每次只上傳編譯出來的jar包。

我們修改一下targetPath,指定到我們要上傳的文件上去。

- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Pipeline.Workspace)/s/webhook/target/demo-app.jar'
    artifact: 'webhook'
    publishLocation: 'pipeline'

接下來運行一下我們的流水線,點擊Create a new release,然后進入就會看見已經開始運行了。

 

點擊logs,我們可以看到,流水線已經開始把制品上傳到了服務器,我們同時去服務器上驗證一下上傳的結果

我們先看一下我們的第一個bash的輸出結果

 

再看一下我們ftp的輸出結果

 

 然后去服務器上看一下目錄上有沒有對應的文件

 

 

 上傳成功,完美。

到這里打通流水線和FTP就結束了,雖然文章看着很短,但是中間采坑的過程很長,不過摸着過來了就好,下一篇我們會繼續研究azure的功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM