apigee-adminapi.sh 유틸리티 사용

Private Cloud용 Edge v4.18.01

apigee-adminapi.sh 유틸리티를 사용하여 Edge 관리 API를 호출하여 수행하는 것과 동일한 Edge 구성 작업을 수행합니다. apigee-adminapi.sh 유틸리티의 장점은 다음과 같습니다.

  • 간단한 명령줄 인터페이스 사용
  • 탭 기반 명령어 완성 구현
  • 도움말 및 사용 정보를 제공합니다.
  • API를 사용해 보기로 결정한 경우 해당 API 호출을 표시할 수 있습니다.

apigee-adminapi.sh 유틸리티는 apigee-provision 유틸리티를 대체하지 않습니다. apigee-provision 유틸리티는 실제로 apigee-adminapi.sh 유틸리티를 사용해 작업을 수행합니다.

두 도구의 주요 차이점은 다음과 같습니다.

  • apigee-adminapi.sh 유틸리티는 개별 Edge API 호출을 대체하는 원자 함수를 실행합니다. 예를 들어 조직, 환경, 가상 호스트를 만들려면 API 호출 3개에 해당하는 별도의 apigee-adminapi.sh 명령어 3개가 필요합니다.
  • apigee-provision 유틸리티는 단일 명령어로 완전한 상위 작업을 실행하도록 설계되었습니다. 예를 들어 필요한 모든 정보가 포함된 구성 파일을 전달하여 단일 apigee-provision 명령어로 조직, 환경, 가상 호스트를 만들 수 있습니다.

Edge 문서에서는 해당하는 경우 두 유틸리티를 모두 사용합니다.

apigee-adminapi.sh 설치

apigee-adminapi.sh 유틸리티는 apigee-provision 또는 apigee-validate 유틸리티를 설치할 때 자동으로 설치됩니다.

유틸리티는 다음 위치에 설치됩니다.

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh

apigee-adminapi.sh 구문

apigee-adminapi.sh 유틸리티는 간단한 명령줄 구문을 사용합니다. 언제든지 Tab 키를 사용하면 사용 가능한 명령어 옵션이 나열된 프롬프트가 표시됩니다.

가능한 모든 명령어를 보려면 옵션 없이 유틸리티를 호출합니다.

> apigee-adminapi.sh 

apigee-adminapi.sh를 입력한 후 탭 키를 누르면 가능한 옵션 목록이 표시됩니다.

analytics  classification  logsessions  regions  securityprofile  userroles
buildinfo  GET             orgs         runtime  servers          users

Tab 키는 명령어의 컨텍스트에 따라 옵션을 표시합니다. 입력 후 Tab 키를 입력하는 경우:

> apigee-adminapi.sh orgs

orgs 명령어를 완료하기 위한 가능한 옵션이 표시됩니다.

add  apis  apps  delete  envs  list  pods  userroles

명령어에 대한 도움말을 표시하려면 -h 옵션을 사용하세요. 예를 들어 아래와 같이 -h 옵션을 사용하는 경우

> apigee-adminapi.sh orgs -h

유틸리티는 orgs 명령어에 사용 가능한 모든 옵션에 대한 전체 도움말 정보를 표시합니다. 출력의 첫 번째 항목은 "orgs add" 명령어에 대한 도움말을 표시합니다.

+++++++++++++++++++++++++++++++++++++++++++
orgs add
  Required:
    -o ORG Organization name
  Optional:
    -H HEADER add http header in request
    --admin ADMIN_EMAIL admin email address
    --pwd ADMIN_PASSWORD admin password
    --host EDGE_SERVER edge server to make request to
    --port EDGE_PORT port to use for the http request
    --ssl set EDGE_PROTO to https, defaults to http
    --debug ( set in debug mode, turns on verbose in curl )
    -h      Displays Help

명령줄 스위치 및 환경 변수를 사용하여 매개변수 설정

명령줄 스위치 또는 환경 변수를 사용하여 모든 매개변수를 명령어에 입력해야 합니다. 필요에 따라 명령줄 스위치 앞에 대시 (-) 또는 이중 대시(--)를 붙입니다.

