將 Linux 映像新增至 Azure Stack Hub Marketplace
您可以將以Linux為基礎的映像新增至 Azure Stack Hub Marketplace,在 Azure Stack Hub 上部署 Linux 虛擬機(VM)。 將 Linux 映像新增至 Azure Stack Hub 最簡單的方式是透過市集管理。 這些映像已準備好並測試與 Azure Stack Hub 的相容性。
Marketplace 管理
若要從 Azure Marketplace 下載 Linux 映射,請參閱 將 Marketplace 專案從 Azure 下載至 Azure Stack Hub。 選取您想要在 Azure Stack Hub 上提供使用者的 Linux 映像。
這些映射有頻繁的更新,因此請經常回頭查看以保持最新狀態。
準備您自己的映像
儘可能下載可透過市集管理取得的映像。 這些映像已經過 Azure Stack Hub 的準備和測試。
最低支援的 Azure Linux 代理程式
若要取得 Azure Stack Hub 中 Azure Linux 代理程式和擴充功能的支援, Linux 虛擬機上的 Linux 代理程式 版本必須晚於或等於 2.2.10 版,而 Azure Stack Hub 必須執行目前版本兩個版本中的組建。 如需 Azure Stack Hub 更新的相關信息,請參閱 Azure Stack Hub 版本資訊。
自 2020 年 7 月起,Linux 代理程式的最低支援版本為 2.2.41。 如果 Linux 代理程式版本早於 2.2.10 版,您必須使用散發套件管理員和啟用自動更新來更新 VM。
- 如果發行版本廠商在套件存放庫中沒有最低的 Linux 代理程式版本,系統仍受到支援。 如果 Linux 代理程式版本晚於 2.1.7 版,您必須啟用代理程式自動更新功能。 該功能會擷取最新版的程式碼以處理延伸模組。
- 如果 Linux 代理程式版本早於 2.2.10 版,或 Linux 系統不支援,您可能需要先更新代理程式,再取得支援。
- 如果 Linux 代理程式版本是由發行者自訂,Microsoft 可能會由於該自訂而將您導向至發行者,以取得代理程式或延伸模組特定支援。 若要升級 Linux 代理程式,請參閱如何更新 VM 上的 Azure Linux 代理程式。
檢查您的Linux代理程式版本
若要檢查 Linux 代理程式版本,請執行:
waagent --version
例如,如果您在Ubuntu 18.04上執行此命令,您會看到輸出:
WALinuxAgent - 2.2.45
Python - 3.6.9
Goal State Agent - 2.2.48.1
如需代理程式的詳細資訊,請參閱 WALinuxAgent 的常見問題。
準備您自己的Linux映像
您可以使用下列指示來準備自己的 Linux 映像:
Cloud-init
您可以使用 Cloud-init 來自定義 Linux VM,您可以使用下列 PowerShell 指示。
步驟 1:使用您的 cloud-config 建立cloud-init.txt檔案
建立名為 cloud-init.txt 的檔案,並貼上下列雲端組態:
#cloud-config
package_upgrade: true
packages:
- nginx
- nodejs
- npm
write_files:
- owner: www-data:www-data
path: /etc/nginx/sites-available/default
content: |
server {
listen 80;
location / {
proxy_pass http://localhost:3000;
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;
}
}
- owner: azureuser:azureuser
path: /home/azureuser/myapp/index.js
content: |
var express = require('express')
var app = express()
var os = require('os');
app.get('/', function (req, res) {
res.send('Hello World from host ' + os.hostname() + '!')
})
app.listen(3000, function () {
console.log('Hello world app listening on port 3000!')
})
runcmd:
- service nginx restart
- cd "/home/azureuser/myapp"
- npm init
- npm install express -y
- nodejs index.js
步驟 2:在 Linux VM 部署期間參考cloud-init.txt
將檔案上傳至 Azure 記憶體帳戶、Azure Stack Hub 記憶體帳戶,或 Azure Stack Hub Linux VM 可連線的 GitHub 存放庫。
目前,只有在 REST、PowerShell 和 Azure CLI 上才支援使用 cloud-init 進行 VM 部署,而且 Azure Stack Hub 上沒有相關聯的入口網站 UI。
您可以遵循 快速入門:在 Azure Stack Hub 中使用 PowerShell 建立 Linux 伺服器 VM,以使用 PowerShell 建立 Linux VM。 請務必參考 cloud-init.txt
作為旗標的 -CustomData
一部分:
$VirtualMachine =Set-AzVMOperatingSystem -VM $VirtualMachine `
-Linux `
-ComputerName "MainComputer" `
-Credential $cred -CustomData "#include https://cloudinitstrg.blob.core.windows.net/strg/cloud-init.txt"
將映像新增至 Marketplace
請遵循 將映像新增至 Marketplace。 請確定 OSType
參數已設定為 Linux
。
將映像新增至 Marketplace 之後,就會建立 Marketplace 專案,且使用者可以部署 Linux VM。