apigee-adminapi.sh 유틸리티 사용

apigee-adminapi.sh는 Edge 관리 API를 호출하여 많은 유지보수 태스크를 수행합니다.

apigee-adminapi.sh 정보

apigee-adminapi.sh 호출

관리 서버 노드에서 apigee-adminapi.sh를 호출합니다. 유틸리티를 호출할 때 다음을 환경 변수 또는 명령줄 옵션으로 정의해야 합니다.

  • ADMIN_EMAIL (admin 명령줄 옵션에 해당)
  • ADMIN_PASSWORD(pwd)
  • EDGE_SERVER(host)

다음 예에서는 apigee-adminapi.sh를 호출하고 필수 값을 명령줄 옵션으로 전달합니다.

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh buildinfo list --admin user@example.com --pwd abcd1234 --host localhost

다음 예에서는 필요한 옵션을 임시 환경 변수로 정의한 다음 apigee-adminapi.sh 유틸리티를 호출합니다.

export ADMIN_EMAIL=user@example.com
export ADMIN_PASSWORD=abcd1234
export EDGE_SERVER=192.168.56.101
/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh servers list

비밀번호를 옵션으로 전달하지 않거나 환경 변수로 정의하지 않으면 apigee-adminapi.sh에서 비밀번호를 입력하라는 메시지를 표시합니다.

apigee-adminapi.sh 매개변수 설정

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

예를 들어 다음 방법 중 하나로 조직 이름을 지정할 수 있습니다.

  • -o 명령줄 스위치 사용:
    /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs -o testOrg
  • ORG 환경 변수 설정:
    export ORG=testOrg
    /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs

명령어에 필요한 매개변수를 생략하면 유틸리티에 누락된 매개변수를 설명하는 오류 메시지가 표시됩니다. 예를 들어 --host 옵션(EDGE_SERVER 환경 변수에 해당)을 생략하면 apigee-adminapi.sh가 다음 오류로 응답합니다.

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

HTTP STATUS CODE: 401 오류가 발생하면 잘못된 비밀번호를 입력한 것입니다.

apigee-adminapi.sh 도움말 가져오기

언제든지 Tab 키를 사용하여 사용 가능한 명령어 옵션이 나열된 프롬프트를 표시할 수 있습니다.

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

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

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

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

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

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

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

add  apis  apps  delete  envs  list  pods  userroles

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

/opt/apigee/apigee-adminapi/bin/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

apigee-adminapi.sh에 파일 전달

apigee-adminapi.sh 유틸리티는 curl를 둘러싼 래퍼입니다. 따라서 일부 명령어는 요청 본문을 취하는 PUTPOST API 호출에 상응합니다. 예를 들어 가상 호스트를 만드는 것은 요청 본문에 가상 호스트에 대한 정보가 필요한 POST API 호출에 해당합니다.

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

/opt/apigee/apigee-adminapi/bin/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의 요청 본문에 포함되는 것과 동일한 정보가 포함된 파일을 전달할 수 있습니다. 예를 들어 다음 명령어는 가상 호스트를 정의하는 파일을 가져옵니다.

/opt/apigee/apigee-adminapi/bin/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 옵션을 사용합니다. 결과는 기본 curl 명령어의 출력을 상세 모드로 표시합니다.

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs add -o testOrg2 --admin foo@bar.com --host localhost --debug
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