티스토리 뷰

<참조>

https://docs.microsoft.com/ko-kr/azure/azure-resource-manager/template-tutorial-create-first-template?tabs=azure-powershell

 

자습서 - 첫 번째 Azure Resource Manager 템플릿 만들기 및 배포

첫 번째 Azure Resource Manager 템플릿을 만드는 단계를 설명합니다. 템플릿 파일 구문 및 스토리지 계정을 배포하는 방법에 대해 알아봅니다.

docs.microsoft.com

 

 

 

#주의사항#

 

우리가 지금부터 진행하게 될 실습의 내용은 MS 공식문서를 바탕으로 재구성하였기 때문에 내용면에서 원문과는 상이한 부분이 있다. 주간적으로 판단해 불필요하다고 여겨지는 부분은 생략하고 필요하다고 여겨지는 부분은 추가하여 작성하였다.  이 점을 주의해서 활용하길 바란다. 

 

 

 

본격적으로 들어가기 전에 먼저 ARM(Azure Resource Manage) 템플릿을 사용하여 IaC(Infra as Code)를 실현해보는 간단한 몸풀기 실습부터 진행해보도록 하자.

 

 

이 자습서에서는 Resource Manager 템플릿을 소개한다. 시작 템플릿을 만들어 Azure에 배포하는 방법을 보여준다. 템플릿의 구조와 템플릿을 사용하는데 필요한 도구에 대해 알아본다. 

이 자습서는 시리즈의 첫 번째 자습서이다. 시리즈를 진행하면서 Resource Manager 템플릿의 모든 핵심 부분을 살펴볼 때까지 시작 템플릿을 단계별로 수정한다. 이러한 요소는 훨씬 더 복잡한 템플릿의 구성 요소이다. 시리즈가 끝날 때쯤에는 자신만의 고유한 템플릿을 만들고, 이 템플릿을 사용하여 배포를 자동화할 준비가 된다. 

템플릿을 사용하면 얻을 수 있는 이점과 템플릿을 사용하여 배포를 자동화해야 하는 이유에 대해 알아보려면 Azure Resource Manager 템플릿을 참조한다. 

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만든다.

 

 

 

도구 가져오기

 

먼저 템플릿을 만들고 배포하는데 필요한 도구가 있는지 확인한다.

 

 

 

편집기

템플릿은 JSON 파일이다. 템플릿을 만들려면 적절한 JSON 편집기가 필요하다. Resource Manager 도구 확장이 있는 Visual Studio Code를 사용하는 것이 좋다. 이러한 도구를 설치해야 하는 경우 01 Azure 실습을 위한 Visual Studio Code 환경 구성을 참조한다. 

 

 

명령줄(Command-line) 배포

템플릿을 배포하려면 Azure PowerShell 또는 Azure CLI도 필요하다. 설치 지침은 다음을 참조한다. 

Azure PowerShell 또는 Azure CLI가 설치되면 처음으로 로그인해야 한다. 도움을 받으려면 로그인 - PowerShell 또는 로그인 - Azure CLI를 참조한다.

이제 템플릿에 대한 학습을 시작할 준비가 되었다.

 

 

첫 번째 템플릿 만들기

 

1. Resource Manager 도구 확장이 설치된 Visual Studio Code를 연다.

2. azuredeploy.json이라는 이름의 파일을 생성하고 다음과 같이 코드를 붙여넣고 저장한다.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": []
}

3. VS Code 환경은 다음과 같은 모습일 것이다.

이 템플릿은 실제 리소스를 배포하지 않는다. 빈 템플릿으로 시작하면 템플릿 배포 단계를 익히면서 동시에 문제가 발생할 가능성을 최소화할 수 있다.

 

