Azure VM 프로비저닝 검토 과정
이 예에서는 Azure 데이터센터에서 가상 머신을 프로비저닝하는 동안 작동하는 클라우드 프로비저닝 및 거버넌스의 구성요소를 검토합니다. 포함된 주제로는 Blueprint, 자원 블록, 클라우드 API(CAPI) 및 MID 서버 스크립트 포함이 있습니다.
시작하기 전에
이 태스크 정보
이 검토 과정은 사용자가 Azure에서 이미 프로비저닝한 Linux VM부터 시작됩니다. 그런 다음 VM, 자원 블록 및 자원 블록에서 지정된 CAPI 호출을 사용하여 Blueprint를 검토합니다. 마지막으로 검토 과정에서는 여러 CAPI 호출을 통해 MID 서버 스크립트 포함이 최종적으로 Azure API에 대해 실제 REST 호출을 수행하는 방법을 보여줍니다.
이 예제에서는 인스턴스에서 사용할 수 있는 기본 자원 블록 및 스크립트 포함을 사용합니다. 인스턴스에 프로비저닝된 VM이 없을 수도 있지만, 여기 단계에 따라 이 예시에 사용된 구성요소를 살펴보고 구성요소의 작동 방식을 이해할 수 있습니다.
AWS의 VM에 대한 예는 AWS VM 프로비저닝 검토 과정 문서를 참조하십시오.
프로시저
-
클라우드 사용자 포털에서 프로비저닝된 VM을 확인하고 VM에 대한 몇 가지 상세 정보를 집중적으로 살펴보십시오.
- 기본 시스템 인스턴스 인터페이스 클라우드 사용자 포털 에서 (클라우드 사용자 포털).
-
클라우드 사용자 포털에서 스택을 클릭한 다음 스택 이름을 클릭하여 이 VM과 같은 스택에서 프로비저닝된 VM을 봅니다.
이 예에서 스택의 이름은 Myazurevm입니다.
-
자원에서 스택에 있는 VM을 클릭합니다.
-
VM의 속성을 보고 이 정보가 미국 동부 지역의 Azure 데이터센터에 있다는 것을 확인합니다.
-
VM의 기반이 되는 Blueprint를 살펴보십시오.
-
다음으로 이동 설계 > Blueprint을 연 다음 Azure 데이터센터에서 가상 서버를 사용하여 Blueprint를 엽니다. Blueprint의 다양한 구성요소를 보여주는 배포 모델 탭이 기본적으로 표시됩니다.
이 Blueprint의 예로는 세 가지 구성요소, 즉 컨테이너, 가상 서버(프로비저닝된 실제 VM) 및 Azure 데이터센터가 있습니다.
-
하단의 작업 탭을 클릭한 다음 프로비저닝을 클릭합니다.
프로비저닝 작업은 시스템이 VM을 만들 때 트리거되는 작업입니다. 다른 기본 작업을 사용할 수 있지만 이 예시에서는 프로비저닝 작업에 대해 중점적으로 설명합니다.
-
Blueprint 컨테이너 자원에 대한 프로비저닝 블록을 클릭합니다.
-
오른쪽에서 입력 목록의 매개변수 중 하나가 위치입니다.
이 매개변수는 VM이 데이터센터에 상주하는 eastus 값을 보유합니다.
입력은 이 예시에서처럼 컨테이너에서 지정하거나 다른 자원 블록에 지정할 수 있습니다. 기본적으로 Location 매개변수는 Blueprint 컨테이너 자원 블록에 이미 지정되어 있으므로 이와 같은 모든 청사진에 사용할 수 있습니다. Blueprint를 초안으로 전환하면 더 많은 매개변수를 Blueprint 컨테이너 자원 블록에 추가할 수 있습니다. 가상 서버 자원 블록에 매개변수를 추가할 수 없습니다. 이 연습에서는 추가 매개변수가 필요하지 않습니다.
-
다음으로 이동 설계 > Blueprint을 연 다음 Azure 데이터센터에서 가상 서버를 사용하여 Blueprint를 엽니다. Blueprint의 다양한 구성요소를 보여주는 배포 모델 탭이 기본적으로 표시됩니다.
-
이 Blueprint에 사용된 가상 서버 및 데이터센터 자원 블록을 봅니다.
- 에서 클라우드 관리자 포털다음으로 이동합니다. 설계 > 자원 블록.
-
클라우드 프로비저닝 및 거버넌스와(과) 함께 기본적으로 제공되는 가상 서버 자원 블록을 검색하고 엽니다.
- 자원 블록 양식에서 지원되는 호스트 블록 목록을 보려면 호스트 자원 관련 목록을 클릭합니다.
-
이미 지정된 호스트 인터페이스와 호스트 자원을 확인합니다.
- 호스트 인터페이스 필드는 이 가상 머신을 호스팅하는 자원 블록의 게스트 인터페이스와 일치해야 하는 인터페이스를 지정합니다. 이 경우 호스트 인터페이스는 Azure 데이터센터 자원 블록의 게스트 인터페이스이기도 한 계산 인터페이스입니다. 기본적으로 데이터센터 자원 블록은 가상 저장소와 같은 다른 자원 블록에서 데이터센터에 연결하는 데 사용할 수 있는 여러 게스트 인터페이스를 제공합니다.
- 호스트 자원 관련 목록의 HostResource 열에 이미 Azure 데이터센터가 지정되어 있습니다. 이는 Azure 데이터센터 자원 블록이 이 VM에 대한 올바른 호스트임을 의미합니다.
-
작업 탭을 클릭한 다음 단계 하위 탭을 클릭 합니다.
-
작업 목록에서 프로비저닝을 선택합니다.
프로비저닝 작업은 시스템이 VM을 만들 때 사용하는 작업입니다. 다른 기본 작업을 사용할 수 있지만 이 예시에서는 프로비저닝 작업에 대해 중점적으로 설명합니다.
-
목록에 나타나는 단계와 입력 매개변수 위에 표시되는 전체 단계 설명을 확인합니다.
- 호스트 자원 작업: 이 단계에서 호스트 자원(이 예에서는 Azure 데이터센터)에 대한 작업을 호출한다는 것을 나타냅니다.
- 계산 인터페이스는 이 단계에서 사용하는 Azure 데이터센터의 게스트 인터페이스입니다.
- ConnectAndCreateVirtualMachine은 이 단계에서 호출하는 Azure 데이터센터의 작업입니다.
주:이 경우 단계에서 다른 자원 블록의 작업을 호출합니다(Azure 데이터센터). 또한 여러 단계에서 CAPI를 직접 호출할 수 있고, 그러면 CAPI에서 클라우드 제공자 API에 대한 REST 호출을 실행할 수 있습니다. Azure 데이터센터 자원 블록을 살펴보면 이 점을 확인할 수 있습니다. - 다음으로 다시 이동 설계 > 자원 블록.
- 가상 서버가 연결된 호스트 자원 블록인 Azure 데이터센터 자원 블록을 엽니다.
-
게스트 인터페이스 관련 목록에서 지원되는 게스트 인터페이스를 확인합니다.
이러한 게스트 인터페이스는 Azure 데이터센터에서 다른 자원 블록에 제공할 수 있는 인터페이스입니다. 계산 인터페이스는 계산 인터페이스를 호스트 인터페이스로 지정하는 가상 서버 자원 블록이 데이터센터에 연결할 수 있도록 하기 위해 제공됩니다.
-
작업 탭을 클릭한 다음 단계 하위 탭을 클릭 합니다.
-
인터페이스 목록에서 계산 인터페이스가 아직 선택되어 있지 않으면 선택합니다.
이 인터페이스는 가상 서버 자원 블록에 지정되어 있습니다.
-
작업 목록에서 ConnectAndCreateVirtualMachine를 검색하여 선택합니다.
이 작업은 가상 서버 자원 블록에 지정되어 있습니다.
-
CAPI 호출은 ConnectAndCreateVirtualMachine 운영 단계에서만 사용됩니다.
- 클라우드 API: CAPI가 클라우드 제공자에 대한 REST 호출을 실행할 수 있도록(이 경우에는 Azure) 이 단계에서 CAPI를 호출한다는 것을 나타냅니다.
- 계산 인터페이스는 이 단계에서 호출하는 CAPI 인터페이스를 지정합니다.
- CreateNode는 실행되는 메서드를 나타냅니다. 이름에서 알 수 있듯이 이 메서드는 클라우드 제공자에게 가상 머신을 만들도록 지시합니다.
-
단계 구성 열기: 초안 상태의 자원 블록을 사용하여 강조 표시된(파란색) 단계를 가리킨 다음 나타나는 단계 편집 아이콘을 클릭합니다.
-
단계 구성을 살펴보고 CAPI와 통합되는 설정을 확인합니다.
필드 설명 운영 유형 클라우드 API 호출은 이 단계에서 지정된 제공자, 인터페이스 및 메서드를 통해 CAPI를 호출 하도록 지정합니다. API 제공자(실제로는 제품) Microsoft.Compute는 CAPI에 정의된 대로 Azure 제공자에 속하는 제품(실제 제공자 아님)입니다. API 인터페이스 계산 인터페이스는 CAPI에 정의된 대로 Azure 제공자에 속한 제품입니다. API 메서드 CreateNode는 Azure를 호출하여 VM을 만드는 메서드입니다. 주:CAPI API 정의는 제공자(Azure), 제품 (Microsoft.Compute), 인터페이스 (계산 인터페이스) 및 메서드(CreateNode)를 결합합니다. - 창을 닫습니다.
-
Compute Interface.CreateNode 단계를 선택하고 응답 프로세서 탭을 클릭한 후 Create_Virtual_Server_Response_Processor 스크립트를 확인합니다.
이 스크립트는 가상 머신이 만들어진 후 인스턴스에서 CMDB를 업데이트하는 응답 프로세서입니다.
-
응답 프로세서 만들기에서 주제의 일부인 예제 및 스크립트에 대한 설명을 참조하십시오.
해당 주제를 모두 검토했으면 이 주제로 돌아가십시오.
-
VM을 프로비저닝하기 위해 함께 작동하는 CAPI 구성요소를 확인하십시오.
- 클라우드 관리자 포털에서 설계 > 클라우드 API.
- API 탭을 클릭한 다음 열려 있는 Azure Compute API를 검색합니다.
-
이 CAPI API가 인터페이스와 제품을 결합하는 방법을 살펴보십시오.
필드 설명 클라우드 API 인터페이스 계산 인터페이스는 자원 블록에 지정된 것과 같은 인터페이스입니다. 인터페이스에는 CreateStack 메서드를 포함하여 메서드에 대한 정의가 포함되어 있습니다. 커넥터 스크립트 커넥터는 이 CAPI에서 각 작업에 대한 MID 서버 스크립트 포함을 제공한다는 것을 나타냅니다. 스크립트 포함은 API를 호출합니다. 스크립트 포함을 수정하거나 새로 만들 수도 있습니다. 버전 1.0은 API의 버전을 나타냅니다. 이 API는 버전 번호가 다른 여러 버전이 있을 수 있습니다. VM을 만드는 데이터센터 자원 블록의 단계에서는 버전 필드가 제공됩니다. 이 예에서는 이 API의 버전이 하나 뿐이므로 버전 번호가 비어 있지만 다른 버전 번호를 지정할 수 있습니다. 제품 Microsoft.Compute는 CAPI 제공자에 속한 제품입니다. 이 제품은 기본적으로 클라우드 프로비저닝 및 거버넌스와 함께 제공되며, Azure에서 VM을 만들기 위해 가장 일반적으로 사용되는 제품 중 하나입니다. -
CAPI 메서드 매퍼 관련 목록에서 CreateNode 기록에 대한 기록 미리 보기 아이콘을 클릭한 다음, 기록 열기를 클릭하십시오.
-
CreateNode 메서드 매퍼를 확인합니다.
엔드포인트 작업은 스크립트 실행입니다. 이는 사용자 지정 가능한 스크립트 포함은 결국 Azure에 대한 REST 호출을 수행하는 CAPI에서 함수를 호출하는 데 사용된다는 것을 나타냅니다. azure-compute-1.0-CreateNode MID 서버 스크립트 포함은 요청 스크립트 필드에 지정되어 있습니다.
이 그래픽에서는 자원 블록에서 스크립트 포함까지 구성요소가 연결되는 방법을 보여줍니다.
-
에 대한 기록 아이콘(기록 아이콘)을 클릭합니다.
azure-compute-1.0-CreateNode MID 서버 스크립트 포함이 열립니다.
-
스크립트의 내용을 검토합니다.
createNode(); function createNode(){ var acp = new AzureComputeVirtualMachine(this.parameters, this.headers); var vm = acp.createVirtualMachine(); return vm; }스크립트는 AzureComputeVirtualMachine 클래스에서 createVirtualMachine 함수를 호출합니다. 이 함수는 만들어진 가상 머신을 반환합니다. AzureComputeVirtualMachine 클래스에서 클라우드 프로비저닝 및 거버넌스의 기본 API 중 하나인 AzureCloudAPIBase가 확장됩니다.
- 스크립트 포함인 MID 서버 클래스를 보려면 AzureComputeVirtualMachine (가 아닌클라우드 관리자 포털) 인스턴스 인터페이스를 열고 기본 시스템 MID 서버 > 스크립트 포함.
-
AzureComputeVirtualMachine을 검색하고 엽니다.
-
CreateVirtualMachine함수를 검토합니다.이 함수는 Location(데이터센터) 및 VM의 이름을 포함하여 VM을 만드는 데 필요한 많은 변수를 정의합니다.
var location = this.parameters.get('Location'); var vmName = this.parameters.get('NodeName'); ...이 코드 라인은 이 동일한 스크립트 포함의
_performVMOperation함수를 호출하여 필요한 매개변수에 전달합니다.작업매개변수에 빈 값''가 전달됩니다.var response = this._performVMOperation(subscriptionId, resourceGroup, vmName, '', 'PUT', jsonObj.encode(params));_PerformVMOperation함수는 AzureCloudAPIBase 클래스에 있는_invokeRequest함수를 호출합니다.return this._invokeRequest(this.pathDefault, param, method, requestBody);REST 호출에 대한 PUT 메서드는 method 매개변수에 지정되어 있습니다.
AzureCloudAPIBase MID 서버 스크립트 포함을 확인합니다.
_InvokeRequest함수는 먼저_getEndpoint함수를 호출하여 엔드포인트를 가져오고_getAPIInvoker함수를 호출하여 AzureAPIInvoker 클래스를 실제 PUT 호출을 호출하는 클래스로 식별합니다.var apiInvoker = this._getAPIInvoker(apiEndpoint, this.apiVersion);AzureAPIInvoker는 모든 호출자에 대한 기본 함수를 제공하는 CloudRESTAPIInvoker에서 확장됩니다. 올바른 호출자 클래스가 식별되면 CloudRESTAPIInvoker의
invokePut함수에서 반환된 값을 포함하는 response 변수가 생성됩니다.response = apiInvoker.invokePut(requestBody);CloudRESTAPIInvoker가 모든 호출자에 대한 기본 클래스임을 확인합니다. invokePut 함수는 PUT 메서드를 지정하고
getrequest를 호출하며, 상태 코드와 Azure의 응답을 가져오는 getResponse 함수의 응답을 반환합니다. 이 호출자 클래스는 Azure에 대한 연결이 설정된 위치입니다.AzureComputeVirtualMachine MID 서버 스크립트 포함으로 돌아가서 다음 라인을 찾습니다.
var response = this._performVMOperation(subscriptionId, resourceGroup, vmName, '', 'PUT', jsonObj.encode(params)); this._compareVMState(response.id, 'PowerState/running'); var nodeResponse = this.getVirtualMachine(response.id);변수 response은 PUT 메서드를 트리거한 API 호출자의 응답을 포함하는
_performVMOperation에 대한 호출에서 반환됩니다. nodeResponse 변수에는 응답에 있는 가상 머신의 ID를 전달하는getVirtualMachine함수의 응답이 포함되어 있습니다.GetVirtualMachine함수는 이전에 호출된 것과 동일한_invokeRequest함수를 호출하는_getVMInfo를 호출합니다. 이 호출은 실제 REST 호출을 수행하는 호출자에 대한 또 다른 연결입니다. 이 경우 REST 호출은 VM의 ID를 가져오기 위한 Azure에 대한 GET REST 호출입니다.return nodeResponse;라인은 createNode 작업의 MID 서버 스크립트 포함에서 호출된createVirtualMachine함수에 nodeResponse를 반환합니다.이 그래픽은 연결된 클래스를 보여줍니다.
- Azure Compute API 양식으로 되돌아갑니다.
-
API 구성 재정의 관련 목록을 클릭하고 인증에 필요한 항목을 검토합니다.
구성 매개변수 및 재정의 값 설명 ClientID
$(CloudCredential.client_id)
클라이언트 ID는 Azure에서 애플리케이션을 식별하는 데 필요합니다. EndpointURL
$(CloudCredential.URL)
엔드포인트 URL은 Azure의 권한 부여 입력입니다. SecretKey
$(CloudCredential.secret_key)
비밀 키는 클라이언트에 권한을 부여하는 데 사용됩니다. TenantID
$(CloudCredential.tenant_id)
테넌트 ID는 테넌트에게 전역적으로 고유한 식별자입니다. EnrollmentNumber
$(CloudCredential.sn_cmp_ea_credential.enrollment_number)
EnrollmentToken
$(CloudCredential.sn_cmp_ea_credential.access_key)
등록 계정에 접근하는 데 사용하는 Azure 등록 번호 및 토큰입니다. 이러한 재정의에 사용되는 Azure 정보에 대한 자세한 내용은 인스턴스에 Azure 서비스 주체 자격 증명 저장 문서를 참조하십시오.
- 다음으로 다시 이동 설계 > 클라우드 API를 클릭한 다음 인터페이스( Interface ) 탭을 클릭합니다.
- 계산 인터페이스를 검색하고 엽니다.
-
인터페이스의 내용을 검토합니다.
인터페이스는 CreateNode와 같은 메서드에 대한 REST 응답 구조를 제공합니다. 일반적으로 기존 인터페이스를 수정할 필요는 없습니다.서비스 범주와 작업을 기록합니다.
필드 또는 관련 목록 설명 서비스 범주 서비스 범주에서 인터페이스가 분류됩니다. 계산 인터페이스의 범주도 계산입니다. CAPI 인터페이스 작업 인터페이스 작업에서는 REST 호출에 대한 JSON 구조와 인터페이스에 필요한 매개변수를 정의합니다. -
CreateNode CAPI 인터페이스 작업을 클릭합니다.
이 작업은 EC2 가상 서버를 만들기 위한 프레임 워크를 제공하는 작업입니다.
-
작업의 구성요소를 검토합니다.
필드 또는 관련 목록 설명 응답 구조 응답 구조는 REST API 호출을 위한 JSON 프레임 워크입니다. 빈 값을 사용하여 가상 자원을 만들기 위해 제공자가 사용할 수 있는 속성 목록을 제공합니다.
인터페이스 작업 매개변수 이러한 매개변수는 또한 CAPI 인터페이스가 클라우드 제공자에 대한 REST 호출에 전달할 수 있도록 시스템에서 필요로 하는 매개변수입니다.
- 다음으로 다시 이동 설계 > 클라우드 API 을 클릭한 다음 제공자 탭을 클릭합니다.
-
Azure 제공자를 엽니다.
Azure 클라우드 제공자 양식이 열리고, 이 제공자가 기존 CMDB 클래스(Azure 데이터센터 [cmdb_CI_azure_datacenter])를 기반으로 한다는 것을 보여줍니다.
-
클라우드 제품 관련 목록을 클릭하고 이름 열을 기준으로 목록을 정렬합니다.
기본적으로 여러 Azure 제품을 사용할 수 있습니다. 템플릿으로 만든 가장 일반적으로 사용되는 Azure 제품 중 하나는 Microsoft.Compute입니다.
-
이름 열에서 Microsoft.Compute를 클릭합니다.
제품에는 각각 CI 클래스에 매핑되는 여러 자원 유형이 지정되어 있습니다.
이러한 자원 유형은 가상 머신과 연결된 일부 CI만 나타냅니다. 자원 블록의 응답 프로세서는 클라우드 제공자가 VM을 프로비저닝할 때 데이터로 CI를 채웁니다.
-
VM과 연결된 중요한 CI를 보려면 다음을 수행하십시오.
- 클라우드 사용자 포털에서 스택을 클릭한 다음 VM이 포함된 스택을 엽니다.
-
의존성 보기 아이콘을 클릭합니다.
의존성 맵에는 상단에 스택 CI, 중간에 VM, 하단에 이미지 등 다양한 관련 CI가 표시됩니다.
-
CMDB에서 VM 양식을 보려면 임의의 CI 옆에 있는 화살표를 마우스 오른쪽 버튼으로 클릭하십시오.
-
메뉴에서 양식 보기를 선택합니다.
CI 양식이 열리고, VM의 속성을 볼 때 클라우드 사용자 포털에 이미 제공된 많은 정보가 표시됩니다.
VM CI 양식 클라우드 사용자 포털의 VM 속성