Como usar o utilitário apigee-adminapi.sh

O apigee-adminapi.sh chama a API Edge Management para executar várias tarefas de manutenção.

Sobre o apigee-adminapi.sh

Invocar apigee-adminapi.sh

Você invoca apigee-adminapi.sh de um nó do servidor de gerenciamento. Ao invocar o utilitário, é necessário definir o seguinte como variáveis de ambiente ou opções de linha de comando:

  • ADMIN_EMAIL (corresponde à opção de linha de comando admin)
  • ADMIN_PASSWORD (pwd)
  • EDGE_SERVER (host)

O exemplo a seguir invoca apigee-adminapi.sh e transmite os valores necessários como opções de linha de comando:

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

O exemplo a seguir define as opções necessárias como variáveis de ambiente temporárias e invoca o utilitário 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

Se você não transmitir a senha como uma opção ou defini-la como uma variável de ambiente, o apigee-adminapi.sh vai solicitar que você a insira.

Definir parâmetros apigee-adminapi.sh

Insira todos os parâmetros em um comando usando chaves de linha ou variáveis de ambiente. Adicione um traço (-) como prefixo das chaves de linha de comando ou dois traços (--), conforme necessário.

Por exemplo, é possível especificar o nome da organização de uma das seguintes maneiras:

  • Usando a chave de linha de comando -o:
    /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs -o testOrg
  • Definindo uma variável de ambiente chamada ORG:
    export ORG=testOrg
    /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs

Se você omitir os parâmetros obrigatórios do comando, o utilitário exibirá uma mensagem de erro descrevendo os parâmetros ausentes. Por exemplo, se você omitir a opção --host (que corresponde à variável de ambiente EDGE_SERVER), apigee-adminapi.sh responderá com o seguinte erro:

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

Se você receber um erro HTTP STATUS CODE: 401, significa que inseriu a senha errada.

Receber ajuda do apigee-adminapi.sh

A qualquer momento, use a tecla Tab para exibir um prompt que lista as opções de comando disponíveis.

Para acessar todos os comandos possíveis, invoque o utilitário sem opções:

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

Se você pressionar a tecla Tab depois de digitar apigee-adminapi.sh, uma lista de possíveis opções vai aparecer:

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

A tecla Tab exibe opções com base no contexto do comando. Se você inserir a tecla Tab depois de digitar:

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

Você verá as opções possíveis para concluir o comando orgs:

add  apis  apps  delete  envs  list  pods  userroles

Use a opção -h para mostrar ajuda para qualquer comando. Por exemplo, se você usar a opção -h, conforme mostrado abaixo:

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

O utilitário exibe informações de ajuda completas para todas as opções possíveis para o comando orgs. O primeiro item na saída mostra a ajuda para o comando 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

Transmitir um arquivo para apigee-adminapi.sh

O utilitário apigee-adminapi.sh é um wrapper em torno de curl. Como resultado, alguns comandos correspondem a chamadas de API PUT e POST que usam um corpo de solicitação. Por exemplo, a criação de um host virtual corresponde a uma chamada de API POST que requer informações sobre o host virtual no corpo da solicitação.

Ao usar o utilitário apigee-adminapi.sh para criar um host virtual ou qualquer comando que use um corpo de solicitação, você pode passar todas as informações necessárias na linha de comando, conforme mostrado abaixo:

/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

Ou você pode transmitir um arquivo com as mesmas informações que estariam no corpo da solicitação do POST. Por exemplo, o comando a seguir usa um arquivo que define o host virtual:

/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

O arquivo vhostcreate contém o corpo POST da chamada. Neste exemplo, é um corpo de solicitação formatado em XML:

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

Exibir informações de depuração e da API

Use a opção --debug do utilitário apigee-adminapi.sh para exibir informações detalhadas sobre o comando. Essas informações incluem o comando curl gerado pelo utilitário apigee-adminapi.sh para realizar a operação.

Por exemplo, o comando a seguir usa a opção --debug. Os resultados mostram a saída do comando curl subjacente no modo detalhado:

/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