チュートリアル - カスタム スクリプト拡張機能を使って Azure 内の Windows 仮想マシンにアプリケーションを展開する

この記事の対象: ✔️ Windows ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

迅速かつ一貫した方法で仮想マシン (VM) を構成するには、Windows 用のカスタム スクリプト拡張機能を使用することができます。 このチュートリアルで学習する内容は次のとおりです。

  • カスタム スクリプト拡張機能を使用して IIS をインストールする。
  • カスタム スクリプト拡張機能を使用する VM を作成する。
  • 拡張機能の適用後に実行中の IIS サイトを表示する。

Azure Cloud Shell を起動する

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。

Cloud Shell を開くには、コード ブロックの右上隅にある [Open Cloudshell] (Cloudshell を開く) を選択します。 https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。

カスタム スクリプト拡張機能の概要

カスタム スクリプト拡張機能は、Azure VM でスクリプトをダウンロードし、実行します。 この拡張機能は、デプロイ後の構成、ソフトウェアのインストール、その他の構成タスクや管理タスクに役立ちます。 スクリプトは、Azure Storage や GitHub からダウンロードできます。または、拡張機能の実行時に Azure portal にスクリプトを提供することもできます。

カスタム スクリプト拡張機能は Azure Resource Manager テンプレートと統合されており、Azure CLI、PowerShell、Azure portal、または Azure 仮想マシン REST API を使用して実行できます。

カスタム スクリプト拡張機能は、Linux と Windows の両方の VM で使用できます。

仮想マシンの作成

次のように、Get-Credential を使用して VM の管理者のユーザー名とパスワードを設定します。

$cred = Get-Credential

これで、New-AzVM を使用して VM を作成できるようになります。 次の例では、場所 EastUSmyVM という名前の VM を作成します。 これらが存在しない場合は、リソース グループ myResourceGroupAutomate と関連ネットワーク リソースが作成されます。 Web トラフィックを許可するには、このコマンドレットでポート 80 も開きます。

New-AzVm `
    -ResourceGroupName "myResourceGroupAutomate" `
    -Name "myVM" `
    -Location "East US" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -OpenPorts 80 `
    -Credential $cred

リソースと VM の作成には数分かかります。

IIS のインストールを自動化する

Set-AzVMExtension を使用して、カスタム スクリプト拡張機能をインストールします。 この拡張機能によって powershell Add-WindowsFeature Web-Server が実行され、IIS Web サーバーがインストールされます。次に、VM のホスト名を表示するように Default.htm ページが更新されます。

Set-AzVMExtension -ResourceGroupName "myResourceGroupAutomate" `
    -ExtensionName "IIS" `
    -VMName "myVM" `
    -Location "EastUS" `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.8 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'

Web サイトをテストする

ロード バランサーのパブリック IP アドレスを取得するには、Get-AzPublicIPAddress を使用します。 次の例では、先ほど作成した myPublicIPAddress の IP アドレスを取得しています。

Get-AzPublicIPAddress `
    -ResourceGroupName "myResourceGroupAutomate" `
    -Name "myPublicIPAddress" | select IpAddress

このパブリック IP アドレスを Web ブラウザーに入力できます。 次の例のように、Web サイトが表示され、ロード バランサーによって負荷分散されたトラフィックの宛先となった VM のホスト名が表示されます。

Web ブラウザーのパブリック IP アドレスのスクリーンショット。

次の手順

このチュートリアルでは、仮想マシンへの IIS のインストールを自動化しました。 以下の方法を学習しました。

  • カスタム スクリプト拡張機能を使用して IIS をインストールする。
  • カスタム スクリプト拡張機能を使用する VM を作成する。
  • 拡張機能の適用後に実行中の IIS サイトを表示する。

次のチュートリアルに進み、カスタムの VM イメージを作成する方法を学習してください。