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:

  1. Si utiliza sseapiclient en un entorno con un maestro de Salt:
    1. 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.
    2. 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.

  2. Si utiliza sseapiclient en un entorno sin un maestro de Salt:
    1. 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
    2. Descargue la versión más reciente de sseapiclient desde el área de trabajo Complementos principales. A continuación, ejecute el siguiente comando para instalar sseapiclient en el dispositivo:
      pip3 install SSEApiClient-file-name.whl

      Para obtener más información, consulte Usar el área de trabajo Complementos principales.

    3. 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.
  3. 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.

  1. En la barra de herramientas de la consola de Cloud Services, haga clic en el nombre de usuario y seleccione Mi cuenta > Tokens de API.
  2. Haga clic en Generar token.

    Página de tokens de API en CSP

  3. Complete el formulario.

    Generar formulario de token en CSP

    1. Introduzca un nombre para el token.
    2. 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.
    3. 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.

    4. (Opcional) Establezca un correo electrónico de preferencia para recibir un recordatorio cuando el token esté a punto de caducar.
    5. Haga clic en Generar.

      El token de API recién generado aparece en la ventana Token generado.

  4. 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.

  5. 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:

  1. Inicie sesión en el entorno donde instaló sseapiclient.
  2. 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

El endpoint 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': []}
Nota: Algunas funciones requieren privilegios administrativos, como 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.