チュートリアル - カスタム スクリプト拡張機能を使って Azure 内の Windows 仮想マシンにアプリケーションを展開するTutorial - Deploy applications to a Windows virtual machine in Azure with the Custom Script Extension

仮想マシン (VM) を迅速かつ一貫した方法で構成するには、一般的に、何らかの形で自動化することが望ましいです。To configure virtual machines (VMs) in a quick and consistent manner, some form of automation is typically desired. Windows VM をカスタマイズする一般的なアプローチとして、Windows のカスタム スクリプト拡張機能を使用する方法があります。A common approach to customize a Windows VM is to use Custom Script Extension for Windows. このチュートリアルで学習する内容は次のとおりです。In this tutorial you learn how to:

  • カスタム スクリプト拡張機能を使用して IIS をインストールするUse the Custom Script Extension to install IIS
  • カスタム スクリプト拡張機能を使用する仮想マシンを作成するCreate a VM that uses the Custom Script Extension
  • 拡張機能の適用後に実行中の IIS サイトを表示するView a running IIS site after the extension is applied

Azure Cloud Shell を起動するLaunch Azure Cloud Shell

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。It has common Azure tools preinstalled and configured to use with your account. [コピー] をクリックしてコードをコピーし、Cloud Shell に貼り付けて Enter キーを押すだけで、コードを実行することができます。Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Cloud Shell は、次のようにいくつかの方法で起動することができます。There are a few ways to launch the Cloud Shell:

コード ブロックの右上隅にある [使ってみる] をクリックします。Click Try It in the upper right corner of a code block. この記事の Cloud Shell
ブラウザーで Cloud Shell を開きます。Open Cloud Shell in your browser. https://shell.azure.com/powershell
Azure Portal の右上のメニューの [Cloud Shell] ボタンをクリックします。Click the Cloud Shell button on the menu in the upper right of the Azure portal. ポータルの Cloud ShellCloud Shell in the portal

PowerShell をインストールしてローカルで使用する場合、このチュートリアルでは Azure PowerShell モジュール バージョン 5.7.0 以降が必要になります。If you choose to install and use the PowerShell locally, this tutorial requires the Azure PowerShell module version 5.7.0 or later. バージョンを確認するには、Get-Module -ListAvailable AzureRM を実行します。Run Get-Module -ListAvailable AzureRM to find the version. アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。If you need to upgrade, see Install Azure PowerShell module. PowerShell をローカルで実行している場合、Connect-AzureRmAccount を実行して Azure との接続を作成することも必要です。If you are running PowerShell locally, you also need to run Connect-AzureRmAccount to create a connection with Azure.

カスタム スクリプト拡張機能の概要Custom script extension overview

カスタム スクリプト拡張機能は、Azure VM でスクリプトをダウンロードし、実行します。The Custom Script Extension downloads and executes scripts on Azure VMs. この拡張機能は、デプロイ後の構成、ソフトウェアのインストール、その他の構成や管理タスクに役立ちます。This extension is useful for post deployment configuration, software installation, or any other configuration / management task. スクリプトは、Azure ストレージや GitHub からダウンロードできます。また、拡張機能の実行時に Azure Portal に提供することもできます。Scripts can be downloaded from Azure storage or GitHub, or provided to the Azure portal at extension run time.

カスタム スクリプト拡張機能は Azure Resource Manager テンプレートと統合されており、Azure CLI、PowerShell、Azure Portal、または Azure 仮想マシン REST API を使用して実行することもできます。The Custom Script extension integrates with Azure Resource Manager templates, and can also be run using the Azure CLI, PowerShell, Azure portal, or the Azure Virtual Machine REST API.

カスタム スクリプト拡張機能は、Windows VM と Linux VM の両方で使用することができます。You can use the Custom Script Extension with both Windows and Linux VMs.

仮想マシンの作成Create virtual machine

まず、Get-Credential を使用して、VM の管理者のユーザー名とパスワードを設定します。First, set an administrator username and password for the VM with Get-Credential:

$cred = Get-Credential

New-AzureRmVM を使用して VM を作成できるようになりました。Now you can create the VM with New-AzureRmVM. 次の例では、場所 EastUSmyVM という名前の VM を作成します。The following example creates a VM named myVM in the EastUS location. これらが存在しない場合は、リソース グループ myResourceGroupAutomate と関連ネットワーク リソースが作成されます。If they do not already exist, the resource group myResourceGroupAutomate and supporting network resources are created. Web トラフィックを許可するには、このコマンドレットでポート 80 も開きます。To allow web traffic, the cmdlet also opens port 80.

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

リソースと VM が作成されるまで数分かかります。It takes a few minutes for the resources and VM to be created.

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

Set-AzureRmVMExtension を使用して、カスタム スクリプト拡張機能をインストールします。Use Set-AzureRmVMExtension to install the Custom Script Extension. この拡張機能によって powershell Add-WindowsFeature Web-Server が実行され、IIS Web サーバーがインストールされます。次に、VM のホスト名を表示するように Default.htm ページが更新されます。The extension runs powershell Add-WindowsFeature Web-Server to install the IIS webserver and then updates the Default.htm page to show the hostname of the VM:

Set-AzureRmVMExtension -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 サイトをテストするTest web site

ロード バランサーのパブリック IP アドレスを取得するには、Get-AzureRmPublicIPAddress を使用します。Obtain the public IP address of your load balancer with Get-AzureRmPublicIPAddress. 次の例では、先ほど作成した myPublicIPAddress の IP アドレスを取得します。The following example obtains the IP address for myPublicIPAddress created earlier:

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

このパブリック IP アドレスを Web ブラウザーに入力できます。You can then enter the public IP address in to a web browser. 次の例のように、Web サイトが表示され、ロード バランサーによって負荷分散されたトラフィックの宛先となった VM のホスト名が表示されます。The website is displayed, including the hostname of the VM that the load balancer distributed traffic to as in the following example:

実行中の IIS Web サイト

次の手順Next steps

このチュートリアルでは、仮想マシンへの IIS のインストールを自動化しました。In this tutorial, you automated the IIS install on a VM. 以下の方法について学習しました。You learned how to:

  • カスタム スクリプト拡張機能を使用して IIS をインストールするUse the Custom Script Extension to install IIS
  • カスタム スクリプト拡張機能を使用する仮想マシンを作成するCreate a VM that uses the Custom Script Extension
  • 拡張機能の適用後に実行中の IIS サイトを表示するView a running IIS site after the extension is applied

次のチュートリアルに進み、カスタムの VM イメージを作成する方法を学習してください。Advance to the next tutorial to learn how to create custom VM images.