天天看點

【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

準備條件

  • Azure Batch賬号
  • 需要安裝的軟體包(zip)檔案,裡面包含該軟體的msi安裝檔案, 此處使用python.msi 版本 3.3.3 作為例子(https://www.python.org/downloads/windows/)

開始安裝

1) 上傳需要安裝的軟體包到Batch Account中的Applications中

【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

參考文檔:

添加新應用程式包:https://docs.azure.cn/zh-cn/batch/batch-application-packages#add-a-new-application-package

2) 建立Pool并添加Start Task

  • Publisher 選擇 microsofwindowsserver
  • Offer選擇windowsserver
  • Sku選擇 2012-r2-datacenter-smalldisk
  • VM Size 選擇 Standard A2
【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

開啟Start Task并設定如下指令, 同時使用Pool Admin權限:

cmd /c msiexec /i %AZ_BATCH_APP_PACKAGE_pythonmsi#3.3.3%\python.msi /l*v msilog.txt /qn

注:

  1. cmd /c 為打開shell 指令視窗執行後面附帶的指令
  2. msiexec  /i   XXXXX /l*v msilog.txt /qn 為使用指令行背景直接安裝軟體,無視窗,日志寫入檔案msilog.txt中
  3. %AZ_BATCH_APP_PACKAGE_pythonmsi#3.3.3%\python.msi 是非常重要的一個參數,為第一步上傳的應用程式包中的名詞和版本,及zip包中的msi檔案名, “AZ_BATCH_APP_PACKAGE_” 部分固定不變
變量參數說明請參考文檔:https://docs.microsoft.com/zh-cn/azure/batch/batch-compute-node-environment-variables#environment-variables
【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

在Pool中添加第一步中上傳的軟體包引用,這一步與Start Task中需要執行的安裝指令緊密相關

【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

點選OK等待Pool建立完成。當Node的狀态為Idle時,可以檢視Start Task的完成狀态及檢視安裝時設定的輸出日志msilog.txt

驗證步驟

  • 檢視Start Task狀态 (Pool -> Nodes -> Start task info)
【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)
  • 檢視輸入日志msilog.txt (Pool -> Nodes -> Files)
【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)
  • 新加Job Task,使用以下指令分别設定PATH 及檢視Python版本号資訊
cmd /c setx path "%path%;C:\Python33"
【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)
C:\Python33 以安裝python的路徑為準,此處隻作為參考
cmd /c python -V
【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

在task的輸出檔案中檢視結果:

【Azure 批處理 Azure Batch】在Azure Batch中如何通過開始任務自動安裝第三方依賴的一些軟體(Windows環境)

建立Job及Task的參考文檔:

建立作業: https://docs.azure.cn/zh-cn/batch/quick-create-portal#create-a-job

建立任務: https://docs.azure.cn/zh-cn/batch/quick-create-portal#create-tasks

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!