예를 들어 위에 표시된 'orgs add' 명령어의 도움말에서 다음 중 하나로 조직 이름을 지정할 수 있습니다.

  • -o 명령줄 스위치를 사용합니다.
    > apigee-adminapi.sh orgs -o testOrg
  • ORG라는 환경 변수 설정:
    > export ORG=testOrg
    > apigee-adminapi.sh orgs

명령어에 필요한 매개변수를 생략하면 유틸리티에 누락된 매개변수를 설명하는 오류 메시지가 표시됩니다. 예를 들어 조직을 만들 때 에지 관리 서버를 지정하는 --host 또는 EDGE_SERVER 환경 변수를 생략하면 다음 오류 메시지가 표시됩니다.

Error with required variable or parameter
ADMIN_PASSWORD....OK
ADMIN_EMAIL....OK
EDGE_SERVER....null

환경 변수로 자주 설정되는 두 가지 일반적인 매개변수는 관리 서버의 시스템 관리자 이메일 주소와 IP 주소입니다.

> export ADMIN_EMAIL=foo@bar.com
> export EDGE_SERVER=192.168.56.101

apigee-adminapi.sh 유틸리티에 파일 전달

일부 apigee-adminapi.sh 유틸리티 명령어는 요청 본문을 취하는 PUT 및 POST API 호출에 해당합니다. 예를 들어 가상 호스트를 만드는 것은 요청 본문의 가상 호스트에 대한 정보가 필요한 POST API 호출에 해당합니다.

apigee-adminapi.sh 유틸리티를 사용하여 가상 호스트 또는 요청 본문을 사용하는 모든 명령어를 만드는 경우 아래와 같이 명령줄에 필요한 모든 정보를 전달할 수 있습니다.

> apigee-adminapi.sh orgs envs virtual_hosts add -e prod -o testOrg --host localhost --admin foo@bar.com -v myVHostUtil -p 9005 -a 192.168.56.101:9005

또는 POST의 요청 본문에 포함되는 것과 동일한 정보가 포함된 파일을 전달할 수 있습니다. 예를 들어 다음 명령어는 가상 호스트를 정의하는 파일을 가져옵니다.

> apigee-adminapi.sh orgs envs virtual_hosts add -e prod -o testOrg --host localhost --admin foo@bar.com -f vhostcreate

여기서 vhostcreate 파일에는 호출의 POST 본문이 있습니다. 이 예에서는 XML 형식의 요청 본문입니다.

<VirtualHost name="myVHostUtil">
   <HostAliases>
     <HostAlias>192.168.56.101:9005</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

디버그 및 API 정보 표시

apigee-adminapi.sh 유틸리티에 --debug 옵션을 사용하여 명령어에 대한 세부정보를 표시합니다. 이 정보에는 작업을 수행하기 위해 apigee-adminapi.sh 유틸리티에서 생성한 cURL 명령어가 포함됩니다.

예를 들어 다음 명령어는 --debug 옵션을 사용합니다.

> apigee-adminapi.sh orgs add -o testOrg2 --admin foo@bar.com --host localhost --debug

생성된 cURL 명령어를 비롯한 다음 출력을 표시합니다.

curl -H Content-Type: application/xml -v -X POST     -s -k -w \n==> %{http_code} 
-u ***oo@bar.com:*****     http://localhost:8080/v1/o -d <Organization name="testOrg2" 
type="paid"/>
* About to connect() to localhost port 8080 (#0)
*   Trying ::1... connected
* Connected to localhost (::1) port 8080 (#0)
* Server auth using Basic with user 'foo@bar.com'
> POST /v1/o HTTP/1.1
> Authorization: Basic c2dp234234NvbkBhcGlnZ2342342342342341Q5
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1
Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: localhost:8080
> Accept: */*
> Content-Type: application/xml
> Content-Length: 43
>
} [data not shown]
< HTTP/1.1 201 Created
< Content-Type: application/json
< Date: Tue, 03 May 2016 02:08:32 GMT
< Content-Length: 291
<
{ [data not shown]
* Connection #0 to host localhost left intact
* Closing connection #0