자습서: Azure Resource Manager 템플릿을 사용하여 가상 머신 확장 배포Tutorial: Deploy virtual machine extensions with Azure Resource Manager templates

Azure 가상 머신 확장을 사용하여 Azure VM에서 배포 후 구성 및 자동화 작업을 수행하는 방법을 알아봅니다.Learn how to use Azure virtual machine extensions to perform post-deployment configuration and automation tasks on Azure VMs. Azure VM에서 여러 다양한 VM 확장을 사용할 수 있습니다.Many different VM extensions are available for use with Azure VMs. 이 자습서에서는 Azure Resource Manager 템플릿의 사용자 지정 스크립트 확장을 배포하여 Windows VM에서 PowerShell 스크립트를 실행합니다.In this tutorial, you deploy a Custom Script extension from an Azure Resource Manager template to run a PowerShell script on a Windows VM. 이 스크립트는 VM에 웹 서버를 설치합니다.The script installs Web Server on the VM.

이 자습서에서 다루는 작업은 다음과 같습니다.This tutorial covers the following tasks:

  • PowerShell 스크립트 준비Prepare a PowerShell script
  • 빠른 시작 템플릿 열기Open a quickstart template
  • 템플릿 편집Edit the template
  • 템플릿 배포Deploy the template
  • 배포 확인Verify the deployment

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

필수 조건Prerequisites

이 문서를 완료하려면 다음이 필요합니다.To complete this article, you need:

PowerShell 스크립트 준비Prepare a PowerShell script

다음 콘텐츠가 포함된 PowerShell 스크립트는 공개적으로 액세스 가능한 Azure Storage 계정에서 공유됩니다.A PowerShell script with the following content is shared from an Azure storage account with public access:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

사용자 고유의 위치에 파일을 게시하기로 선택하는 경우 자습서의 뒷부분에서 템플릿의 fileUri 요소를 업데이트해야 합니다.If you choose to publish the file to your own location, you must update the fileUri element in the template later in the tutorial.

빠른 시작 템플릿 열기Open a quickstart template

Azure 빠른 시작 템플릿은 Resource Manager 템플릿용 리포지토리입니다.Azure Quickstart Templates is a repository for Resource Manager templates. 템플릿을 처음부터 새로 만드는 대신 샘플 템플릿을 찾아서 사용자 지정할 수 있습니다.Instead of creating a template from scratch, you can find a sample template and customize it. 이 자습서에 사용되는 템플릿의 이름은 Deploy a simple Windows VM입니다.The template used in this tutorial is called Deploy a simple Windows VM.

  1. Visual Studio Code에서 파일 > 파일 열기를 차례로 선택합니다.In Visual Studio Code, select File > Open File.

  2. 파일 이름 상자에서 다음 URL을 붙여넣습니다. https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.jsonIn the File name box, paste the following URL: https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json

  3. 파일을 열려면 열기를 선택합니다.To open the file, select Open.
    템플릿은 5개의 리소스를 정의합니다.The template defines five resources:

    • Microsoft.Storage/storageAccounts.Microsoft.Storage/storageAccounts. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/publicIPAddresses.Microsoft.Network/publicIPAddresses. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/virtualNetworks.Microsoft.Network/virtualNetworks. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/networkInterfaces.Microsoft.Network/networkInterfaces. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Compute/virtualMachines.Microsoft.Compute/virtualMachines. 템플릿 참조를 참조하세요.See the template reference.

      템플릿을 사용자 지정하기 전에 템플릿의 몇 가지 기본적인 내용을 이해하면 유용합니다.It's helpful to get some basic understanding of the template before you customize it.

  4. 파일 > 다른 이름으로 저장을 선택하여 파일 복사본을 로컬 컴퓨터에 azuredeploy.json이라는 이름으로 저장합니다.Save a copy of the file to your local computer with the name azuredeploy.json by selecting File > Save As.

템플릿 편집Edit the template

