チュートリアル - カスタム スクリプト拡張機能を使って 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 を作成できるようになります。 次の例では、場所 EastUS に myVM という名前の 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 のホスト名が表示されます。
次の手順
このチュートリアルでは、仮想マシンへの IIS のインストールを自動化しました。 以下の方法を学習しました。
- カスタム スクリプト拡張機能を使用して IIS をインストールする。
- カスタム スクリプト拡張機能を使用する VM を作成する。
- 拡張機能の適用後に実行中の IIS サイトを表示する。
次のチュートリアルに進み、カスタムの VM イメージを作成する方法を学習してください。