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

上一篇中,我們實現了通過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,並不符合我們生產時真正的要求,接下來我們會繼續對流水線進行改造。