Introdução
O EMCLI é a interface de linha de comando do Oracle Enterprise Manager Cloud Control (EMCC), que por padrão fica instalado no servidor do OEM. Mas também temos a opção de instalar este client e uma máquina diferente, o que pode ser útil se você deseja realizar tarefas administrativas no OEM sem acessá-lo via browser ou SSH. Um exemplo de caso de uso para esse tipo de abordagem é o uso do EMCLI dentro de scripts ou automações que executam fora do servidor do OEM.
Neste post eu demonstro como instalar e configurar o client EMCLI em uma máquina com Oracle Linux que tem conectividade com o servidor do OEM. O requisito é que esta máquina possa se comunicar com o servidor do OEM através da mesma porta que utilizamos para acessar a console do OEM via browser.
Obtendo o Instalador .jar
O instalador pode ser baixado do próprio servidor do OEM via wget ou curl usando a URL abaixo:
https://<hostname>:<port>/em/public_lib_download/emcli/kit/emcliadvancedkit.jar
Exemplo onde o hostname do servidor do OEM é emcc.dibiei.com e a porta do serviço é 7803:
wget --no-check-certificate https://emcc.dibiei.com:7803/em/public_lib_download/emcli/kit/emcliadvancedkit.jar

Instalando o Client
Crie um diretório para hospedar os arquivos do client.
Neste exemplo estou usando o home do usuário, e criando um sub-diretório app/emcli:
export EMCLI_HOME=~/app/emcli mkdir -p $EMCLI_HOME
Execute o arquivo .jar passando o diretório anterior no parâmetro -install_dir :
java -jar emcliadvancedkit.jar client -install_dir=$EMCLI_HOME

Configurando o Client
No comando abaixo, em URL você deve informar o hostname e porta correta referente ao seu OEM Server.
$EMCLI_HOME/emcli setup \ -url=https://emcc.dibiei.com:7803/em \ -username="sysman" \ -dir="$EMCLI_HOME" \ -trustall \ -autologin \ -verb_jars_dir="$EMCLI_HOME"
Após executar o comando, o EMCLI irá solicitar a senha do usuário informado na configuração (neste exemplo, a senha do sysman):
Após informar a senha e pressionar ENTER, a configuração deve concluir em alguns segundos:

Testando o EMCLI
Acesse o diretório onde instalou o EMCLI, faça o primeiro SYNC e teste um comando simples como “get_targets”:
cd ~/app/emcli ./emcli sync ./emcli get_targets -targets="%:oracle_database"

Dicas
Nesta demo, estou configurando o client com o usuário “sysman” por se tratar de um ambiente de teste sem separação de usuários. Em um ambiente produtivo, você colocaria o mesmo usuário que utiliza na console do OEM, ou se for para integrar com alguma automação, pode ser uma boa ideia criar um usuário de serviço dedicado no OEM.
A opção –autologin usada na instalação indica que este EMCLI não irá solicitar a senha do usuário configurado nas próximas interações, a menos que você execute um “emcli logout” explicitamente. Se você não quiser esse tipo de abordagem com autologin, basta remover esse parâmetro da configuração.
O EMCLI não suporta outro JDK que não seja o oficial da Oracle, você deve baixar o JDK no site da Oracle, ou se tiver instalando em uma máquina com algum Oracle Home instalado (GRID, RDBMS, OGG, CLIENT, etc), você pode pode usar o JDK deste Oracle Home. Ex:
export JAVA_HOME=$ORACLE_HOME/jdk
export PATH=$JAVA_HOME/bin:$PATH
java -version
Próximos passos
Se você está começando agora com EMCLI e está curioso sobre o que dá pra resolver no dia a dia via linha de comando, pode ver o post “Out-Of-Place Patching: Como Atualizar o ORACLE_HOME e TNS_ADMIN do Listener no Enterprise Manager via Linha de Comando (emcli)” onde demonstro como utilizá-lo para atualizar propriedades de um Listener registrado no OEM.