Aprenda nesse artigo como gerenciar o cPanel pela linha de comando utilizando a biblioteca de comandos da UAPI.
Gerenciar o cPanel através de sua interface visual é a forma mais utilizada pela maioria dos usuários, porém, o cPanel possuí uma API que permite gerenciar suas funções via linha de comando, facilitando e agilizando diversos processos. Nesse artigo você aprenderá como gerenciar o cPanel pela linha de comando. Vamos lá?
Requisitos
Para poder gerenciar o cPanel através da linha de comando você precisará:
- Acesso ao terminal SSH do servidor. Veja como realizar o acesso SSH ao seu servidor.
- Necessita de acesso root ao servidor ou então possuir um token de API criado. Veja como criar um API Token no cPanel.
Como gerenciar o cPanel através da linha de comando
Realizar simples ações no cPanel, como criação de domínio, criação de e-mail, instalar SSL são ações que podem ser facilmente realizadas também via linha de comando através das APIs criadas pelo cPanel & WHM.
O cPanel disponibiliza duas APIs que servem para ações a serem executadas ao nível cPanel (para ações ao nível WHM utilizasse de outra API), a UAPI
e a CPAPI2
são elas, que compartilham de uma biblioteca de funções semelhantes, mas como a UAPI
recebeu mais atualizações, ela é considerada a mais recomendada a ser utilizada. Confira a documentação oficial dessa API.
Como buscar uma função específica da UAPI
Se você acessou a documentação oficial de utilização da API, você encontrará lá todas as funções e execuções possíveis, porém, atualmente existem mais de 500 comandos dentro dessa API, o que dificulta localizar uma função específica que se deseja executar no cPanel.
Apesar do grande número de comandos existentes, temos algumas formas de procurarmos por uma função específica no meio da biblioteca de funções da UAPI e uma dessas formas é com o seguinte comando:
$
/usr/local/cpanel/bin/uapi | egrep -i [TERMO]
/usr/local/cpanel/bin/uapi
= esse é o arquivo que contém todos os binários referentes aos comandos da UAPI, executar esse arquivo exibirá todos os comandos na biblioteca dessa API|
= o caractere pipe vai redirecionar a saída padrão gerada ao executar o arquivo/usr/local/cpanel/bin/apitool
para o comando seguinteegrep -i
= o[TERMO]
egrep
é o comando responsável por filtragem e encontra certos padrões em um texto. A flag-i
faz com que essa filtragem não tenha distinção entre maiúsculas e minúsculas e no parâmetro[TERMO]
você insere o termo que você deseja filtrar
Por exemplo, se você quiser verificar algum comando referente a SSH, você pode rodar o comando da seguinte forma:
$ /usr/local/cpanel/bin/uapi | egrep -i ssh
Note que a linha SSH::get_port
foi localizada e agora você pode encontrar na documentação da UAPI quais os parâmetros utilizar para rodar esse comando.
Executando comandos da UAPI
Por padrão, os comandos da UAPI seguem a seguinte sintaxe:
$ uapi --user=USUÁRIO --output=TIPO Module function [parametro=valor] [parametro=valor]...
uapi
=
comando que chama a biblioteca de comandos da UAPI--user=USUÁRIO
=
substitua o termoUSUÁRIO
pelo usuário cPanel que você quer executar o comando--output=TIPO
=
substitua o termoTIPO
pelo formato de reposta que você quer receber a saída do comando (json, jsonpretty, yaml). Essa parâmetro é opcionalModule
=
insira o módulo do comando que você quer executar, utilizando o exemplo anterior doSSH::get_port
, o módulo aqui seriaSSH
function
=
insira a função do comando que você quer executar, utilizando o exemplo anterior doSSH::get_port
, o módulo aqui seriaget_port
[parametro=valor]
=
esse campo vai variar de função para função devendo ser preenchido corretamente como sugere a documentação da UAPI
Veja um exemplo da execução do comando SSH::get_port
:
Considerações Finais
Nesse artigo você aprendeu a gerenciar o cPanel através da linha de comando com a UAPI
.
Se você sentiu alguma dificuldade ou então tem alguma sugestão de algo que não foi mencionado, basta deixar aí nos comentários que no futuro podemos estar trazendo atualizações para este artigo. Também indico esses outros materiais relacionados com este assunto:
Até a próxima! :^)