---
sourceDocument: Xanadu IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/it-operations-management

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Azure VM プロビジョニングのチュートリアル

# Azure VM プロビジョニングのチュートリアル {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：19分

この例では、Azure データセンターで仮想マシンをプロビジョニングする際に機能する クラウドプロビジョニングとガバナンス のコンポーネントについて説明します。対象となるトピックには、詳細計画、リソースブロック、クラウド API (CAPI)、および MID サーバー スクリプトインクルードが含まれます。

## 始める前に

必要なロール：admin

## このタスクについて

このチュートリアルは、ユーザーが既に Azure でプロビジョニングしている Linux VM から始まります。次に、VM、リソースブロック、およびリソースブロックから指定された CAPI 呼び出しを使用して、詳細計画について説明します。最後に、このチュートリアルでは、MID サーバー スクリプトインクルードが、いくつかの CAPI 呼び出しを通じて、最終的に Azure API に対して実際の REST 呼び出しを行う方法を示します。

この例では、インスタンスで利用可能なデフォルトのリソースブロックおよびスクリプトインクルードを使用します。そのため、インスタンスにプロビジョニングされた VM がない場合でも、以下の手順に従い、この例で使用されるコンポーネントを表示することで、コンポーネントの動作を理解できます。

AWS での VM の例については、「[AWS VM プロビジョニングのチュートリアル](https://servicenow-prod.fluidtopics.net/T~8ylfiuseRoFs2WTDhLtg "この例では、AWS データセンターで仮想マシンをプロビジョニングする際に機能する クラウドプロビジョニングとガバナンス のコンポーネントについて説明します。対象となるトピックには、詳細計画、リソースブロック、クラウド API (CAPI)、および MID サーバー スクリプトインクルードが含まれます。")」を参照してください。  
注:  
この例では、仮想マシン、VM、および仮想サーバーという用語を同じ意味で使用します。

## 手順

1. クラウドユーザーポータルでプロビジョニングされた VM を参照し、VM に関する詳細情報の一部に注目します。
   1. ベースシステムインスタンスインターフェイスで、クラウドユーザーポータル (クラウドユーザーポータル).
   2. クラウドユーザーポータル で、\[スタック\] をクリックし、スタックの名前をクリックして、この VM など、スタック内のプロビジョニングされた VM を表示します。  
      この例では、スタックの名前は MyAzureVM です。
   3. \[リソース\] で、スタック内の VM をクリックします。  
   4. VM のプロパティを表示し、それがリージョン eastus の Azure データセンターにあることに注目してください。  
   {#walk-through-azure-provisioning__substeps_gfv_dqh_2fb}
2. VM の基となる詳細計画を参照します。
   1. 移動先 Design (デザイン)詳細計画をクリックし、Azure データセンター内の仮想サーバーを使用して詳細計画を開きます。デフォルトで \[ 展開モデル \] タブが表示され、詳細計画のさまざまなコンポーネントが表示されます。  
      この詳細計画例には、コンテナー、仮想サーバー (プロビジョニングされている実際の VM)、および Azure データセンターという 3 つのコンポーネントがあります。

   2. 下部の \[操作\] タブをクリックし、\[プロビジョニング\] をクリックします。  

      プロビジョニング操作は、システムが VM を作成したときにトリガーした操作です。その他のデフォルト操作を利用できますが、この例ではプロビジョニング操作に焦点を当てています。
   3. 詳細計画コンテナーリソースの \[プロビジョン\] ブロックをクリックします。  
   4. 右側にある \[入力\] リスト内のパラメータの 1 つが \[場所\] です。  
      このパラメーターは値 eastus を保持しています。これは、データセンター内で VM の存在している場所です。

      \[入力\] は、この例に示すようにコンテナー上で指定することも、その他の任意のリソースブロック上で指定することもできます。デフォルトでは、\[Location\] パラメーターは詳細計画コンテナリソースブロックで既に指定されているため、このような詳細計画のそれぞれで使用できます。詳細計画を \[ドラフト\] に切り替えた場合、詳細計画コンテナーリソースブロックにパラメーターを追加できます。仮想サーバーリソースブロックにパラメーターを追加することはできません。このウォークスルーでは、追加パラメーターは必要ありません。
   {#walk-through-azure-provisioning__substeps_hfv_dqh_2fb}
3. この詳細計画で使用する仮想サーバーおよびデータセンターリソースブロックを表示します。
   1. クラウドアドミンポータルで、 Design (デザイン)リソースブロック.
   2. デフォルトで クラウドプロビジョニングとガバナンス に提供されている \[仮想サーバー\] リソースブロックを検索して開きます。  
   3. \[リソースブロック\] フォームで、\[ホストリソース\] 関連リストをクリックし、サポートされているホストリソースブロックのリストを表示します。
   4. すでに指定されているホストインターフェイスおよびホストリソースに注意してください。  
      * \[ホストインターフェイス\] フィールドでは、この仮想マシンをホストするリソースブロックのゲストインターフェイスと一致する必要があるインターフェイスを指定します。この場合、ホストインターフェイスは \[Compute Interface\] です。これは、Azure データセンターリソースブロックのゲストインターフェイスでもあります。デフォルトでは、仮想ストレージなどの他のリソースブロックがデータセンターへの接続に使用できるように、データセンターリソースブロックは複数のゲストインターフェイスを提供します。
      * \[ホストリソース\] 関連リストの \[hostresource\] 列にはすでに \[Azure データセンター\] が指定されています。これは、Azure データセンターのリソースブロックがこの VM の有効なホストであることを意味します。
      {#walk-through-azure-provisioning__ul_fsn_lm5_bfb}
   5. \[操作\] タブをクリックし、\[ステップ\] サブタブをクリックします。  
   6. \[操作\] リストから \[プロビジョン\] を選択します。  

      プロビジョニング操作は、システムが VM を作成するために使用した操作です。その他のデフォルト操作を利用できますが、この例ではプロビジョニング操作に焦点を当てています。
   7. リストに表示されるステップと、入力パラメーターの上に表示されるステップの説明全体に注目してください。  
      * \[ホストリソース操作: (Host Resource Operation:)\] は、このステップがホストリソース (この例では Azure データセンター) に操作を呼び出すことを示します。
      * \[Compute Interface\] は、このステップで使用している Azure データセンターのゲストインターフェイスです。
      * \[ConnectAndCreateVirtualMachine\] は、このステップで呼び出す Azure データセンター内の操作です。
      {#walk-through-azure-provisioning__ul_mkz_zk5_bfb}  
      注:  
      この場合、このステップは別のリソースブロック (Azure データセンター) から操作を呼び出します。また、ステップは CAPI を直接呼び出し、その後 CAPI がクラウドプロバイダー API に対する REST 呼び出しを実行できます。Azure データセンターのリソースブロックを見ると、そのことがわかります。
   8. に戻る Design (デザイン)リソースブロック.
   9. 仮想サーバーが接続しているホストリソースブロックである Azure データセンターのリソースブロックを開きます。
   10. \[ゲストインターフェイス\] 関連リストで、サポートされているゲストインターフェイスに注目してください。  

       これらのゲストインターフェイスは、Azure データセンターが他のリソースブロックで使用できるようにするインターフェイスです。\[Compute Interface\] は、ホストインターフェイスとして Compute Interface を指定する仮想サーバーリソースブロックがデータセンターに接続できるように提供されています。
   11. \[操作\] タブをクリックし、\[ステップ\] サブタブをクリックします。  
   12. \[インターフェイス\] リストで、\[Compute Interface\] が選択されていない場合は選択します。  

       このインターフェイスは、仮想サーバーリソースブロックで指定されていることを忘れないでください。
   13. \[操作\] リストで、ConnectAndCreateVirtualMachine を検索して選択します。  

       この操作は、仮想サーバーリソースブロックで指定されていることを忘れないでください。
   14. ConnectAndCreateVirtualMachine 操作の唯一のステップで使用される CAPI 呼び出しに注意してください。  
       * \[クラウド API:\] は、このステップが CAPI を呼び出し、その結果、CAPI がクラウドプロバイダー (この場合は Azure) に対する REST 呼び出しを実行できることを示します。
       * \[Compute Interface\] は、このステップが呼び出す CAPI インターフェイスを指定します。
       * \[CreateNode\] は実行されるメソッドを示します。名前が示すように、このメソッドは、仮想マシンを作成するようにクラウドプロバイダーに指示します。
       {#walk-through-azure-provisioning__ul_w2w_cs5_bfb}
   15. ステップ設定を開くには、ドラフト状況のリソースブロックで、ハイライト表示された (青い) ステップをポイントし、表示される \[ステップの編集\] アイコンをクリックします。  
   16. ステップ設定を確認し、CAPI と統合する設定を確認します。  
       {#walk-through-azure-provisioning__table_mzy_j53_cfb__entry__2}

       | フィールド | 説明 |
       |-|-|
       | 操作タイプ | \[クラウド API の呼び出し (Invoke Cloud API)\] は、このステップが、指定されたプロバイダー、インターフェイス、およびメソッドを介して CAPI を呼び出す必要があることを指定します。 |
       | API プロバイダー (実際には製品) | \[Microsoft.Compute\] は、CAPI で定義されている Azure プロバイダーに属する (実際のプロバイダーではない) 製品です。 |
       | API インターフェイス | \[Compute Interface\] は、CAPI に定義されている Azure プロバイダーに属する製品です。 |
       | API メソッド | \[CreateNode\] は、Azure を呼び出して VM を作成するメソッドです。 |
       [ ]

       {#walk-through-azure-provisioning__table_mzy_j53_cfb}  
       注:  
       CAPI API 定義は、プロバイダー (Azure)、製品 (Microsoft.Compute)、インターフェイス (Compute Interface)、およびメソッド (CreateNode) を結び付けます。
   17. ウィンドウを閉じます。
   18. \[Compute Interface.CreateNode\] ステップが選択されている状態で \[応答プロセッサー\] タブをクリックし、\[Create_Virtual_Server_Response_Processor\] スクリプトを確認します。  

       このスクリプトは、仮想マシンが作成された後に、インスタンスで CMDB を更新する応答プロセッサーです。
   19. 「[応答プロセッサーの作成](https://servicenow-prod.fluidtopics.net/3mJS9nqmO7o_zxCE0M9VKQ "デフォルトにより クラウドプロビジョニングとガバナンス で使用可能な Create_Virtual_Server_Response_Processor スクリプトは、AWS 仮想マシン CI の作成を処理する応答プロセッサーです。")」のトピックに含まれている、このスクリプトの説明と例を参照してください。  
       そのトピックの確認が完了したら、このトピックに戻ります。
   {#walk-through-azure-provisioning__substeps_kv1_rf5_bfb}
4. VM をプロビジョニングするために連携して動作する CAPI コンポーネントを確認します。
   1. クラウドアドミンポータルで、 Design (デザイン)Cloud API.
   2. \[API\] タブをクリックし、開いている Azure Compute API を検索します。
   3. この CAPI API がインターフェイスと製品をどのように結び付けているかを確認します。  
      {#walk-through-azure-provisioning__table_afd_zy3_cfb__entry__2}

      | フィールド | 説明 |
      |-|-|
      | クラウド API インターフェイス | \[Compute Interface\] は、リソースブロックで指定されているインターフェイスと同じです。このインターフェイスには、CreateStack メソッドを含むメソッドの定義が含まれています。 |
      | コネクター | \[スクリプトコネクター (Script Connector)\] は、この CAPI が各操作の MID サーバー スクリプトインクルードを提供することを示します。このスクリプトインクルードは、API を呼び出します。スクリプトインクルードを変更することも、新しいスクリプトインクルードを作成することもできます。 |
      | バージョン | \[1.0\] は API のバージョンを示します。この API の複数のバージョンを異なるバージョン番号で使用できます。VM を作成するデータセンターリソースブロックのステップでは、\[バージョン\] フィールドが表示されることに留意してください。この例では、この API のバージョンが 1 つしかないため空白でしたが、別のバージョン番号を指定できます。 |
      | 製品 | \[Microsoft.Compute\] は、CAPI でプロバイダーに属している製品です。この製品は、デフォルトで クラウドプロビジョニングとガバナンス が備えられており、Azure で VM を作成するために最も一般的に使用される製品の 1 つです。 |
      [ ]

      {#walk-through-azure-provisioning__table_afd_zy3_cfb}
   4. \[CAPI メソッドマッパー\] 関連リストで、CreateNode レコードのレコードプレビューアイコンをクリックし、\[レコードを開く\] をクリックします。  
   5. CreateNode メソッドマッパーを確認します。  

      \[エンドポイント操作\] が \[スクリプトを実行\] になっていることに注意してください。これは、カスタマイズ可能なスクリプトインクルードが CAPI の関数を呼び出すために使用され、この関数が最終的に Azure に対して REST 呼び出しを行うことを示します。azure-compute-1.0-CreateNode MID サーバー スクリプトインクルードは \[要求スクリプト\] フィールドで指定します。

      次の図は、リソースブロックからスクリプトインクルードに至るコンポーネントがどのように接続されているかを示しています。

   6. ![\[要求スクリプト\]]() のレコードアイコン (レコードアイコン) をクリックします。  
      azure-compute-1.0-CreateNode MID サーバー スクリプトインクルードが開きます。
   7. スクリプトの内容を確認します。  


          createNode();
          function createNode(){
             var acp = new AzureComputeVirtualMachine(this.parameters, this.headers);
             var vm = acp.createVirtualMachine();

             return vm;
          }

      このスクリプトは、AzureComputeVirtualMachine クラス内の createVirtualMachine 関数を呼び出します。作成された仮想マシンを返します。AzureComputeVirtualMachine クラスは、クラウドプロビジョニングとガバナンス のベース API の 1 つである AzureCloudAPIBase を拡張します。
   8. MID サーバー スクリプトインクルードである AzureComputeVirtualMachine クラスを表示するには、(クラウドアドミンポータルではなく) ベースシステムインスタンスインターフェイスを開き、 MID サーバースクリプトインクルード.
   9. AzureComputeVirtualMachine を検索して開きます。  
   10. `createVirtualMachine` 関数を確認します。  
       この関数は、Location(データセンター) や VM の名前など、VM の作成に必要な多くの変数を定義します。  

            
           var location = this.parameters.get('Location');  
           var vmName = this.parameters.get('NodeName');
           ...

       このコード行は、この同じスクリプト内の `_performVMOperation` 関数を呼び出し、必要なパラメーターを渡します。`action` パラメーターに空の値 `''` が渡されることに注意してください。  

           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` 関数を呼び出して、実際の PUT 呼び出しを呼び出すクラスとして AzureAPIInvoker クラスを識別します。

       `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` 関数は `_getVMInfo` を呼び出し、この関数が以前に呼び出された `_invokeRequest` と同じ関数を呼び出します。この呼び出しは、実際の REST 呼び出しを実行する呼び出し元への別の接続になります。この場合、REST 呼び出しは、VM の ID を取得する Azure に対する GET REST 呼び出しになります。

       `return nodeResponse;` 行は、createNode 操作での MID サーバー スクリプトインクルードから呼び出された `createVirtualMachine` 関数で nodeResponse を返します。

       この図は、関連するクラスを示しています。

   11. Azure Compute API フォームに戻ります。
   12. \[API 設定の上書き\] 関連リストをクリックし、認証に必要な項目を確認します。  
       {#walk-through-azure-provisioning__table_otb_2z4_z2b__entry__2}

       | 設定パラメーターと上書き値 | 説明 |
       |-|-|
       | 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 登録番号と、登録アカウントにアクセスするためのトークン。 |
       [ ]

       {#walk-through-azure-provisioning__table_otb_2z4_z2b}

       これらの上書きで使用される Azure 情報の詳細については、「[インスタンスに Azure サービス プリンシパル認証情報を格納する](https://servicenow-prod.fluidtopics.net/jvnpyNxl6Yyc6gQVlklVPg "プロバイダーアカウントのデータに安全にアクセスするために、ディスカバリー プロセスで適切な認証情報を提供する必要があります。認証情報を ディスカバリー で利用できるようにするには、最初に Azure ポータル で Azure サービスプリンシパルの認証情報を作成します。次に、インスタンスの サービスアカウント で認証情報を安全に保存します。")」を参照してください。
   13. に戻る Design (デザイン)Cloud APIをクリックし、\[ インターフェイス \] タブをクリックします。
   14. Compute Interface を Search して開きます。
   15. インターフェイスの内容を確認します。  
       このインターフェイスでは、CreateNode などのメソッドに対して REST 応答構造を使用していることに注意してください。通常、既存のインターフェイスを変更する必要はありません。  
       サービスカテゴリと操作に注意してください。{#walk-through-azure-provisioning__table_t3p_xcl_y2b__entry__2}

       | フィールドまたは関連リスト | 説明 |
       |-|-|
       | サービスカテゴリ | サービスカテゴリは、インターフェイスを分類します。Compute Interface のカテゴリーも Compute です。 |
       | CAPI インターフェイス操作 | インターフェイス操作は、REST 呼び出しの JSON 構造と、インターフェイスに必要なパラメーターを定義します。 |
       [ ]

       {#walk-through-azure-provisioning__table_t3p_xcl_y2b}
   16. CreateNode CAPI インターフェイス操作をクリックします。  
       この操作は、EC2 仮想サーバーを作成するためのフレームワークを提供する操作です。
   17. 操作のコンポーネントを確認します。  
       {#walk-through-azure-provisioning__table_mbr_r2l_y2b__entry__2}

       | フィールドまたは関連リスト | 説明 |
       |-|-|
       | 応答構造 | この応答構造は、REST API 呼び出しの JSON フレームワークになります。このフィールドには、プロバイダーが空の値を持つ仮想リソースを作成するために使用できる属性のリストが用意されています。 |
       | インターフェイス操作パラメーター | これらのパラメーターは、REST 呼び出しでクラウドプロバイダーに渡すことができるように、CAPI インターフェイスがシステムから必要とするパラメーターでもあります。 |
       [ ]

       {#walk-through-azure-provisioning__table_mbr_r2l_y2b}

   18. に戻る Design (デザイン)Cloud API をクリックし、\[ プロバイダー \] タブをクリックします。
   19. Azure プロバイダーを開きます。  
       Azure クラウドプロバイダーフォームが開き、このプロバイダーが既存の CMDB クラス (Azure データセンター \[cmdb_ci_azure_datacenter\]) に基づいていることを示します。
   20. \[クラウド製品\] 関連リストをクリックし、\[名前\] 列でリストを並べ替えます。  
       いくつかの Azure 製品がデフォルトで利用できることに注意してください。テンプレートから作成される最も一般的に使用される Azure 製品の 1 つが Microsoft.Compute です。

   21. \[名前\] 列の \[Microsoft.Compute\] をクリックします。  
       製品は多くのリソースタイプを指定しており、それぞれが CI クラスにマップされていることに注意してください。

       これらのリソースタイプは、仮想マシンに関連する一部の CI を示し、すべてではありません。クラウドプロバイダーが VM をプロビジョニングするときに、リソースブロック内の応答プロセッサーによって CI にデータが入力されます。
   {#walk-through-azure-provisioning__substeps_ifv_dqh_2fb}
5. VM に関連する重要な CI を確認するには、次の手順を実行します。
   1. クラウドユーザーポータル で、\[スタック\] をクリックし、VM を含むスタックを開きます。
   2. \[依存関係を表示\] アイコンをクリックします。  
      依存関係マップでは、スタック CI が上部に、VM が中央に、関連するさまざまな CI (イメージなど) が下部に表示されます。

   3. CMDB で VM のフォームを表示するには、任意の CI の横にある矢印を右クリックします。  
   4. メニューの \[フォームを表示\] をクリックします。  

      CI フォームが開き、VM のプロパティを表示するときに クラウドユーザーポータル でどれだけの情報が既に利用可能かが示されます。  
      {#walk-through-azure-provisioning__table_wjv_jbn_3yb__entry__2}

      | VM CI フォーム | クラウドユーザーポータル の VM プロパティ |
      |-|-|
      |   |   |
      [ ]

      {#walk-through-azure-provisioning__table_wjv_jbn_3yb}
   {#walk-through-azure-provisioning__substeps_ojz_lc4_2fb}
{#walk-through-azure-provisioning__steps_ffv_dqh_2fb}