다음 콘텐츠를 사용하여 기존 템플릿에 가상 머신 확장 리소스를 추가합니다.Add a virtual machine extension resource to the existing template with the following content:

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "name": "[concat(variables('vmName'),'/', 'InstallWebServer')]",
    "location": "[parameters('location')]",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/',variables('vmName'))]"
    ],
    "properties": {
        "publisher": "Microsoft.Compute",
        "type": "CustomScriptExtension",
        "typeHandlerVersion": "1.7",
        "autoUpgradeMinorVersion":true,
        "settings": {
            "fileUris": [
                "https://armtutorials.blob.core.windows.net/usescriptextensions/installWebServer.ps1"
            ],
            "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File installWebServer.ps1"
        }
    }
}

이 리소스 정의에 대한 자세한 내용은 확장 참조를 참조하세요.For more information about this resource definition, see the extension reference. 다음은 중요한 요소입니다.The following are some important elements:

  • name: 확장 리소스는 가상 머신 개체의 자식 리소스이므로 이름에 가상 머신 이름 접두사가 있어야 합니다.name: Because the extension resource is a child resource of the virtual machine object, the name must have the virtual machine name prefix. 자식 리소스를 참조하세요.See Child resources.
  • dependsOn: 가상 머신을 만든 후 확장 리소스를 만듭니다.dependsOn: Create the extension resource after you've created the virtual machine.
  • fileUris: 스크립트 파일이 저장되는 위치입니다.fileUris: The locations where the script files are stored. 제공된 위치를 사용하지 않으려면 값을 업데이트해야 합니다.If you choose not to use the provided location, you need to update the values.
  • commandToExecute: 이 명령은 스크립트를 호출합니다.commandToExecute: This command invokes the script.

템플릿 배포Deploy the template

배포 절차는 다음의 “템플릿 배포” 섹션을 참조하세요. 자습서: 종속 리소스가 있는 Azure Resource Manager 템플릿 만들기에서 사용한 대로 Cloud Shell 배포 방법을 사용합니다.For the deployment procedure, see the "Deploy the template" section of Tutorial: Create Azure Resource Manager templates with dependent resources. 가상 머신 관리자 계정에 대해 생성된 암호를 사용하는 것이 좋습니다.We recommended that you use a generated password for the virtual machine administrator account. 이 문서의 필수 구성 요소 섹션을 참조하세요.See this article's Prerequisites section.

배포 확인Verify the deployment

  1. Azure Portal에서 VM을 선택합니다.In the Azure portal, select the VM.
  2. VM 개요에서 복사하려면 클릭을 선택하여 IP 주소를 복사한 다음, 브라우저 탭에 붙여넣습니다.In the VM overview, copy the IP address by selecting Click to copy, and then paste it in a browser tab.
    기본 IIS(인터넷 정보 서비스) 시작 페이지가 열립니다.The default Internet Information Services (IIS) welcome page opens:

인터넷 정보 서비스 시작 페이지

리소스 정리Clean up resources

배포한 Azure 리소스가 더 이상 필요하지 않은 경우 리소스 그룹을 삭제하여 정리합니다.When you no longer need the Azure resources you deployed, clean them up by deleting the resource group.

  1. Azure Portal의 왼쪽 메뉴에서 리소스 그룹을 선택합니다.In the Azure portal, in the left pane, select Resource group.
  2. 이름으로 필터링 상자에서 리소스 그룹 이름을 입력합니다.In the Filter by name box, enter the resource group name.
  3. 해당 리소스 그룹 이름을 선택합니다.Select the resource group name.
    리소스 그룹에서 6개의 리소스가 표시됩니다.Six resources are displayed in the resource group.
  4. 최상위 메뉴에서 리소스 그룹 삭제를 선택합니다.In the top menu, select Delete resource group.

다음 단계Next steps

이 자습서에서는 가상 머신 및 가상 머신 확장을 배포했습니다.In this tutorial, you deployed a virtual machine and a virtual machine extension. 이 확장은 가상 머신에 IIS 웹 서버를 설치했습니다.The extension installed the IIS web server on the virtual machine. SQL Database 확장을 사용하여 BACPAC 파일을 가져오는 방법은 다음을 참조하세요.To learn how to use the Azure SQL Database extension to import a BACPAC file, see: