Системный администратор может использовать облачный API-интерфейс для программного выполнения стандартных задач администрирования инфраструктуры, таких как назначение разрешений роли или пользователю, создание или обновление задания, просмотр возвращаемых результатов. sseapiclient
можно установить в среде с главным сервером Salt или в среде без него.
Перед началом работы
Чтобы использовать sseapiclient
, необходимо выполнить следующие предварительные требования.
- Если
sseapiclient
используется в среде с главным сервером Salt.- а.Если на главном сервере Salt не установлен подключаемый модуль Master, см. инструкции по установке в разделе Установка и настройка подключаемого модуля Master.
sseapiclient
поставляется с подключаемым модулем Master и устанавливается при его установке. - б.Убедитесь, что на главном сервере Salt установлен подключаемый модуль Master версии 8.11.1 или выше. Версию подключаемого модуля Master можно найти в рабочей области Подключаемые модули Master.
Кроме того, обновить подключаемый модуль Master на главном сервере Salt можно через рабочую область Подключаемые модули Master. Дополнительные сведения см. в разделе Использование рабочей области «Подключаемые модули Master».
- а.Если на главном сервере Salt не установлен подключаемый модуль Master, см. инструкции по установке в разделе Установка и настройка подключаемого модуля Master.
- Если
sseapiclient
используется в среде без главного сервера Salt.- а.Выполните следующие команды, чтобы установить на устройство библиотеки Pika Python и PyJWT.
pip3 install pika==1.3.1 pip3 install pyjwt==2.4.0
- б.Загрузите последнюю версию
sseapiclient
из рабочей области Подключаемые модули Master. Затем выполните следующую команду, чтобы установить на устройствоsseapiclient
.pip3 install SSEApiClient-file-name.whl
Дополнительные сведения см. в разделе Использование рабочей области «Подключаемые модули Master».
- в.Убедитесь, что версия
sseapiclient
совпадает с версией Automation Config. Версию Automation Config можно найти в рабочей области Подключаемые модули Master.
- а.Выполните следующие команды, чтобы установить на устройство библиотеки Pika Python и PyJWT.
- Создайте задание в Automation Config. Дополнительные сведения см. в разделе Создание заданий .
Создание маркера API-интерфейса
Перед подключением к облачному API-интерфейсу необходимо создать маркер API-интерфейса с помощью консоли Cloud Services. Этот маркер используется для аутентификации главного сервера Salt в службе VMware Cloud Services.
- На панели инструментов консоли Cloud Services щелкните имя пользователя и выберите .
- Выберите Создать маркер.
- Заполните форму.
- а.Введите имя маркера.
- б.Выберите срок жизни (TTL) маркера. По умолчанию: шесть месяцев.
Примечание: В случае компрометации маркер без срока действия может создать угрозу безопасности. Если такое произойдет, необходимо отозвать маркер.
- в.Определите области действия маркера.
Scope Описание Роли служб Роли служб — это встроенные, предварительно определенные наборы разрешений, обеспечивающие доступ к VMware Cloud Services.
Для доступа к службе Automation Config найдите Automation Config и выберите нужную роль службы. Список доступных ролей служб см. в разделе Определение ролей пользователей.
- г.(Необязательно) Задайте адрес электронной почты для получения напоминаний об истечении срока действия маркера.
- д.Нажмите кнопку Создать.
Новый маркер API-интерфейса отобразится в окне Маркер создан.
- Сохраните учетные данные маркера в надежном месте.
После создания маркера на странице Маркеры API будет отображаться только его имя, без учетных данных. Чтобы создать маркер еще раз, щелкните Создать повторно.
- Нажмите кнопку Продолжить.
Выполнить вызов API
Когда маркер API-интерфейса создан, вызов API-интерфейса можно выполнить с помощью sseapiclient
или cURL
.
Чтобы выполнить вызов API-интерфейса, сделайте следующее.
- Войдите в среду, где установлен
sseapiclient
. - Выполните следующую команду, заменив значение сервера на URL-адрес Automation Config для конкретного региона и указав ранее созданный маркер API-интерфейса. В следующих примерах кода показан вызов 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()
- 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": [] }'
Табл. 1. Региональные URL-адреса для Automation Config Регион URL-адрес Automation Config US (США) 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 Великобритания 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-интерфейса и выберите роль службы Привилегированный пользователь.
Следующие шаги
Дополнительные сведения о доступных ресурсах см. в документации по API-интерфейсу (RaaS) на портале VMware Developer.