Como administrador de sistemas, puede utilizar la API de nube de para completar tareas de administración de infraestructuras comunes de forma programática, como asignar permisos a una función o un usuario, crear o actualizar un trabajo o ver los resultados de los trabajos. Puede instalar sseapiclient
en un entorno con o sin un maestro de Salt.
Antes de comenzar
Antes de utilizar sseapiclient
, complete los siguientes requisitos previos:
- Si utiliza
sseapiclient
en un entorno con un maestro de Salt:- Si no ha instalado el complemento principal en el maestro de Salt, consulte Instalar y configurar el complemento principal para obtener instrucciones de instalación.
sseapiclient
se incluye con el complemento principal y se instala al instalar el complemento. - Compruebe que ha instalado la versión 8.11.1 o posterior del complemento principal en el maestro de Salt. Puede encontrar la versión del complemento principal en el área de trabajo Complementos principales.
También puede actualizar el complemento principal en el maestro de Salt a través del área de trabajo Complementos principales. Para obtener más información, consulte Usar el área de trabajo Complementos principales.
- Si no ha instalado el complemento principal en el maestro de Salt, consulte Instalar y configurar el complemento principal para obtener instrucciones de instalación.
- Si utiliza
sseapiclient
en un entorno sin un maestro de Salt:- Ejecute los siguientes comandos para instalar las bibliotecas de Pika Python y PyJWT en el dispositivo:
pip3 install pika==1.3.1 pip3 install pyjwt==2.4.0
- Descargue la versión más reciente de
sseapiclient
desde el área de trabajo Complementos principales. A continuación, ejecute el siguiente comando para instalarsseapiclient
en el dispositivo:pip3 install SSEApiClient-file-name.whl
Para obtener más información, consulte Usar el área de trabajo Complementos principales.
- Compruebe que la versión de
sseapiclient
coincida con la versión de Automation Config. Puede encontrar la versión de Automation Config en el área de trabajo Complementos principales.
- Ejecute los siguientes comandos para instalar las bibliotecas de Pika Python y PyJWT en el dispositivo:
- Cree un trabajo en Automation Config. Consulte Cómo crear trabajos para obtener más información.
Generar un token de API
Antes de poder conectarse a la API de nube, debe generar un token de API mediante la consola de Cloud Services. El token se utiliza para autenticar el maestro de Salt con VMware Cloud Services.
- En la barra de herramientas de la consola de Cloud Services, haga clic en el nombre de usuario y seleccione .
- Haga clic en Generar token.
- Complete el formulario.
- Introduzca un nombre para el token.
- Seleccione el tiempo de vida (TTL) del token. La duración predeterminada es de seis meses.
Nota: Un token que no caduca puede representar un riesgo de seguridad si se encuentra comprometido. Si esto sucede, debe revocar el token.
- Defina los ámbitos del token.
Ámbito Descripción Funciones de servicio Las funciones de servicio son conjuntos de permisos integrados y predefinidos que conceden acceso a VMware Cloud services.
Para acceder al servicio Automation Config, busque el servicio Automation Config y seleccione la función de servicio que desee. Para obtener una lista de las funciones de servicio disponibles, consulte Cómo definir las funciones de usuario.
- (Opcional) Establezca un correo electrónico de preferencia para recibir un recordatorio cuando el token esté a punto de caducar.
- Haga clic en Generar.
El token de API recién generado aparece en la ventana Token generado.
- Guarde las credenciales del token en una ubicación segura.
Después de generar el token, solo podrá ver su nombre en la página Tokens de API y no las credenciales. Para volver a generar el token, haga clic en Regenerar.
- Haga clic en Continuar.
Realizar una llamada API
Después de generar un token de API, puede realizar una llamada de API mediante sseapiclient
o cURL
.
Para realizar una llamada de API:
- Inicie sesión en el entorno donde instaló
sseapiclient
. - Ejecute el siguiente comando, reemplazando el valor del servidor por la URL de Automation Config específica de su región y el valor del token de API por el token de API que generó anteriormente. Los siguientes ejemplos de código muestran una llamada de API en la región de Estados Unidos.
- 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": [] }'
Tabla 1. Direcciones URL regionales para Automation Config Región URL de Automation Config Estados Unidos https://ssc-gateway.mgmt.cloud.vmware.com Alemania https://de.ssc-gateway.mgmt.cloud.vmware.com India https://in.ssc-gateway.mgmt.cloud.vmware.com Canadá https://ca.ssc-gateway.mgmt.cloud.vmware.com Australia https://au.ssc-gateway.mgmt.cloud.vmware.com UK https://uk.ssc-gateway.mgmt.cloud.vmware.com
Resultados
jobs.get_jobs()
devuelve una lista de todos los trabajos. Los siguientes códigos son ejemplos de respuesta correcta.
- 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()
. Si no tiene permisos suficientes, la API generará un error.
Para utilizar las funciones administrativas, puede generar un nuevo token de API y seleccionar la función de servicio Superusuario.
Qué hacer a continuación
Lea la documentación de API (RaaS) en el portal para desarrolladores de VMware para obtener más información sobre los recursos disponibles.