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:
- Se si utilizza
sseapiclient
in un ambiente con un Salt Master:- 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. - 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.
- Se non è stato installato il plug-in Master nel Salt Master, vedere Installazione e configurazione del plug-in Master per le istruzioni di installazione.
- Se si utilizza
sseapiclient
in un ambiente senza Salt Master:- 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
- Scaricare la versione più recente di
sseapiclient
dal Master dall'area di lavoro Plug-in Master. Quindi eseguire il comando seguente per installaresseapiclient
nel dispositivo:pip3 install SSEApiClient-file-name.whl
Per ulteriori informazioni, vedere Utilizzo dell'area di lavoro Plug-in Master.
- Verificare che la versione di
sseapiclient
corrisponda alla versione di Automation Config. La versione Automation Config è disponibile nell'area di lavoro Plug-in Master.
- Eseguire i comandi seguenti per installare le librerie Pika Python e PyJWT nel dispositivo:
- 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.
- Nella barra degli strumenti di Cloud Services Console, fare clic sul proprio nome utente e selezionare .
- Fare clic su Genera Token.
- Compilare il modulo.
- Immettere un nome per il token.
- 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.
- 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.
- (Facoltativo) Impostare una preferenza e-mail per ricevere un promemoria quando il token sta per scadere.
- Fare clic su Genera.
Il token API appena generato viene visualizzato nella finestra Token generato.
- 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.
- 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:
- Accedere all'ambiente in cui è stato installato
sseapiclient
. - 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
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': []}
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.