はじめに
このドキュメントでは、Cisco Hosted Collaboration Solution(HCS) 12.5のスマートアカウントと製品インスタンスを同期する方法について説明します。
Cisco Hosted Collaboration Mediation Fulfillment(HCM-F)
前提条件
要件
次の項目に関する知識があることが推奨されます。
Cisco Unified Communications Manager(CUCM)バージョン 12.5
HCM-F 12.5
CUCMスマートライセンス – ダイレクトモデル
Cisco Smart Software Management(CSSM)
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
CUCM 12.5.X
HCM-F 12.5.1(2015年9月)
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
Hosted License Manager(HLM)は、HCM-Fでサービスとして実行されます。HLM/HCM-Fは、Cisco Unified Communications Applications(UC)アプリケーションをCisco Cloudで実行されているSmart Licensing Serviceに登録するために開発されました。UCアプリケーションがSmart Licensing Serviceに割り当てられると、これらのアプリケーションのライセンス消費がCSSMポータルから追跡されます。CSSMポータルは、HCSパートナー向けの単一ライセンス管理リポジトリとして機能します。
HCM-F HLMサービスを使用すると、HCM-Fでスマートアカウントを設定し、このスマートアカウントに関連するHCM-Fからのクラスタベースの操作を許可できます。
シスコクラウドに常駐するSmart Licensing Serviceは、OAuth認証を通じて異なるアプリケーションプログラミングインターフェイス(API)を公開します。さらに、UCアプリケーションはAPIを公開し、HCM-Fが「割り当て」や「割り当て解除」などのクラスタ操作の過程で関連する複数の手順を実行できるようにします。
ence HCM-Fは、両側で公開されているAPIを使用してクラスタ操作を実行します。
この統合には、シスコクラウドサービスへのネットワーク接続が必要です。
cloudsso1.cisco.com -> 72.163.4.74
cloudsso2.cisco.com -> 173.37.144.211
cloudsso3.cisco.com -> 173.38.127.38
swapi.cisco.com -> 146.112.59.25
HCM-F/プロキシとシスコクラウドサービス間のすべての通信は、ポートTCP/443のTLS接続を介して行われます。
コンフィギュレーション
HCSパートナー管理者として、Cisco API Developer Portalにログインし、 [Explore] > [Smart Accounts & Licensing APIs] > [Smart Accounts]
HCM-Fでスマートアカウントを設定するには、APIクライアントが必要です。
この手順で生成されるクライアント資格情報は、「APIサービス」アプリケーションタイプを使用し、スマートアカウントAPI関連付けが必要で、HCM-Fのスマートアカウント設定アクセス用に提供されます。正しいクライアントクレデンシャルとスマートアカウントのドメイン名を指定すると、HCM-Fは設定を完了し、同じアクセス詳細を使用してスマートライセンスサービスと対話します。
具体的には、Oauth2.0ベアラトークンを取得するためにcloudsso.cisco.comに対して認証を行い、swapi.cisco.comを介してクラウドライセンスサービスからすべての仮想アカウントを取得します。仮想アカウントのフェッチにかかる時間は、サテライトから同期された仮想アカウントと仮想アカウントの数によって異なります。この操作には最大1時間かかります。サテライトから同期される仮想アカウントは無視されます。
スマートライセンスのHCM-F設定ワークフロー
Infrastructure Manager > Smart Licensing > Configure Smart Accountの順に移動します。
この情報には、このドキュメントで前述したセクションで生成された出力が入力されています。
Infrastructure Manager > Smart Licensing > Transport Modeの順に移動します。
HCM-Fのトランスポートモードの設定は、HCM-FおよびUCアプリケーションをCSSMに接続するために必要です。
注:HCM-F 12.5.1はダイレクトモデルの統合のみをサポートします。つまり、トランスポートモードはダイレクトまたはプロキシに設定できます
Infrastructure Manager > Smart Licensing > Virtual Account Summaryの順に移動します。
注:{スマートアカウントに関連付けられた仮想アカウントを表示するには、リストからスマートアカウント名を選択します。「仮想アカウント」ページに仮想アカウントのリストが表示されます。}
クラスタの関連付けCSSM
UCアプリケーションをCSSMに「割り当て」るには、12.5クラスタとUCアプリケーションの両方が、管理者とプラットフォームのクレデンシャルとともにHCM-Fインベントリに存在し、設定されている必要があります。
スマートアカウントの設定が完了すると、HCM-FはCSSMからのすべてのデータを同期し、SDR、スマートアカウント、および仮想アカウントデータを更新します。SDRで仮想アカウントデータが更新されると、管理者ユーザは任意の仮想アカウントにクラスタを割り当てることができます。
このクラスタ操作は「クラスタ割り当て」と呼ばれ、VAからのクラスタの削除は「クラスタ割り当て解除」と呼ばれます。 クラスタをあるVAから別のVAに移動することを「クラスタ再割り当て」と呼びます。
CSSMにクラスタを割り当てるには、
インフラストラクチャマネージャ>スマートライセンス>仮想アカウントの概要:
利用する仮想アカウントを選択します。
Cluster Assignment:Assignを選択します。
割り当てるUCアプリケーションを選択し、Assignボタンを選択します。
割り当てが完了すると、UCアプリケーションが、使用した仮想アカウント(VA)に割り当てられたとして表示されます。
(Smart Licensing > Cluster Summary
HCM-Fを介してUCアプリケーションをスマートライセンスサービスに割り当てると、どうなりますか。
実行されるHLMワークフローは次のとおりです。
- 検証
- ライセンスモードの変更
- 転送モードの変更
- 登録
これは、ジョブセクション(Infrastructure Manager > Administration > Jobs)で確認できます。
ログウォークスルー(HLMログを詳細に設定)
- HLMは、クラスタがデータベースから要求を割り当て、クラスタが適格かどうかを確認します。
2019-06-26 13:17:35,199 INFO [53] Getting the Instance of Cluster Assignment Agent ClusterAssignmentRequest
2019-06-26 13:17:35,199 DEBUG [53] AgentMessageDispatcher::process -- Agent with instance >SMART_LIC_CLUSTER_OPERATION<Exist in memory,no need to read from persistence store-- ClusterAssign(SMART_LIC_CLUSTER_OPERATION)
2019-06-26 13:17:35,199 INFO [169] processing Agent SMART_LIC_CLUSTER_OPERATION
2019-06-26 13:17:35,332 DEBUG [169] isProgressInfoChanged : true
2019-06-26 13:17:35,332 DEBUG [169] job.getStatusInfo: :Verification - Inprogress|License Mode Change - Not Started|Transport Mode Change - Not Started|Registration - Not Started|
2019-06-26 13:17:35,357 INFO [169] jobKID from create: 26
2019-06-26 13:17:35,357 DEBUG [169] Update method at End : JobDTOcom.cisco.hcs.HLM.smartlic.dto.JobDTO Object {
sDRJobPK: 26
jobId: null
jobType: PROVISIONING
description: Assignment of Cluster cl-beta to HCS-DEMO Started
JobEntity: JOB_ENTITY_SMARTACCOUNT
entityName: null
status: IN_PROGRESS
isModifiable: true
isDeletable: true
isRestartable: false
isCancelable: false
progressInfo: {Verification=Inprogress, License Mode Change=Not Started, Transport Mode Change=Not Started, Registration=Not Started}
errorDescription: null
recommendedAction: null
2.クラスタが対象:
<com.cisco.hcs.hcsagent.message.smartlic.ClusterAssignmentResp>
<messageType>ClusterAssignmentResp</messageType>
<source>
<serviceName>ClusterAssign</serviceName>
<instance>SMART_LIC_CLUSTER_OPERATION</instance>
</source>
<destination>
<serviceName>SDRUI</serviceName>
<instance>HCS-SMARTLIC-LIB0</instance>
</destination>
<sessionID>5fbb89a2-c62b-4d85-b385-3648c8010413</sessionID>
<transactionID>b2e1cfe6-b8fb-462c-a874-374e19afd110</transactionID>
<fault>false</fault>
<Fork>false</Fork>
<requeueCount>0</requeueCount>
<jobId>26</jobId>
<responseCode>PASS</responseCode>
<responseDesc>SmartLicNoError</responseDesc>
<smartLicRespCode defined-in="com.cisco.hcs.hcsagent.message.smartlic.ClusterOperationsResponse">PASS</smartLicRespCode>
<smartLicRespReason defined-in="com.cisco.hcs.hcsagent.message.smartlic.ClusterOperationsResponse">SmartLicNoError</smartLicRespReason>
<smartLicRespCode>PASS</smartLicRespCode>
<smartLicRespReason>SmartLicNoError</smartLicRespReason>
</com.cisco.hcs.hcsagent.message.smartlic.ClusterAssignmentResp>
3. HLMは、CUCMの製品タイプをHCSに変更します。
2019-06-26 13:17:35,646 DEBUG [33] First pool session created: SDRSyncSession@f11306
2019-06-26 13:17:35,650 INFO [169] UCAppDeploymentModeConnection: Opening secure connection to: https://XXX.YYY.ZZZ:8443/platform-services/services/DeploymentModeService?wsdl
2019-06-26 13:17:35,650 INFO [169] UCAppDeploymentModeConnectionPort successfully opened
2019-06-26 13:17:35,652 DEBUG [33] Pool session created: SDRSyncSession@2cd71b
2019-06-26 13:17:35,659 DEBUG [33] Pool session created: SDRSyncSession@a4e538
2019-06-26 13:17:35,667 DEBUG [33] Pool session created: SDRSyncSession@b3c0d9
2019-06-26 13:17:35,667 INFO [33] Pool is valid. Pool create time in Ms: 1561547855646, poolRunning: false
2019-06-26 13:17:35,667 INFO [33] Created 4 pool sessions.
4. HLMがサービスCisco HCSプロビジョニングアダプタ(CHPA)に対して、クラスタをCSSMに割り当てるように指示します。
2019-06-26 13:17:39,102 DEBUG [169] Agent: sending to [chpa]
-------
<com.cisco.hcs.hcsagent.message.chpa.GetTransportSettingsRequest>
<messageType>GetTransportSettingsRequest</messageType>
<source>
<serviceName>ClusterAssign</serviceName>
</source>
<destination>
<serviceName>chpa</serviceName>
</destination>
<sessionID>getTransport-4</sessionID>
<fault>false</fault>
<Fork>false</Fork>
<requeueCount>0</requeueCount>
<deviceId>
<type>ApplicationInstance</type>
<key class="com.cisco.hcs.sdr.v10_0.KIDInt">
<internalValue>4</internalValue>
</key>
</deviceId>
<clusterName>cl-beta</clusterName>
</com.cisco.hcs.hcsagent.message.chpa.GetTransportSettingsRequest>
---------
2019-06-26 13:17:39,104 DEBUG [169] Agent: Sent message to chpa(null)
2019-06-26 13:17:39,104 INFO [169] UCAppTimerTask , Timer Task started at:Wed Jun 26 13:17:39 CEST 2019
2019-06-26 13:17:39,104 DEBUG [169] com.cisco.hcs.HLM.smartlic.core.clusterops.utils.UCAppTimerRegister , UCApp Timer Task Registered successfully , initial delay ,0 interval , 300000
2019-06-26 13:17:39,104 DEBUG [81655] UCAppTimerTask , Timer Task Attempt of Retry 0
2019-06-26 13:17:39,104 INFO [169] JMS Message is Processed and leaving out from JMS thread
2019-06-26 13:17:44,207 DEBUG [45] KeepAliveConsumerProcessor::process -- enter
2019-06-26 13:17:44,207 DEBUG [94] KeepAliveConsumerProcessor::process -- enter
2019-06-26 13:17:44,208 DEBUG [45] KeepAliveConsumerProcessor::process -- received broadcast message for service sdrcnf
2019-06-26 13:17:44,208 DEBUG [45] noChange -- sdrcnf is Alive
2019-06-26 13:17:44,208 DEBUG [45] KeepAliveMonitor::setExpiresBy:
2019-06-26 13:17:44,208 DEBUG [94] KeepAliveConsumerProcessor::process -- received broadcast message for service sdrcnf
2019-06-26 13:17:44,208 DEBUG [45] now: 26/06/2019 01:17:44.208
2019-06-26 13:17:44,208 DEBUG [94] noChange -- sdrcnf is Alive
2019-06-26 13:17:44,208 DEBUG [45] expected by: 26/06/2019 01:19:44.208
2019-06-26 13:17:44,208 DEBUG [94] KeepAliveMonitor::setExpiresBy:
2019-06-26 13:17:44,208 DEBUG [94] now: 26/06/2019 01:17:44.208
2019-06-26 13:17:44,208 DEBUG [94] expected by: 26/06/2019 01:19:44.208
2019-06-26 13:17:46,105 INFO [36] Perfmon Category in Publish Counter update is Cisco HCS License Manager
2019-06-26 13:17:46,106 DEBUG [36] AgentJmx: JMS connection already up, reusing connection
2019-06-26 13:17:49,420 INFO [63] smartLicAuditProcessor::process enter...
2019-06-26 13:17:50,075 INFO [66] smartLicAuditProcessor::process enter...
5.クラスタの割り当てが成功しました。
2019-06-26 13:17:50,390 INFO [68] LicUsageAuditProcessor::process enter...
2019-06-26 13:17:52,331 DEBUG [53]
AgentMessageDispatcher -- Received msg by RouteBuilder[ClusterAssign-null] :
---------------
<com.cisco.hcs.hcsagent.message.chpa.GetTransportSettingsResponse>
<messageType>GetTransportSettingsResponse</messageType>
<source>
<serviceName>chpa</serviceName>
<instance>3998890f-ac1c-4ee8-baf8-6b0d2331387b</instance>
</source>
<destination>
<serviceName>ClusterAssign</serviceName>
</destination>
<sessionID>getTransport-4</sessionID>
<fault>false</fault>
<Fork>false</Fork>
<requeueCount>0</requeueCount>
<deviceId>
<type>ApplicationInstance</type>
<key class="com.cisco.hcs.sdr.v10_0.KIDInt">
<internalValue>4</internalValue>
</key>
</deviceId>
<responseCode>PASS</responseCode>
<responseReason>chpaNoError</responseReason>
<clusterName>cl-beta</clusterName>
<mode>HTTP/HTTPS Proxy</mode>
<url></url>
<ipAddress>proxy.esl.cisco.com</ipAddress>
<port>8080</port>
</com.cisco.hcs.hcsagent.message.chpa.GetTransportSettingsResponse>
-
progressInfo: {Verification=Pass, License Mode Change=Not Applicable, Transport Mode Change=Not Applicable, Registration=Pass}
errorDescription: null
recommendedAction: null
jobTypeChanged: true
descriptionChanged: true
JobEntityChanged: true
entityNameChanged: false
statusChanged: true
isModifiableChanged: false
isDeletableChanged: false
isRestartableChanged: false
isCancelableChanged: false
progressInfoChanged: false
errorDescriptionChanged: false
recommendedActionChanged: false
}