Azure DevOps (七) 通過SSH部署上傳到伺服器的應用

Tassdar發表於2022-03-28

上一篇中,我們實現了通過FTP把流水線編譯出來的製品上傳到我們的公網伺服器上,這一篇我們來研究一下通過azure的ssh連線到伺服器

把應用在伺服器上執行起來。

首先,我們書接上文,在release流水線的agent中新增第三個task,我們在右側搜尋ssh,點選新增。

 

 

 新增完成之後,需要我們去維護一個ssh的連線資訊,我們點選Manage會跳轉到azure的服務連線管理介面,在這裡我們新增一個ssh的資訊。

 

下拉到ssh,點選下一步,填入SSH的資訊,主要要在勾選一下下面的單選框,讓所有流水線都可以訪問到這個憑證。

 

 

然後返回我們流水線的SSH介面,重新整理選擇我們新建立的憑證,選擇inline scripts選項,編寫指令碼,在編寫指令碼之前我們需要準備一些東西

1.守護程式的檔案

2.nginx的反向代理檔案

當然也可以不進行反向代理,直接暴露服務也是沒問題的,測試環境無所謂,生產上肯定是要包一下反向代理的,所以我們按生產的來。

守護程式檔案內容我這裡寫了一個簡單的

[Unit]
Description=Example java App running on centos

[Service]
WorkingDirectory=/home/ftp
ExecStart=/usr/bin/java -jar /home/ftp/demo-app.jar
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root

[Install]
WantedBy=multi-user.target

 

nginx反向代理節點把80代理到1433:

server {
    listen        80;
    location / {
        proxy_pass         http://localhost:1433;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

 然後我們需要在伺服器上線先手動把守護程式和反向代理配置好,這樣日後流水線釋出的時候只需要重啟一下守護程式應用就自動重啟了。

接下來我們在bash中輸入重啟守護程式的命令,用於每次流水線執行完後重啟應用。

cd /home/ftp/app
tar -xvf demo.tar.gz
systemctl start demo

 

 

然後我們執行一下流水線看看效果,執行成功,沒有報錯。

 

 我們上伺服器看一下應用程式,守護程式重啟成功,程式正常執行。

 

 到這裡,我們通過流水線完成了從程式碼構建-》製品上傳到伺服器-》重啟應用的整套流程,但是這只是一個非常簡單的demo,並不符合我們生產時真正的要求,接下來我們會繼續對流水線進行改造。

相關文章