In qualità di amministratore di sistema, è possibile utilizzare l'API cloud per completare in modo programmatico le attività di amministrazione dell'infrastruttura comuni, come l'assegnazione di autorizzazioni a un ruolo o un utente, la creazione o l'aggiornamento di un processo o la visualizzazione dei risultati dei processi. È possibile installare sseapiclient in un ambiente con un Salt Master o un ambiente senza Salt Master.

Prima di iniziare

Prima di utilizzare sseapiclient, è necessario rispettare i seguenti prerequisiti:

  1. Se si utilizza sseapiclient in un ambiente con un Salt Master:
    1. Se non è stato installato il plug-in Master nel Salt Master, vedere Installazione e configurazione del plug-in Master per le istruzioni di installazione. sseapiclient viene fornito in bundle con il plug-in Master e viene installato quando si installa il plug-in.
    2. Verificare di aver installato la versione 8.11.1 o successiva del plug-in Master nel Salt Master. La versione del plug-in Master è disponibile nell'area di lavoro Plug-in Master.

      È inoltre possibile aggiornare il plug-in Master nel Salt Master tramite l'area di lavoro Plug-in Master. Per ulteriori informazioni, vedere Utilizzo dell'area di lavoro Plug-in Master.

  2. Se si utilizza sseapiclient in un ambiente senza Salt Master:
    1. Eseguire i comandi seguenti per installare le librerie Pika Python e PyJWT nel dispositivo:
      pip3 install pika==1.3.1
      pip3 install pyjwt==2.4.0
    2. Scaricare la versione più recente di sseapiclient dal Master dall'area di lavoro Plug-in Master. Quindi eseguire il comando seguente per installare sseapiclient nel dispositivo:
      pip3 install SSEApiClient-file-name.whl

      Per ulteriori informazioni, vedere Utilizzo dell'area di lavoro Plug-in Master.

    3. Verificare che la versione di sseapiclient corrisponda alla versione di Automation Config. La versione Automation Config è disponibile nell'area di lavoro Plug-in Master.
  3. Creare un processo in Automation Config. Per ulteriori informazioni, vedere Come creare processi.

Generazione di un token API

Prima che sia possibile connettersi all'API cloud, è necessario generare un token API utilizzando la console di Cloud Services. Il token viene utilizzato per eseguire l'autenticazione del Salt Master con VMware Cloud Services.

  1. Nella barra degli strumenti di Cloud Services Console, fare clic sul proprio nome utente e selezionare Il mio account > Token API.
  2. Fare clic su Genera Token.

    Pagina token API in CSP

  3. Compilare il modulo.

    Generazione del modulo token in CSP

    1. Immettere un nome per il token.
    2. Selezionare il Time to Live (TTL) del token. La durata predefinita è sei mesi.
      Nota: Un token che non ha scadenza può essere un rischio per la sicurezza se compromesso. In questo caso, è necessario revocare il token.
    3. Definire gli ambiti per il token.
      Scope Descrizione
      Ruoli di servizio

      I ruoli di servizio sono set di autorizzazioni predefiniti che concedono l'accesso a VMware Cloud Services.

      Per accedere al servizio Automation Config, cercare il servizio Automation Config e selezionare il ruolo di servizio desiderato. Per un elenco dei ruoli di servizio disponibili, vedere Come definire i ruoli utente.

    4. (Facoltativo) Impostare una preferenza e-mail per ricevere un promemoria quando il token sta per scadere.
    5. Fare clic su Genera.

      Il token API appena generato viene visualizzato nella finestra Token generato.

  4. Salvare le credenziali del token in una posizione sicura.

    Dopo aver generato il token, sarà possibile visualizzare il nome del token solo nella pagina Token API e non le credenziali. Per rigenerare il token, fare clic su Rigenera.

  5. Fare clic su Continua.

Effettua una chiamata API

Dopo aver generato un token API, è possibile effettuare una chiamata API utilizzando sseapiclient o cURL.

Per effettuare una chiamata API:

  1. Accedere all'ambiente in cui è stato installato sseapiclient.
  2. Eseguire il comando seguente sostituendo il valore del server con l'URL Automation Config specifico della regione e il valore del token API con il token API generato in precedenza. I seguenti esempi di codice mostrano una chiamata API nella regione US.
    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()
    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": []
    }'
    Tabella 1. URL regionali per Automation Config
    Regione URL Automation Config
    US https://ssc-gateway.mgmt.cloud.vmware.com
    Germania https://de.ssc-gateway.mgmt.cloud.vmware.com
    India https://in.ssc-gateway.mgmt.cloud.vmware.com
    Canada https://ca.ssc-gateway.mgmt.cloud.vmware.com
    Australia https://au.ssc-gateway.mgmt.cloud.vmware.com
    Regno unito https://uk.ssc-gateway.mgmt.cloud.vmware.com

Risultati

L'endpoint jobs.get_jobs() restituisce un elenco di tutti i processi. I seguenti esempi di codice mostrano una risposta corretta di esempio.
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: Alcune funzioni di richiedono privilegi amministrativi, ad esempio client.api.admin.trim_database(). Se non si dispone di autorizzazioni sufficienti, l'API genera un errore.

Per utilizzare le funzioni amministrative, è possibile generare un nuovo token API e selezionare il ruolo di servizio Utente con privilegi avanzati.

Passaggi successivi

Per ulteriori informazioni sulle risorse disponibili, consultare la documentazione dell'API (RaaS) in VMware Developer Portal.