JSON 파일에 있는 요소는 다음과 같다.

  • $schema: JSON 스키마 파일의 위치를 지정한다. 스키마 파일은 템플릿 내에서 사용할 수 있는 속성을 설명한다. 예를 들어 스키마는 resources를 템플릿의 유효한 속성 중 하나로 정의한다. 스키마의 날짜가 2015-01-01이라는 것에 신경쓰지 않아도 된다. 이 스키마 버전은 최신 버전이며, 최신 기능이 모두 포함되어 있다. 도입된 이후 호환성이 손상되는 변경이 없었으므로 스키마 날짜가 변경되지 않았을 뿐이다. 
  • contentVersion: 템플릿의 버전(예: 1.0.0.0)을 지정한다. 이 요소에 값을 제공할 수 있다. 이 값을 사용하여 템플릿에서 중요한 변경 내용을 문서화할 수 있다. 템플릿을 사용하여 리소스를 배포할 때 이 값을 사용하면 정확한 템플릿이 사용되도록 할 수 있다.
  • resources: 배포하거나 업데이트하려는 리소스가 포함된다. 현재 비어 있지만 나중에 리소스를 추가할 수 있다.

축하한다. 첫 번째 템플릿을 만들었다. 

 

 

 

Azure에 로그인

 

Azure PowerShell/Azure CLI를 사용하여 시작하려면 Azure 자격 증명으로 로그인한다.

 

특정 디렉토리에서 Open with Code를 선택하여 VS Code 편집기를 연다.

 

Ctrl +  Shift + p를 눌러 Shell Launcher: Launch를 선택한다.

구동하고자 하는 shell인 PowerShell Core를 선택한다.

다음과 같은 터미널 창이 열리면 Connect-AzAccount 명령을 수행한다.

PowerShell 6.2.3
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS C:\AzureDevOps-Excercise> Connect-AzAccount
WARNING: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code G9Y453E8J to authenticate.

 

인증을 위해 생성된 URL로 이동하여 제시된 코드를 입력한다.

로그인에 성공하면 다음과 같은 창이 뜬다.

터미널에서 확인해 보면 정상적으로 로그인이 이루어 진것을 확인할 수 있다.

PowerShell 6.2.3
Copyright (c) Microsoft Corporation. All rights reserved.
 
https://aka.ms/pscore6-docs
Type 'help' to get help.
 
PS C:\AzureDevOps-Excercise> Connect-AzAccount
WARNING: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code HTQQZDDK9 to authenticate.
 
Account                  SubscriptionName              TenantId                             Environment
-------                  ----------------              --------                             -----------
zerobig.devops@gmail.com Visual Studio Enterprise 2019 54a472fb-xxxx-xxxx-xxxx-fe808f9e6e64 AzureCloud
 
PS C:\AzureDevOps-Excercise>

 

편의상 윈도우즈 환경의 PowerShell Core 터미널에서 계속 az 명령을 수행하는 시나리오로 진행하겠다.

리눅스 환경의 터미널 상에서 Azure CLI가 설치된 경우에도 명령은 동일하다.

zerobig@zerovmu1604:~$ az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code GC4M6MG95 to authenticate.


[

  {

    "cloudName": "AzureCloud",

    "id": "2e5d848e-XXXX-XXXX-XXXX-fd25ae915bcd",     

    "isDefault": true,

    "name": "Visual Studio Enterprise 2019",

    "state": "Enabled",

    "tenantId": "54a472fb-XXXX-XXXX-XXXX-fe808f9e6e64",

    "user": {

      "name": "zerobig.devops@gmail.com",

      "type": "user"

    }

  }

]

 

 

리소스 그룹 만들기

 

템플릿을 배포하는 경우 리소스를 포함할 리소스 그룹을 지정한다. 배포 명령을 실행하기 전에 먼저 Azure CLI 또는 Azure PowerShell을 사용하여 리소스 그룹을 만든다. 

 

PS C:\AzureDevOps-Excercise> New-AzResourceGroup -Name zeroRG -Location "Korea Central"
 
