Automation Orchestrator Client ワークフローを使用して、ITSM 用の Automation Assembler を ServiceNow と統合する方法
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 統合の構成を参照してください。

エンタープライズ ユーザーは、コンプライアンスを実現するために、一般的に 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 AssemblerIaaS API を作成できます。
- Automation Orchestrator Clientで、複数のワークフローで使用される共通の構成を含む構成ファイルを作成して保存します。
- 手順 1 の構成ファイルと同じ場所にAutomation AssemblerAPI トークンを保存します。Automation AssemblerAPI トークンには有効期限があります。
- 指定したスクリプト要素を使用して、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 を作成するときに後続のワークフローで使用できます。
- 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'];
- 子ワークフローの出力を使用して、既存のcustomPropertiesを使用するプロパティ オブジェクトを作成し、serviceNowSysIdプロパティを ServiceNow の値で上書きします。この一意の ID は、インスタンスが破棄されたときに使用中止としてマークするために CMDB で使用されます。
Automation Assembler
は ITSM ServiceNow と正常に統合されました。