共用方式為


將 Linux 映像新增至 Azure Stack Hub Marketplace

您可以將以Linux為基礎的映像新增至 Azure Stack Hub Marketplace,在 Azure Stack Hub 上部署 Linux 虛擬機(VM)。 將 Linux 映像新增至 Azure Stack Hub 最簡單的方式是透過市集管理。 這些映像已準備好並測試與 Azure Stack Hub 的相容性。

市場管理

若要從 Azure Marketplace 下載 Linux 映射,請參閱 將市集專案從 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。

後續步驟