소개
이 문서에서는 다음을 통해 Cisco Hosted Collaboration Solution(HCS) 12.5에서 Smart Account와 제품 인스턴스를 동기화하는 방법에 대해 설명합니다
Cisco HCM-F(Hosted Collaboration Mediation Fulfillment)
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
Cisco Unified Communications Manager(CUCM) 버전 12.5
HCM-F 12.5
CUCM Smart Licensing - 직접 모델
CSSM(Cisco Smart Software Management)
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
CUCM 12.5.X
HCM-F 12.5.1
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
HLM(Hosted License Manager)은 HCM-F as service로 실행됩니다. HLM/HCM-F는 Cisco Unified Communications Applications(UC) 애플리케이션을 Cisco Cloud에서 실행되는 Smart Licensing Service에 등록하기 위해 개발되었습니다. UC 애플리케이션을 Smart Licensing Service에 할당하면 HCS 파트너를 위한 단일 라이센스 관리 저장소 역할을 하는 CSSM 포털에서 이러한 애플리케이션의 라이센스 사용이 추적됩니다.
HCM-F HLM 서비스는 HCM-F에서 Smart Account를 구성하고 HCM-F에서 이 Smart Account와 관련된 모든 클러스터 기반 작업을 허용합니다.
Cisco 클라우드에 상주하는 Smart Licensing Service는 OAuth 인증을 통해 다양한 API(Application Programming Interface)를 제공합니다. 또한 UC 애플리케이션은 HCM-F가 클러스터 운영 과정에서 "할당" 및 "할당 해제"와 같은 여러 단계를 수행할 수 있도록 API를 공개합니다.
HCM-F는 양측에 노출된 API를 사용하여 클러스터 작업을 수행합니다.
이러한 통합을 위해서는 Cisco 클라우드 서비스에 대한 네트워크 연결이 필요합니다.
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/Proxy와 Cisco 클라우드 서비스 간의 모든 통신은 포트 TCP/443에서 TLS 연결을 통해 이루어집니다.
설정
HCS 파트너 관리자로서 Cisco API Developer Portal에 로그인하고 탐색 > Smart Accounts & Licensing API > Smart Accounts
HCM-F에서 Smart Account를 구성하려면 API 클라이언트가 필요합니다.
이 단계에서 생성된 클라이언트 자격 증명은 "API Service" 애플리케이션 유형을 사용하며, Smart Account API 연결을 필요로 하며, HCM-F의 Smart Account Configuration Access에 제공됩니다. 올바른 클라이언트 자격 증명과 Smart Account 도메인 이름이 제공되면 HCM-F는 컨피그레이션을 완료하고 동일한 액세스 세부 정보를 사용하여 Smart Licensing Service와 상호 작용합니다.
특히 cloudsso.cisco.com에 대해 인증하여 Oauth2.0 베어러 토큰을 얻은 다음 swapi.cisco.com을 통해 Cloud License Service에서 모든 Virtual Account를 가져옵니다. 가상 어카운트 가져오기에 소요되는 시간은 Satellite에서 동기화된 가상 어카운트 및 가상 어카운트의 수에 따라 달라집니다. 이 작업은 최대 1시간이 소요됩니다. Satellite에서 동기화된 가상 어카운트는 무시됩니다.
Smart Licensing을 위한 HCM-F 컨피그레이션 워크플로
Infrastructure Manager(인프라 관리자) > Smart Licensing(스마트 라이센싱) > Configure Smart Account(스마트 어카운트 구성)로 이동합니다.
여기에 있는 정보는 이 문서의 앞부분에서 설명한 섹션에서 생성된 출력으로 채워집니다.
Infrastructure Manager(인프라 관리자) > Smart Licensing(스마트 라이센싱) > Transport Mode(전송 모드)로 이동합니다.
HCM-F 및 UC 애플리케이션을 CSSM에 연결하려면 HCM-F에서 전송 모드를 설정해야 합니다.
참고: HCM-F 12.5.1은 직접 모델 통합만 지원합니다. 즉, 전송 모드를 직접 또는 프록시로 설정할 수 있습니다
Infrastructure Manager(인프라 관리자) > Smart Licensing(스마트 라이센싱) > Virtual Account Summary(가상 어카운트 요약)로 이동합니다.
참고: {Smart Account와 연결된 가상 어카운트를 확인합니다. 목록에서 Smart Account 이름을 선택합니다. Virtual Accounts 페이지에는 가상 어카운트 목록이 표시됩니다.}
클러스터 연결 CSSM
UC 애플리케이션을 CSSM에 "할당"하려면 12.5 클러스터와 UC 애플리케이션이 모두 존재하고 관리자 및 플랫폼 자격 증명과 함께 HCM-F 인벤토리에 구성되어 있는지 확인해야 합니다.
Smart Account 컨피그레이션이 완료되면 HCM-F는 CSSM의 모든 데이터를 동기화하고 가상 어카운트 데이터와 함께 SDR, Smart Account를 업데이트합니다. SDR에서 가상 어카운트 데이터가 업데이트되면 관리자 사용자는 어떤 가상 어카운트에도 클러스터를 할당할 수 있습니다.
이 클러스터 작업을 "클러스터 할당"이라고 하며, VA에서 클러스터를 제거하는 것을 "클러스터 할당 해제"라고 합니다. 한 VA에서 다른 VA로 클러스터를 이동하는 것을 "클러스터 재할당"이라고 합니다.
CSSM에 클러스터를 할당하려면
Infrastructure Manager(인프라 관리자) > Smart Licensing(스마트 라이센싱) > Virtual Account Summary(가상 어카운트 요약)
활용할 가상 어카운트를 선택합니다.
Cluster Assignment(클러스터 할당): Select Assign(할당 선택):
할당할 UC 애플리케이션을 선택하고 Assign(할당) 버튼을 선택합니다.
할당이 완료되면 UC 애플리케이션이 사용한 VA(Virtual Account)에 할당된 것으로 표시됩니다.
(Smart Licensing > 클러스터 요약
HCM-F를 통해 Smart Licensing Service에 UC 애플리케이션을 할당하면 어떻게 됩니까?
다음은 실행되는 HLM 워크플로입니다.
- 확인
- 라이센스 모드 변경
- 전송 모드 변경
- 등록
이 내용은 Jobs 섹션(Infrastructure Manager > Administration > Jobs)에서 확인할 수 있습니다.
로그 검토(HLM 로그가 Detailed로 설정됨)
- 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 Provisioning Adapter(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
}