ResourceGroupName : zeroRG
Location          : koreacentral
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/2e5d848e-xxxx-xxxx-xxxx-fd25ae915bcd/resourceGroups/zeroRG…

 

zerobig@zerovmu1604:~$ az group create --name zerobigRG --location "Korea Central"
{
  "id": "/subscriptions/2e5d848e-xxxx-xxxx-xxxx-fd25ae915bcd/resourceGroups/zerobigRG",
  "location": "koreacentral",
  "managedBy": null,
  "name": "zerobigRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

 

Azure 포털에서 확인해 보면 정상적으로 리소스 그룹이 셍성된 것을 확인할 수 있다.

 

 

템플릿 배포

 

템플릿을 배포하려면 Azure CLI 또는 Azure PowerShell을 사용한다. 만든 리소스 그룹을 사용한다. 배포 이름은 배포 기록에서 쉽게 식별할 수 있도록 지정한다. 편의를 위해 템플릿 파일의 경로를 저장하는 변수도 만든다. 이 변수를 사용하면 배포할 때마다 경로를 다시 입력할 필요가 없으므로 배포 명령을 더 쉽게 실행할 수 있다.

 

PS C:\AzureDevOps-Excercise> $templateFile = "C:\AzureDevOps-Excercise\azuredeploy.json"
PS C:\AzureDevOps-Excercise> New-AzResourceGroupDeployment -Name blanktemplate -ResourceGroupName zeroRG -TemplateFile $templateFile
 
DeploymentName          : blanktemplate
ResourceGroupName       : zeroRG
ProvisioningState       : Succeeded
Timestamp               : 11/13/2019 1:29:03 PM
Mode                    : Incremental
TemplateLink            :
Parameters              :
Outputs                 :
DeploymentDebugLogLevel :

 

zerobig@zerovmu1604:~$ pwd
/home/zerobig
zerobig@zerovmu1604:~$ mkdir -p /home/zerobig/AzureDevOps-Exercise
zerobig@zerovmu1604:~$ cd /home/zerobig/AzureDevOps-Exercise/
zerobig@zerovmu1604:~/AzureDevOps-Exercise$ vi azuredeploy.json
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": []
}

 

 

배포 확인

 

Azure Portal에서 리소스 그룹을 검색하여 배포를 확인할 수 있다.

 

1. Azure Portal에 로그인한다.

2. 왼쪽 메뉴에서 리소스 그룹을 선택한다.

3. 마지막 절차에서 리소스 그룹 배포를 선택한다. 기본 이름은 zeroResourceGroup이다. 리소스 그룹 내에 배포된 리소스는 표시되지 않는다.

4. 개요의 오른쪽 위에 배포 상태가 표시된다. 1 Succeeded를 선택한다.

 

5. 리소스 그룹에 대한 배포 기록이 표시된다. blanktemplate을 선택한다.

6. 배포 요약이 표시된다. 이 경우 리소스가 배포되지 않았으므로 많은 내용이 표시되지 않는다. 이 시리즈의 뒷부분에서는 배포 기록에서 요약을 검토하는 것이 도움이 될 수 있다. 왼쪽에서는 배포 중에 사용되는 입력, 출력 및 템플릿을 볼 수 있다.

 

리소스 정리

 

다음 자습서로 이동하는 경우 리소스 그룹을 삭제할 필요가 없다.

지금 중지하는 경우 리소스 그룹을 삭제하는 것이 좋다.

  1. Azure Portal의 왼쪽 메뉴에서 리소스 그룹을 선택한다.
  2. 이름으로 필터링 필드에서 리소스 그룹 이름을 입력한다.
  3. 해당 리소스 그룹 이름을 선한다.
  4. 위쪽 메뉴에서 리소스 그룹 삭제를 선택한다.

 

 

#주의사항#

 

혹시라도 VM을 생성해서 실습을 진행하시는 분들은 비용 발생을 방지하기 위해 매번 실습을 마치고 나서 필히 VM을 Stop시키도록 하자. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함