En tant qu'administrateur système, vous pouvez utiliser l'API cloud pour effectuer de manière planifiée des tâches d'administration d'infrastructure courantes, telles que l'attribution d'autorisations à un rôle ou à un utilisateur, la création ou la mise à jour d'une tâche ou l'affichage des retours de tâche. Vous pouvez installer sseapiclient dans un environnement avec un master Salt ou un environnement sans master Salt.

Avant de commencer

Avant d'utiliser sseapiclient, vérifiez les conditions préalables suivantes :

  1. Si vous utilisez sseapiclient dans un environnement avec un master Salt :
    1. Si vous n'avez pas installé le plug-in master sur votre master Salt, reportez-vous à la section Installer et configurez le plug-in master pour obtenir des instructions d'installation. sseapiclient est intégré au plug-in master et est installé lorsque vous installez le plug-in.
    2. Vérifiez que vous avez installé la version 8.11.1 ou ultérieure du plug-in master sur votre master Salt. Vous trouverez la version du plug-in master dans l'espace de travail Plug-ins master.

      Vous pouvez également mettre à jour le plug-in master sur votre master Salt via l'espace de travail Plug-ins master. Pour plus d'informations, reportez-vous à la section Utilisation des plug-ins master.

  2. Si vous utilisez sseapiclient dans un environnement sans master Salt :
    1. Exécutez les commandes suivantes pour installer les bibliothèques Pika Python et PyJWT sur votre périphérique :
      pip3 install pika==1.3.1
      pip3 install pyjwt==2.4.0
    2. Téléchargez la dernière version de sseapiclient depuis l'espace de travail Plug-ins master. Exécutez ensuite la commande suivante pour installer sseapiclient sur votre périphérique :
      pip3 install SSEApiClient-file-name.whl

      Pour plus d'informations, reportez-vous à la section Utilisation des plug-ins master.

    3. Vérifiez que la version sseapiclient correspond à la version d'Automation Config. Vous trouverez la version d'Automation Config dans l'espace de travail Plug-ins master.
  3. Créez une tâche dans Automation Config. Pour plus d'informations, reportez-vous à la section Création de tâches.

Générer un jeton d'API

Avant de pouvoir connecter votre API cloud, vous devez générer un jeton d'API à l'aide de la console Cloud Services. Ce jeton est utilisé pour authentifier votre master Salt dans VMware Cloud Services.

  1. Dans la barre d'outils de la console Cloud Services, cliquez sur votre nom d'utilisateur et sélectionnez Mon compte > Jetons d'API.
  2. Cliquez sur Générer le jeton.

    Page Jetons d'API dans CSP

  3. Remplissez le formulaire.

    Générer le formulaire de jeton dans CSP

    1. Entrez un nom pour le jeton.
    2. Sélectionnez la durée de vie du jeton. La durée par défaut est de six mois.
      Note : Un jeton sans date d'expiration peut être un risque de sécurité s'il est compromis. Si cela se produit, vous devez révoquer le jeton.
    3. Définissez les étendues du jeton.
      Portée Description
      Rôles de service

      Les rôles de service sont des ensembles prédéfinis et intégrés qui accordent l'accès à VMware Cloud Services.

      Pour accéder au service Automation Config, recherchez le service Automation Config et sélectionnez le rôle de service souhaité. Pour obtenir la liste des rôles de service disponibles, reportez-vous à la section Comment définir des rôles d'utilisateur.

    4. (Facultatif) Définissez une préférence d'e-mail pour recevoir un rappel lorsque votre jeton est sur le point d'expirer.
    5. Cliquez sur Générer.

      Le jeton d'API récemment généré s'affiche dans la fenêtre Jeton généré.

  4. Enregistrez les informations d'identification du jeton dans un emplacement sécurisé.

    Après avoir généré le jeton, vous pourrez uniquement voir le nom du jeton sur la page Jetons de l'API, pas les informations d'identification. Pour régénérer le jeton, cliquez sur Régénérer.

  5. Cliquez sur Continuer.

Faire un appel de l'API

Après avoir généré un jeton d'API vous pouvez effectuer un appel d'API à l'aide de sseapiclient ou de cURL.

Pour effectuer un appel d'API :

  1. Connectez-vous à l'environnement dans lequel vous avez installé sseapiclient.
  2. Exécutez la commande suivante en remplaçant la valeur du serveur par l'URL Automation Config spécifique à votre région et la valeur du jeton d'API par le jeton d'API que vous avez généré précédemment. L'exemple de code suivant montre un appel d'API dans la région 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()
    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": []
    }'
    Tableau 1. URL régionales pour Automation Config
    Région URL de Automation Config
    US (États-Unis) https://ssc-gateway.mgmt.cloud.vmware.com
    Allemagne https://de.ssc-gateway.mgmt.cloud.vmware.com
    Inde https://in.ssc-gateway.mgmt.cloud.vmware.com
    Canada https://ca.ssc-gateway.mgmt.cloud.vmware.com
    Australie https://au.ssc-gateway.mgmt.cloud.vmware.com
    UK https://uk.ssc-gateway.mgmt.cloud.vmware.com

Résultats

Le point de terminaison jobs.get_jobs() renvoie une liste de toutes les tâches. L'exemple de code suivant montre une réponse réussie.
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': []}
Note : Certaines fonctions nécessitent des privilèges d'administration tels que client.api.admin.trim_database(). Si vous ne disposez pas d'autorisations suffisantes. L'API génère une erreur.

Pour utiliser des fonctions d'administration vous pouvez générer un jeton d'API et sélectionner le rôle de service Superutilisateur.

Étape suivante

Lisez la documentation de l'API (RaaS) sur le portail des développeurs de VMware pour en savoir plus sur les ressources disponibles.