Como administrador de sistemas, você pode usar a API de nuvem para concluir programaticamente tarefas comuns de administração de infraestrutura, como atribuir permissões a uma função ou usuário, criar ou atualizar um trabalho ou visualizar retornos de trabalhos. Você pode instalar sseapiclient
em um ambiente com um mestre Salt ou um ambiente sem um mestre Salt.
Antes de começar
Antes de usar sseapiclient
, conclua os seguintes pré-requisitos:
- Se estiver usando
sseapiclient
em um ambiente com um mestre Salt:- Se você não tiver instalado o Master Plugin no mestre Salt, consulte Instalar e configurar o Master Plugin para obter instruções de instalação.
sseapiclient
é agrupado com o Master Plugin e é instalado quando você instala o plug-in. - Verifique se você instalou o versão 8.11.1 ou posterior do Master Plugin no seu mestre Salt. Você pode encontrar a versão do Master Plugin no espaço de trabalho Master Plugins.
Você também pode atualizar o Master Plugin no seu mestre Salt por meio do espaço de trabalho Master Plugins. Consulte Uso do espaço de trabalho Master Plugin para obter mais informações.
- Se você não tiver instalado o Master Plugin no mestre Salt, consulte Instalar e configurar o Master Plugin para obter instruções de instalação.
- Se você estiver usando
sseapiclient
em um ambiente sem um mestre Salt:- Execute os seguintes comandos para instalar as bibliotecas Pika Python e PyJWT no seu dispositivo:
pip3 install pika==1.3.1 pip3 install pyjwt==2.4.0
- Baixe a versão mais recente do
sseapiclient
no espaço de trabalho Master Plugins. Em seguida, execute o seguinte comando para instalarsseapiclient
no seu dispositivo:pip3 install SSEApiClient-file-name.whl
Consulte Uso do espaço de trabalho Master Plugin para obter mais informações.
- Verifique se a versão do
sseapiclient
corresponde à versão do Automation Config. Você pode encontrar a versão do Automation Config no espaço de trabalho Master Plugins.
- Execute os seguintes comandos para instalar as bibliotecas Pika Python e PyJWT no seu dispositivo:
- Crie um trabalho no Automation Config. Consulte Como criar trabalhos para obter mais informações.
Gerar um token de API
Antes de poder se conectar à API de nuvem, você deve gerar um token de API usando o Console do Cloud Services. O token é usado para autenticar seu mestre Salt com o VMware Cloud Services.
- Na barra de ferramentas do Console do Cloud Services, clique no seu nome de usuário e selecione .
- Clique em Gerar Token.
- Preencha o formulário.
- Insira um nome para o token.
- Selecione a Vida Útil (TTL) do token. A duração padrão é de seis meses.
Observação: "O token que não expira pode ser um risco de segurança, se comprometido." Se isso acontecer, você deverá revogar o token.
- Defina escopos para o token.
Escopo Descrição Funções de serviço As funções de serviço são conjuntos predefinidos e integrados de permissões que concedem acesso ao VMware Cloud Services.
Para acessar o serviço de Automation Config, procure o serviço Automation Config e selecione a função de serviço desejada. Para obter uma lista de funções de serviço disponíveis, consulte Como definir funções de usuário.
- (Opcional) Defina uma preferência de e-mail para receber um lembrete quando o token estiver prestes a expirar.
- Clique em Gerar.
O token de API recém-gerado aparece na janela Gerado pelo Token.
- Salve as credenciais do token em um local seguro.
Depois de gerar o token; você só poderá ver o nome do token na página Tokens de API e não nas credenciais. Para gerar novamente o token, clique em Gerar Novamente.
- Clique em Continuar.
Fazer uma chamada de API
Depois de gerar um token de API, você pode fazer uma chamada de API usando sseapiclient
ou cURL
.
Para fazer uma chamada de API:
- Faça login no ambiente no qual você instalou o
sseapiclient
. - Execute o seguinte comando, substituindo o valor do servidor pela URL do Automation Config específica da região e pelo valor do token de API gerado anteriormente. As seguintes amostras de código mostram uma chamada de API na região dos EUA.
- Python
-
from sseapiclient import APIClient client = APIClient(server='https://ssc-gateway.mgmt.cloud.vmware.com', csp_api_token='<api-token>') client.api.job.get_jobs()
- Python
-
#For non-prod environments (e.g. scaleperf). Note the extra argument to the constructor: from sseapiclient import APIClient client = APIClient(server='https://ssc-gateway.scaleperf.symphony-dev.com', csp_api_token='<api-token>', csp_url='https://console-stg.cloud.vmware.com/') client.api.job.get_jobs()
- cURL
-
SERVER="https://ssc-gateway.mgmt.cloud.vmware.com" && \ API_TOKEN="<api-token>" && \ BEARER_TOKEN=$(curl --silent 'https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode "api_token=$API_TOKEN" \ | grep -o '"access_token":"[^"]*' | grep -o '[^"]*$') && \ XSRFTOKEN=$(curl -s -I -X POST "$SERVER/account/login/" \ --header "Authorization: Bearer $BEARER_TOKEN" \ | awk '/X-XSRFTOKEN:|x-xsrftoken:/ {gsub("\r","",$2);print $2}') && \ curl --location --request POST "$SERVER/rpc" \ --header 'Content-Type: application/json' \ --header "Authorization: Bearer $BEARER_TOKEN" \ --header "X-XSRFTOKEN: $XSRFTOKEN" \ --header "Cookie: _xsrf=$XSRFTOKEN; _xsrf=$XSRFTOKEN" \ --data '{ "resource": "job", "method": "get_jobs", "kwarg": {}, "args": [] }'
Tabela 1. URLs regionais para o Automation Config Região URL do Automation Config US https://ssc-gateway.mgmt.cloud.vmware.com Alemanha https://de.ssc-gateway.mgmt.cloud.vmware.com Índia https://in.ssc-gateway.mgmt.cloud.vmware.com Canadá https://ca.ssc-gateway.mgmt.cloud.vmware.com Austrália https://au.ssc-gateway.mgmt.cloud.vmware.com Reino unido https://uk.ssc-gateway.mgmt.cloud.vmware.com
Resultados
jobs.get_jobs()
retorna uma lista de todos os trabalhos. Os exemplos de código a seguir mostram um exemplo de resposta bem-sucedida.
- Python
-
RPCResponse(riq=3, ret={'count': 1, 'results': [{'uuid': '60c14cfc-09ca-4b5a-bc76-8294287c2e6c', 'name': 'Check disk usage', 'desc': 'Checks disk usage on targeted devices', 'cmd': 'local', 'tgt_uuid': '7f93b928-388b-11e6-b133-346895ecb8f3', 'fun': 'disk.usage', 'arg': {'arg': [], 'kwarg': {}}, 'masters': [], 'metadata': {'auth': {'owner': {'uuid': '8964e9f3-6864-4fe5-ba4a-ab4530caa8ca', 'config_name': 'internal', 'username': 'root'}, 'access': {}}}, 'tgt_name': 'CentOS'}], 'limit': 50}, error=None, warnings=[])
- cURL
-
{'riq': 3, 'ret': {'count': 1, 'results': [{'uuid': '60c14cfc-09ca-4b5a-bc76-8294287c2e6c', 'name': 'Check disk usage', 'desc': 'Checks disk usage on targeted devices', 'cmd': 'local', 'tgt_uuid': '7f93b928-388b-11e6-b133-346895ecb8f3', 'fun': 'disk.usage', 'arg': {'arg': [], 'kwarg': {}}, 'masters': [], 'metadata': {'auth': {'owner': {'uuid': '8964e9f3-6864-4fe5-ba4a-ab4530caa8ca', 'config_name': 'internal', 'username': 'root'}, 'access': {}}}, 'tgt_name': 'CentOS'}], 'limit': 50}, 'error': null, 'warnings': []}
client.api.admin.trim_database()
. Se você não tiver permissões suficientes, a API lançará um erro.
Para usar funções administrativas, você pode gerar um novo token de API e selecionar a função de serviço Superusuário.
O que fazer em seguida
Leia a documentação da API (RaaS) no VMware Developer Portal para saber mais sobre os recursos disponíveis.