Linux イメージを Azure Stack Hub Marketplace に追加する
Azure Stack Hub Marketplace に Linux ベースのイメージを追加することによって、Azure Stack Hub 上に Linux 仮想マシン (VM) をデプロイできます。 最も簡単に Linux イメージを Azure Stack Hub に追加する方法では、Marketplace Management を使用します。 これらのイメージは、Azure Stack Hub との互換性を確保できるよう、あらかじめ準備とテストが行われています。
Marketplace Management
Azure Marketplace から Linux イメージをダウンロードするには、Azure から Azure Stack Hub への Marketplace 項目のダウンロードに関する記事を参照してください。 Azure Stack Hub で、ユーザーに提供する Linux イメージを選択します。
これらのイメージは頻繁に更新されるので、こまめに確認して最新の状態に保つようにしてください。
独自のイメージを準備する
可能な限り、使用可能なイメージは、Marketplace Management からダウンロードしてください。 これらのイメージは、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 はありません。
PowerShell を使用して Linux VM を作成するには、「クイック スタート: Azure Stack Hub で PowerShell を使用して Linux サーバー VM を作成する」に従います。 -CustomData
フラグの一部として cloud-init.txt
を必ず参照してください。
$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 をデプロイできます。