Introduction:
Este documento descreve como solucionar problemas de integração do Google Cloud com o CloudCenter Manager (CCM) versão 4.8.0/4.7.x .
Prerequisites
Requirements
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Interface Linux
- Ambientes de máquina virtual
- conta de nuvem do Google
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software:
- CloudCenter versão 4.6.x a 4.8.x
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Informações de Apoio
Depois que você adicionar com êxito o orquestrador GCE (CCO) ao CCM e tentar testar o ambiente implantando um aplicativo que inclui a seleção de tipo de instância e zona, uma mensagem de erro é exibida ao tentar selecionar o projeto como mostrado na imagem:
Problema
Em alguns registros do CCM, você pode encontrar este erro:
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:45,991 INFO impl.CloudPropertiesServiceImpl [asyncOperationExecutor-6] - cloud property task is invoked
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,006 INFO impl.CloudManagementServiceImpl [asyncOperationExecutor-6] - cloud data is not null
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,006 INFO impl.CloudManagementServiceImpl [asyncOperationExecutor-6] - got the region end point as null
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,011 INFO impl.CloudPropertiesServiceImpl [asyncOperationExecutor-7] - cloud property task is invoked
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,014 INFO impl.CloudPropertiesServiceImpl [asyncOperationExecutor-8] - cloud property task is invoked
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,024 INFO impl.CloudManagementServiceImpl [asyncOperationExecutor-7] - cloud data is not null
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,024 INFO impl.CloudManagementServiceImpl [asyncOperationExecutor-7] - got the region end point as null
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,032 INFO impl.CloudManagementServiceImpl [asyncOperationExecutor-8] - cloud data is not null
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,032 INFO impl.CloudManagementServiceImpl [asyncOperationExecutor-8] - got the region end point as null
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,765 ERROR impl.CloudPropertiesServiceImpl [asyncOperationExecutor-6] - Failed to getCloudPropertiesFromGateway from gateway for propertyType : Project
VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,765 ERROR impl.CloudPropertiesServiceImpl [asyncOperationExecutor-6] - 500 Internal Server Error
org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:357)
at com.osmosix.commons.util.AjaxUtil.postJson(AjaxUtil.java:117)
at com.osmosix.mgmt.cloud.impl.CloudPropertiesServiceImpl.getCloudPropertiesFromGateway(CloudPropertiesServiceImpl.java:365)
at com.osmosix.mgmt.cloud.impl.CloudPropertiesServiceImpl$CloudPropertyTask.run(CloudPropertiesServiceImpl.java:461)
at com.osmosix.commons.operation.impl.AsyncOperationServiceImpl$2.run(AsyncOperationServiceImpl.java:134)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
No entanto, se você for ao CCO osmoseis logs, obterá uma imagem clara.
2017-05-29 04:28:00,425 INFO job.JobServiceController [http-apr-8443-exec-3] - processing validateCloudAccount request...
2017-05-29 04:28:00,632 ERROR properties.CloudPropertiesController [http-apr-8443-exec-6] - com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Google Cloud Resource Manager API has not been used in project credible-spark-166514 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=credible-spark-166514 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"reason" : "forbidden"
} ],
"message" : "Google Cloud Resource Manager API has not been used in project credible-spark-166514 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=credible-spark-166514 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"status" : "PERMISSION_DENIED"
Resolução
Essas APIs devem ser habilitadas para que o centro de nuvem funcione corretamente com o GCE:
Para ativá-lo:
- No console GCE, navegue até o painel da API, como mostrado na imagem:
- No final da página, todas as APIs habilitadas estão listadas e, provavelmente, você descobrirá que a API do Google Compute Engine já está habilitada, se não habilitada, como mostrado na imagem:
- No entanto, o GCE não coloca a API do gerenciador de recursos na página diretamente, portanto é necessário pesquisá-la. Para isso, selecione a opção enable API na parte superior da página e ela o redireciona para a biblioteca de API.
- Como mostrado na imagem, procure a API do Google Cloud Resource Manager , selecione-a e ative-a.
- Para refletir essas alterações, reinicie a máquina CCO e tente implantar o aplicativo novamente.