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

Tassdar發表於2022-03-24

上一篇我們實現了把流水線的製品儲存到azure的流水線製品倉庫裡去,本篇我們會開始研究azure的釋出流水線。

本篇要研究的是把流水線倉庫的製品釋出到任意一臺公網的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的功能。

 

相關文章