apigee-adminapi.sh 유틸리티 사용

apigee-adminapi.sh는 Edge Management 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

명령어에 필요한 매개변수를 생략하면 유틸리티에 누락된 매개변수를 설명하는 오류 메시지 가 표시됩니다. 예를 들어 EDGE_SERVER 환경 변수에 해당하는 --host 옵션을 생략하면 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를 입력한 후 Tab 키를 누르면 가능한 옵션 목록이 표시됩니다.

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의 래퍼입니다. 따라서 일부 명령어는 PUT 및 POST 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 정보 표시

--debug 옵션을 apigee-adminapi.sh 유틸리티에 사용하여 명령어에 대한 세부정보를 표시합니다. 이 정보에는 작업을 실행하기 위해 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