461 字
2 分鐘
Azure DevOps 部署到 VM (3) - Secret
承上篇,我們講到如何自動化打包與部署,這次我們來說機敏的參數該如何處理,正常來說開發者是不會把機敏的token或key放在repo中的,這是非常危險的事情,就算刪掉了,也可以在git中找回來,因次各DevOps工具都會有存在這種參數的地方,Github的Actions secrets and variables、Gitlab的variables,而在Azure DevOps這功能叫做Library的Variable groups。Variable groups其他說明可以看微軟文件。
本次先假設我們會需要用到mailgun的token,並把它放到.env這個檔案給專案用,那就開始吧!
建立Variable
到專案中點選Pipelines > Library > Variable group

輸入group名稱,並在下面新增參數,如果不需要之後可以重新檢視參數內容,可以開啟旁邊的鎖頭,之後在網頁上就只能修改不能看。

這樣就建立完成了
撰寫azure-pipelines.yml
我們拿上一篇的azure-pipelines.yml繼續改
trigger:- main
pool: vmImage: ubuntu-latest
stages:- stage: Build variables: #新增這行 - group: env #新增這行 jobs: - job: build_npm steps: - task: NodeTool@0 inputs: versionSpec: '10.x' displayName: 'Install Node.js' - script: echo "test" > test.html - script: echo "mailgun_token=$(mailgun_token)" > .env #新增這行 - publish: $(System.DefaultWorkingDirectory) artifact: afterbuild- stage: Deploy dependsOn: Build condition: succeeded() jobs: - deployment: VMDeploy displayName: Deploy to VM environment: name: Production resourceType: virtualMachine strategy: runOnce: deploy: steps: - download: current artifact: afterbuild - script: rsync -avh --cvs-exclude $(Pipeline.Workspace)/afterbuild/ /var/www/html第一次執行pipelines要點選讀取variable的授權在stage中新增variables,並指定剛剛的group env,在script中就可以讀取參數。

等pipelines部署完成,到Server上看看有沒有部署成功

結語
透過這方法就可以隱藏起來重要的參數,不要把token或密碼放在repo中,之後也可以直接在variable換參數。下一篇來講如何幫NGINX設定也加入DevOps。