Resource Manager 템플릿을 사용하여 Azure Automation 계정 만들기
Azure Automation에서는 Azure와 비 Azure 환경에서 일관된 관리를 지원하는 클라우드 기반 자동화 및 구성 서비스를 제공합니다. 이 문서에서는 Automation 계정을 만드는 ARM 템플릿(Azure Resource Manager 템플릿)을 배포하는 방법을 보여줍니다. ARM 템플릿을 사용하면 다른 배포 방법과 비교하여 단계가 줄어듭니다. JSON 템플릿은 환경에서 표준 구성으로 사용될 수 있는 매개 변수에 대한 기본값을 지정합니다. 조직에서 공유 액세스에 대한 Azure Storage 계정에 템플릿을 저장할 수 있습니다. 템플릿 작업에 대한 자세한 내용은 ARM 템플릿과 Azure CLI를 사용하여 리소스 배포를 참조하세요.
Azure Resource Manager 템플릿은 프로젝트에 대한 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다. 이 템플릿은 선언적 구문을 사용합니다. 배포를 만들기 위한 프로그래밍 명령의 시퀀스를 작성하지 않고 의도하는 배포를 설명합니다.
이 샘플 템플릿은 다음 단계를 수행합니다.
- Azure Monitor Log Analytics 작업 영역 만들기를 자동화합니다.
- Azure Automation 계정 만들기를 자동화합니다.
- Automation 계정을 Log Analytics 작업 영역에 연결합니다.
- 계정에 샘플 Automation Runbook을 추가합니다.
Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
사전 요구 사항
Azure Automation 및 Azure Monitor를 처음 접하는 경우 구성 정보를 반드시 이해해야 합니다. 이렇게 하면 새 Automation 계정에 연결된 Log Analytics 작업 영역을 만들고 구성하고 사용하려고 할 때 쉽게 오류를 방지할 수 있습니다.
액세스 제어 모드, 가격 책정 계층, 보존 및 용량 예약 수준과 같은 작업 영역 구성 옵션을 완전히 이해하려면 추가 세부 정보를 검토하세요.
작업 영역 매핑을 검토하여 지원되는 지역 인라인 또는 매개 변수 파일에서 지정합니다. 특정 Azure 지역에서만 구독의 Log Analytics 작업 영역 및 Automation 계정을 연결할 수 있습니다.
Azure Monitor 로그를 처음 접하고 아직 작업 영역을 배포하지 않은 경우 작업 영역 디자인 지침을 검토하세요. 이 문서는 액세스 제어에 대해 알아보고 조직에 권장되는 디자인 구현 전략을 이해하는 데 도움이 됩니다.
템플릿 검토
이 문서에서 사용되는 템플릿은 Azure 빠른 시작 템플릿에서 가져온 것입니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"metadata": {
"description": "Workspace name"
}
},
"sku": {
"type": "string",
"defaultValue": "pergb2018",
"allowedValues": [
"pergb2018",
"Free",
"Standalone",
"PerNode",
"Standard",
"Premium"
],
"metadata": {
"description": "Pricing tier: perGB2018 or legacy tiers (Free, Standalone, PerNode, Standard or Premium), which are not available to all customers."
}
},
"dataRetention": {
"type": "int",
"defaultValue": 30,
"minValue": 7,
"maxValue": 730,
"metadata": {
"description": "Number of days to retain data."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the location in which to create the workspace."
}
},
"automationAccountName": {
"type": "string",
"metadata": {
"description": "Automation account name"
}
},
"sampleGraphicalRunbookName": {
"type": "String",
"defaultValue": "AzureAutomationTutorial"
},
"sampleGraphicalRunbookDescription": {
"type": "String",
"defaultValue": "An example runbook that gets all the Resource Manager resources by using the Run As account (service principal)."
},
"samplePowerShellRunbookName": {
"type": "String",
"defaultValue": "AzureAutomationTutorialScript"
},
"samplePowerShellRunbookDescription": {
"type": "String",
"defaultValue": "An example runbook that gets all the Resource Manager resources by using the Run As account (service principal)."
},
"samplePython2RunbookName": {
"type": "String",
"defaultValue": "AzureAutomationTutorialPython2"
},
"samplePython2RunbookDescription": {
"type": "String",
"defaultValue": "An example runbook that gets all the Resource Manager resources by using the Run As account (service principal)."
},
"_artifactsLocation": {
"type": "string",
"defaultValue": "[deployment().properties.templateLink.uri]",
"metadata": {
"description": "URI to artifacts location"
}
},
"_artifactsLocationSasToken": {
"type": "securestring",
"defaultValue": "",
"metadata": {
"description": "The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated"
}
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2020-08-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('location')]",
"properties": {
"sku": {
"name": "[parameters('sku')]"
},
"retentionInDays": "[parameters('dataRetention')]",
"features": {
"searchVersion": 1,
"legacy": 0
}
}
},
{
"type": "Microsoft.Automation/automationAccounts",
"apiVersion": "2020-01-13-preview",
"name": "[parameters('automationAccountName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('workspaceName')]"
],
"identity": {
"type": "SystemAssigned"
},
"properties": {
"sku": {
"name": "Basic"
}
},
"resources": [
{
"type": "runbooks",
"apiVersion": "2020-01-13-preview",
"name": "[parameters('sampleGraphicalRunbookName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('automationAccountName')]"
],
"properties": {
"runbookType": "GraphPowerShell",
"logProgress": "false",
"logVerbose": "false",
"description": "[parameters('sampleGraphicalRunbookDescription')]",
"publishContentLink": {
"uri": "[uri(parameters('_artifactsLocation'), concat('scripts/AzureAutomationTutorial.graphrunbook', parameters('_artifactsLocationSasToken')))]",
"version": "1.0.0.0"
}
}
},
{
"type": "runbooks",
"apiVersion": "2020-01-13-preview",
"name": "[parameters('samplePowerShellRunbookName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('automationAccountName')]"
],
"properties": {
"runbookType": "PowerShell",
"logProgress": "false",
"logVerbose": "false",
"description": "[parameters('samplePowerShellRunbookDescription')]",
"publishContentLink": {
"uri": "[uri(parameters('_artifactsLocation'), concat('scripts/AzureAutomationTutorial.ps1', parameters('_artifactsLocationSasToken')))]",
"version": "1.0.0.0"
}
}
},
{
"type": "runbooks",
"apiVersion": "2020-01-13-preview",
"name": "[parameters('samplePython2RunbookName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('automationAccountName')]"
],
"properties": {
"runbookType": "Python2",
"logProgress": "false",
"logVerbose": "false",
"description": "[parameters('samplePython2RunbookDescription')]",
"publishContentLink": {
"uri": "[uri(parameters('_artifactsLocation'), concat('scripts/AzureAutomationTutorialPython2.py', parameters('_artifactsLocationSasToken')))]",
"version": "1.0.0.0"
}
}
}
]
},
{
"type": "Microsoft.OperationalInsights/workspaces/linkedServices",
"apiVersion": "2020-08-01",
"name": "[concat(parameters('workspaceName'), '/' , 'Automation')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('workspaceName')]",
"[parameters('automationAccountName')]"
],
"properties": {
"resourceId": "[resourceId('Microsoft.Automation/automationAccounts', parameters('automationAccountName'))]"
}
}
]
}
템플릿에 정의된 Azure 리소스:
- Microsoft.OperationalInsights/workspaces: Azure Log Analytics 작업 영역을 만듭니다.
- Microsoft.Automation/automationAccounts: Azure Automation 계정을 만듭니다.
- Microsoft.Automation/automationAccounts/runbooks: Azure Automation 계정 Runbook을 만듭니다.
템플릿 배포
아래 Azure에 배포 단추를 선택하여 Azure에 로그인하고 ARM 템플릿을 엽니다.
다음 값을 입력하거나 선택합니다.
속성 Description 구독 드롭다운 목록에서 Azure 구독을 선택합니다. Resource group 드롭다운 목록에서 기존 리소스 그룹을 선택하거나 새로 만들기를 선택합니다. 지역 이 값은 자동으로 채워집니다. 작업 영역 이름 새 Log Analytics 작업 영역의 이름을 입력합니다. SKU 2018년 4월 가격 책정 모델에서 배포된 새로운 GB당 가격 책정 계층이 기본값입니다. 2018년 4월 가격 책정 모델을 선택한 구독에서 Log Analytics 작업 영역을 만들거나 구성하려면 유효한 유일한 Log Analytics 가격 책정 계층은 PerGB2018
입니다.데이터 보존 기본값은 30일입니다. 위치 이 값은 리소스 그룹에 사용되는 위치로 자동 입력됩니다. Automation 계정 이름 새 Automation 계정의 이름을 입력합니다. 샘플 그래픽 Rrunbook 이름 있는 그대로 둡니다. 샘플 그래픽 Runbook 설명 있는 그대로 둡니다. 샘플 PowerShell Runbook 이름 있는 그대로 둡니다. 샘플 PowerShell Runbook 설명 있는 그대로 둡니다. 샘플 Python2Runbook 이름 있는 그대로 둡니다. 샘플 Python2Runbook 설명 있는 그대로 둡니다. _artifacts 위치 그대로 둡니다.* 아티팩트 위치의 URI. _artifacts 위치 SAS 토큰 비워 둡니다. _artifactsLocation
에 액세스하는 데 필요한 sasToken입니다. 함께 제공되는 스크립트를 사용하여 템플릿이 배포되면sasToken
이 자동으로 생성됩니다.* PowerShell, CLI 또는 포털의 템플릿 기능에서 ARM 템플릿을 실행하려고 할 때
_artifactsLocation
매개 변수가 올바르게 설정되지 않은 경우 다음과 유사한 오류 메시지가 표시됩니다."message": "Deployment template validation failed: 'The template resource '_artifactsLocation' at line '96' and column '31' is not valid: The language expression property 'templateLink' doesn't exist, available properties are 'template, templateHash, parameters, mode, debugSetting, provisioningState'.. Please see https://aka.ms/arm-template-expressions for usage details.'."
이 오류를 방지하려면 Portal의 템플릿 기능에서 실행하는 경우
_artifactsLocation
매개 변수에 대해 다음 값을 지정합니다.https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json
PowerShell에서를 실행하는 경우 매개 변수 및 해당
-TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json
값을 포함합니다.Azure CLI에서를 실행하는 경우 매개 변수 및 해당
--template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.automation/101-automation/azuredeploy.json
값을 포함합니다.PowerShell/CLI에 대한 참조는 템플릿 사용 섹션에서 다음 Azure Automation 계정 만들기(microsoft.com)를 참조하세요.
검토 + 만들기, 만들기를 차례로 선택합니다. 배포가 완료될 때까지 몇 분 정도 걸릴 수 있습니다. 완료되면 다음 이미지와 비슷한 결과가 출력됩니다.
배포된 리소스 검토
배포가 완료되면 리소스로 이동 링크가 포함된 배포 성공 알림이 표시됩니다. 리소스 그룹 페이지에 새 리소스가 나열됩니다. 목록에서 새 Automation 계정을 선택합니다.
왼쪽의 프로세스 자동화에서 Runbook을 선택합니다. Runbook 페이지에는 Automation 계정을 사용하여 만든 세 가지 샘플 Runbook이 나열됩니다.
왼쪽의 관련 리소스에서 연결된 작업 영역을 선택합니다. 연결된 작업 영역 페이지에는 이전에 Automation 계정에 연결된 Log Analytics 작업 영역이 표시됩니다.
다음 단계
Automation 계정에 대한 진단 설정을 구성하여 Runbook 작업 상태 및 작업 스트림을 연결된 Log Analytics 작업 영역으로 보냅니다.