Automation Orchestrator Client
ワークフローを使用して、ITSM 用の
Automation Assembler
を ServiceNow と統合する方法

Automation Orchestrator Client
でホストされたワークフローを使用して、ITSM のコンプライアンスのために
Automation Assembler
を ServiceNow と統合することができます。
  • スタンドアローンまたはクラスタ化された
    Automation Orchestrator Client
    環境。
  • Automation Assembler
    での
    Automation Orchestrator Client
    の統合。スタンドアローン
    Automation Orchestrator Client
    Automation Assembler
    の統合の詳細については、Automation Assembler での Automation Orchestrator Client 統合の構成を参照してください。
ServiceNow 統合フローは、いくつかの Cloud Assembly、vSphere、vRealize Orchestrator、ServiceNow サービスおよび API を経由します。
エンタープライズ ユーザーは、コンプライアンスを実現するために、一般的に Cloud Management Platform と IT サービス管理 (ITSM) および構成管理データベース (CMDB) プラットフォームを統合します。この例のとおりに、
Automation Orchestrator Client
がホストされているワークフローを使用して、
Automation Assembler
を CMDB と ITSM 用に ServiceNow と統合できます。
Automation Orchestrator Client
統合とワークフローを使用する際に、環境ごとに複数のインスタンスがある場合は、機能タグが特に便利です。機能タグの詳細については、Automation Assembler での機能タグの使用を参照してください。
また、拡張性アクション スクリプトを使用して、ServiceNow と
Automation Assembler
を統合することもできます。拡張性アクション スクリプトを使用した ServiceNow の統合の詳細については、拡張性アクションを使用して Automation Assembler と ServiceNow を統合する方法を参照してください。
この例では、ServiceNow の統合は 3 つの最上位レベルのワークフローで構成されます。各ワークフローには独自のサブスクリプションがあるため、各コンポーネントを個別に更新および反復処理できます。
  • イベント サブスクリプション エントリ ポイント - 基本ログは、要求しているユーザーと vCenter Server 仮想マシン(該当する場合)を識別します。
  • 統合ワークフロー - オブジェクトを分離し、テクニカル ワークフローに入力を取り入れて、ログ、プロパティ、出力の更新を処理します。
  • テクニカル ワークフロー - ServiceNow API のダウンストリーム システム統合により、ペイロードの外部に仮想マシンのプロパティを追加して、CMDB CI、CR、および
    Automation Assembler
    IaaS API を作成できます。
  1. Automation Orchestrator Client
    で、複数のワークフローで使用される共通の構成を含む構成ファイルを作成して保存します。
  2. 手順 1 の構成ファイルと同じ場所に
    Automation Assembler
    API トークンを保存します。
    Automation Assembler
    API トークンには有効期限があります。
  3. 指定したスクリプト要素を使用して、
    Automation Orchestrator Client
    にワークフローを作成します。このスクリプトは、REST ホストを参照して特定します。また、トークンのオプション パラメータを使用する REST アクションを標準化します。これは追加の認証ヘッダーとして追加されます。
    var configPath = "CS" var configName = "environmentConfig" var attributeName = "CASRestHost" //get REST Host from configuration element var restHost = System.getModule("au.com.cs.example").getRestHostFromConfig(configPath,configName,attributeName) var ConfigurationElement = System.getModule("au.com.cs.example").getConfigurationElementByName(configName,configPath); System.debug("ConfigurationElement:" + ConfigurationElement); var casToken = ConfigurationElement.getAttributeWithKey("CASToken")["value"] if(!casToken){ throw "no CAS Token"; } //REST Template var opName = "casLogin"; var opTemplate = "/iaas/login"; var opMethod = "POST"; // create the REST operation: var opLogin = System.getModule("au.com.cs.example").createOp(restHost,opName,opMethod,opTemplate); //cas API Token var contentObject = {"refreshToken":casToken} postContent = JSON.stringify(contentObject); var loginResponse = System.getModule("au.com.cs.example").executeOp(opLogin,null,postContent,null) ; try{ var tokenResponse = JSON.parse(loginResponse)['token'] System.debug("token: " + tokenResponse); } catch (ex) { throw ex + " No valid token"; } //REST Template Machine Details var opName = "machineDetails"; var opTemplate = "/iaas/machines/" + resourceId; var opMethod = "GET"; var bearer = "Bearer " + tokenResponse; var opMachine = System.getModule("au.com.cs.example").createOp(restHost,opName,opMethod,opTemplate); // (Rest Operation, Params, Content, Auth Token) var vmResponse = System.getModule("au.com.cs.example").executeOp(opMachine,null,"",bearer) ; try{ var vm = JSON.parse(vmResponse); } catch (ex) { throw ex + " failed to parse vm details" } System.log("cpuCount: " + vm["customProperties"]["cpuCount"]); System.log("memoryInMB: " + vm["customProperties"]["memoryInMB"]); cpuCount = vm["customProperties"]["cpuCount"]; memoryMB = vm["customProperties"]["memoryInMB"];
    このスクリプトは、出力
    cpuCount
    および
    memoryMB
    を親ワークフローに送信し、既存の
    customProperties
    プロパティを更新します。これらの値は、CMDB を作成するときに後続のワークフローで使用できます。
  4. ServiceNow CMDB CI の作成スクリプトをワークフローに追加します。この要素は、構成アイテムを使用して ServiceNow REST ホストを特定し、
    cmdb_ci_vmware_instance
    テーブルの REST 操作を作成します。さらに、POST データのワークフロー入力に基づいてコンテンツ オブジェクトの文字列を作成して、返された
    sys_id
    を出力します。
    var configPath = "CS" var configName = "environmentConfig" var attributeName = "serviceNowRestHost" var tableName = "cmdb_ci_vmware_instance" //get REST Host from configuration element var restHost = System.getModule("au.com.cs.example").getRestHostFromConfig(configPath,configName,attributeName) //REST Template var opName = "serviceNowCreatCI"; var opTemplate = "/api/now/table/" + tableName; var opMethod = "POST"; // create the REST operation: var opCI = System.getModule("au.com.cs.example").createOp(restHost,opName,opMethod,opTemplate); //cmdb_ci_vm_vmware table content to post; var contentObject = {}; contentObject["name"] = hostname; contentObject["cpus"] = cpuTotalCount; contentObject["memory"] = MemoryInMB; contentObject["correlation_id"]= deploymentId contentObject["disks_size"]= diskProvisionGB contentObject["location"] = "Sydney"; contentObject["vcenter_uuid"] = vcUuid; contentObject["state"] = "On"; contentObject["owned_by"] = owner; postContent = JSON.stringify(contentObject); System.log("JSON: " + postContent); // (Rest Operation, Params, Content, Auth Token) var ciResponse = System.getModule("au.com.cs.example").executeOp(opCI,null,postContent,null) ; try{ var cmdbCI = JSON.parse(ciResponse); } catch (ex) { throw ex + " failed to parse ServiceNow CMDB response"; } serviceNowSysId = cmdbCI['result']['sys_id'];
  5. 子ワークフローの出力を使用して、既存の
    customProperties
    を使用するプロパティ オブジェクトを作成し、
    serviceNowSysId
    プロパティを ServiceNow の値で上書きします。この一意の ID は、インスタンスが破棄されたときに使用中止としてマークするために CMDB で使用されます。
Automation Assembler
は ITSM ServiceNow と正常に統合されました。