Linux ベースのイメージを Azure Stack Hub Marketplace に追加することで、Azure Stack Hub に Linux 仮想マシン (VM) をデプロイできます。 Azure Stack Hub に Linux イメージを追加する最も簡単な方法は、マーケットプレース管理を使用することです。 これらのイメージは、Azure Stack Hub との互換性のために準備およびテストされています。
マーケットプレイス管理
Azure Marketplace から Linux イメージをダウンロードするには、「Azure から Azure Stack Hub に Marketplace 項目をダウンロードする」を参照してください。 Azure Stack Hub でユーザーに提供する Linux イメージを選択します。
これらのイメージは頻繁に更新されるため、最新の状態に保つために頻繁に確認してください。
独自のイメージを準備する
可能な限り、マーケットプレース管理を通じて利用可能なイメージをダウンロードします。 これらのイメージは、Azure Stack Hub で準備およびテストされています。
サポートされる最小 Azure Linux エージェント
Azure Stack Hub で Azure Linux エージェントと拡張機能をサポートするには、Linux 仮想マシン (VM) 上の Linux エージェント のバージョンがバージョン 2.2.10 以降である必要があり、Azure Stack Hub は現在のリリースの 2 つのリリース内にあるビルドを実行する必要があります。 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 に関する FAQ を参照してください。
独自の 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 Stack Hub Linux VM から到達可能な Azure ストレージ アカウント、Azure Stack Hub ストレージ アカウント、または GitHub リポジトリにファイルをアップロードします。
現時点では、VM のデプロイに cloud-init を使用することは、REST、PowerShell、および Azure CLI でのみサポートされており、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 をデプロイできます。