시스템 관리자는 클라우드 API를 사용하여 일반적인 인프라 관리 작업(예: 역할 또는 사용자에게 사용 권한 할당, 작업 생성 또는 업데이트, 작업 반환 보기)을 프로그래밍 방식으로 완료할 수 있습니다. Salt 마스터가 있는 환경 또는 Salt 마스터가 없는 환경에 sseapiclient를 설치할 수 있습니다.

시작하기 전에

sseapiclient를 사용하기 전에 다음 사전 요구 사항을 완료합니다.

  1. Salt 마스터가 있는 환경에서 sseapiclient를 사용하는 경우:
    1. Salt 마스터에 마스터 플러그인을 설치하지 않은 경우 설치 지침은 마스터 플러그인 설치 및 구성을 참조하십시오. sseapiclient는 마스터 플러그인과 함께 번들로 제공되며 플러그인을 설치할 때 설치됩니다.
    2. Salt 마스터에 마스터 플러그인 버전 8.11.1 이상을 설치했는지 확인합니다. 마스터 플러그인 버전은 마스터 플러그인 업무 공간에서 찾을 수 있습니다.

      마스터 플러그인 업무 공간을 통해 Salt 마스터에서 마스터 플러그인을 업데이트할 수도 있습니다. 자세한 내용은 마스터 플러그인 업무 공간 사용을 참조하십시오.

  2. Salt 마스터가 없는 환경에서 sseapiclient를 사용하는 경우:
    1. 다음 명령을 실행하여 디바이스에 Pika Python 및 PyJWT 라이브러리를 설치합니다.
      pip3 install pika==1.3.1
      pip3 install pyjwt==2.4.0
    2. 마스터 플러그인 업무 공간에서 최신 버전의 sseapiclient를 다운로드합니다. 그런 다음, 다음 명령을 실행하여 디바이스에 sseapiclient를 설치합니다.
      pip3 install SSEApiClient-file-name.whl

      자세한 내용은 마스터 플러그인 업무 공간 사용을 참조하십시오.

    3. sseapiclient 버전이 Automation Config 버전과 일치하는지 확인합니다. Automation Config 버전은 마스터 플러그인 업무 공간에서 찾을 수 있습니다.
  3. Automation Config에서 작업을 생성합니다. 자세한 내용은 작업을 생성하는 방법을 참조하십시오.

API 토큰 생성

클라우드 API에 연결하려면 먼저 Cloud Services 콘솔을 사용하여 API 토큰을 생성해야 합니다. 토큰은 VMware Cloud Services에 Salt 마스터를 인증하는 데 사용됩니다.

  1. Cloud Services 콘솔 도구 모음에서 사용자 이름을 클릭하고 내 계정 > API 토큰을 선택합니다.
  2. 토큰 생성을 클릭합니다.

    CSP의 API 토큰 페이지

  3. 양식을 작성합니다.

    CSP의 토큰 생성 양식

    1. 토큰의 이름을 입력합니다.
    2. 토큰의 TTL(Time to Live)을 선택합니다. 기본 기간은 6개월입니다.
      참고: 만료되지 않는 토큰은 손상될 경우 보안 위험을 초래할 수 있습니다. 이러한 상황이 발생하는 경우 토큰을 해지해야 합니다.
    3. 토큰의 범위를 정의합니다.
      범위 설명
      서비스 역할

      서비스 역할은 VMware Cloud Services에 대한 액세스 권한을 부여하는 미리 정의된 기본 제공 사용 권한 집합입니다.

      Automation Config 서비스에 액세스하려면 Automation Config 서비스를 검색하고 원하는 서비스 역할을 선택합니다. 사용 가능한 서비스 역할 목록은 사용자 역할을 정의하는 방법을 참조하십시오.

    4. (선택 사항) 토큰이 곧 만료되는 경우 미리 알림을 받도록 이메일 기본 설정을 지정합니다.
    5. 생성을 클릭합니다.

      새로 생성된 API 토큰이 토큰 생성됨 창에 나타납니다.

  4. 토큰 자격 증명을 안전한 위치에 저장합니다.

    토큰을 생성한 후에는 API 토큰 페이지에서 토큰 이름만 볼 수 있고 자격 증명은 볼 수 없습니다. 토큰을 재생성하려면 재생성을 클릭합니다.

  5. 계속을 클릭합니다.

API 호출

API 토큰을 생성한 후에는 sseapiclient 또는 cURL을 사용하여 API 호출을 수행할 수 있습니다.

API 호출을 수행하려면:

  1. sseapiclient를 설치한 환경에 로그인합니다.
  2. 다음 명령에서 서버 값은 지역별 Automation Config URL로 대체하고 API 토큰 값은 이전에 생성한 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()
    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
    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
    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 토큰을 생성하고 수퍼유저 서비스 역할을 선택하면 됩니다.

후속 작업

VMware 개발자 포털에서 API(RaaS) 설명서를 참조하여 사용 가능한 리소스에 대해 자세히 알아봅니다.