次の方法で共有


Linux イメージを Azure Stack Hub Marketplace に追加する

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 をデプロイできます。

次のステップ