身為系統管理員,您可以使用雲端 API 以程式設計方式完成一般基礎結構管理工作,例如為角色或使用者指派權限、建立或更新工作或檢視工作傳回資料。可以在具有 Salt 主節點的環境中安裝 sseapiclient
,也可以在沒有 Salt 主節點的環境中安裝。
開始之前
使用 sseapiclient
之前,請完成以下必要條件:
- 如果要在具有 Salt 主節點的環境中使用
sseapiclient
:- 如果未在 Salt 主節點上安裝主節點外掛程式,請參閱安裝並設定主節點外掛程式以瞭解安裝指示。
sseapiclient
與主節點外掛程式綁定在一起,會在安裝該外掛程式時進行安裝。 - 確認在 Salt 主節點上安裝了版本 8.11.1 或更新版本的主節點外掛程式。可以在主節點外掛程式工作區中找到主節點外掛程式版本。
還可以透過主節點外掛程式工作區更新 Salt 主節點上的主節點外掛程式。如需詳細資訊,請參閱使用 [主節點外掛程式] 工作區。
- 如果未在 Salt 主節點上安裝主節點外掛程式,請參閱安裝並設定主節點外掛程式以瞭解安裝指示。
- 如果要在沒有 Salt 主節點的環境中使用
sseapiclient
:- 執行以下命令,在裝置上安裝 Pika Python 和 PyJWT 程式庫:
pip3 install pika==1.3.1 pip3 install pyjwt==2.4.0
- 從主節點外掛程式工作區下載
sseapiclient
的最新版本。然後執行以下命令,在裝置上安裝sseapiclient
:pip3 install SSEApiClient-file-name.whl
如需詳細資訊,請參閱使用 [主節點外掛程式] 工作區。
- 確認
sseapiclient
版本與 Automation Config 的版本相符。可以在主節點外掛程式工作區中找到 Automation Config 版本。
- 執行以下命令,在裝置上安裝 Pika Python 和 PyJWT 程式庫:
- 在 Automation Config 中建立工作。如需詳細資訊,請參閱〈如何建立工作〉。
產生 API Token
連線到雲端 API 之前,必須使用 Cloud Services 主控台產生 API Token。此 Token 用於透過 VMware Cloud Services 對 Salt 主節點進行驗證。
- 在 Cloud Services 主控台工具列上,按一下您的使用者名稱,然後選取 。
- 按一下產生 Token。
- 完成表單。
- 輸入 Token 的名稱。
- 選取 Token 的存留時間 (TTL)。預設持續時間為六個月。
備註: 遭到入侵時,不會到期的 Token 可能存在安全性風險。如果發生這種情況,必須撤銷 Token。
- 定義 Token 的範圍。
範圍 說明 服務角色 服務角色是內建的預先定義權限集,可授與 VMware Cloud Services 的存取權。
若要存取 Automation Config 服務,請搜尋 Automation Config 服務,然後選取所需的服務角色。如需可用服務角色清單,請參閱如何定義使用者角色。
- (可選) 設定電子郵件喜好設定,以便在 Token 即將到期時接收提醒。
- 按一下產生。
新產生的 API Token 將顯示在已產生 Token 視窗中。
- 將 Token 認證儲存到安全位置。
產生 Token 後,您將只能在 API Token 頁面上看到 Token 的名稱,而看不到認證。若要重新產生 Token,請按一下重新產生。
- 按一下繼續。
執行 API 呼叫
產生 API Token 後,可以使用 sseapiclient
或 cURL
進行 API 呼叫。
執行 API 呼叫:
- 登入安裝有
sseapiclient
的環境。 - 執行以下命令,並將伺服器值取代為特定於您區域的 Automation Config URL,將 API Token 值取代為之前產生的 API Token。以下代碼範例顯示了美國區域的 API 呼叫。
- 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": [] }'
表 1. Automation Config 的區域 URL 區域 Automation Config URL 美國 https://ssc-gateway.mgmt.cloud.vmware.com 德國 https://de.ssc-gateway.mgmt.cloud.vmware.com 印度 https://in.ssc-gateway.mgmt.cloud.vmware.com 加拿大 https://ca.ssc-gateway.mgmt.cloud.vmware.com 澳大利亞 https://au.ssc-gateway.mgmt.cloud.vmware.com UK https://uk.ssc-gateway.mgmt.cloud.vmware.com
結果
jobs.get_jobs()
端點傳回包含所有工作的清單。以下代碼範例顯示了一個成功回應範例。
- 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()
。如果您沒有足夠的權限,API 將擲回錯誤。
若要使用管理功能,可以產生新的 API Token 並選取超級使用者服務角色。
後續步驟
閱讀 VMware Developer 入口網站上的 API (RaaS) 說明文件,瞭解有關可用資源的更多資訊。