Comandos Essenciais da CLI do Jenkins para Gerenciamento e Controle de Jobs
Gerencie jobs do Jenkins pela CLI com exemplos de create-job, copy-job, delete-job, build, get-job e update-job.
Comandos Essenciais da CLI do Jenkins para Gerenciamento e Controle de Jobs
A CLI do Jenkins ajuda você a gerenciar jobs quando a interface web é muito lenta para trabalhos repetitivos. Se você precisa criar jobs a partir de modelos, disparar builds ou atualizar a configuração XML em scripts, a CLI oferece um caminho direto.
Este guia foca nos comandos de gerenciamento de jobs: list-jobs, get-job, create-job, copy-job, update-job, delete-job e build.
Configurando a CLI do Jenkins
Antes de executar qualquer comando, você deve estabelecer uma conexão segura com seu mestre Jenkins. Isso envolve baixar o cliente CLI e garantir a autenticação adequada.
1. Baixando o jenkins-cli.jar
O cliente CLI geralmente é encontrado diretamente no seu servidor Jenkins em um endpoint específico. Você pode baixá-lo usando wget ou curl:
wget http://seu-url-jenkins:8080/jnlpJars/jenkins-cli.jar
# OU usando curl
curl -O http://seu-url-jenkins:8080/jnlpJars/jenkins-cli.jar
2. Métodos de Autenticação
As conexões da CLI do Jenkins exigem autenticação. O método mais seguro e recomendado é usar um Token de API em vez de uma senha de usuário simples.
Para gerar um Token de API, navegue até Configurações do Usuário > Configurar > Token de API na interface web do Jenkins.
Todos os comandos subsequentes exigirão flags de autenticação, normalmente usando as flags -s (URL do servidor) e -auth (credenciais de autenticação):
java -jar jenkins-cli.jar -s http://seu-url-jenkins:8080 -auth NOME_USUARIO:TOKEN_API <comando>
Dica: Por segurança, armazene seu token de API em uma variável de ambiente segura ou use o método de autenticação por chave SSH, se configurado, em vez de digitá-lo diretamente em scripts.
Comandos Principais para Descoberta de Jobs
Antes de modificar jobs, geralmente é necessário listar os jobs existentes e recuperar suas configurações.
Listando Todos os Jobs: list-jobs
Este comando exibe os nomes de todos os jobs configurados no mestre Jenkins.
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH list-jobs
Recuperando a Configuração do Job: get-job
Os jobs do Jenkins são definidos por arquivos de configuração XML. O comando get-job permite recuperar essa definição XML, essencial para criar novos jobs baseados em modelos.
# Recupere a configuração de 'meu-job-modelo' e salve em um arquivo
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH get-job meu-job-modelo > config-modelo.xml
Comandos Essenciais de Gerenciamento de Jobs
Esses comandos lidam com as operações fundamentais do ciclo de vida dos jobs do Jenkins.
1. Criando um Novo Job: create-job
O comando create-job requer o nome do novo job e o arquivo de configuração XML que define seus parâmetros, etapas de build e gatilhos.
Pré-requisitos: Você deve primeiro ter um arquivo de configuração XML válido (ex.: nova-config.xml), geralmente derivado da modificação de um modelo recuperado usando get-job.
# Exemplo: Crie um novo job chamado 'projeto-feature-branch' usando o arquivo XML local
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-job projeto-feature-branch < nova-config.xml
2. Copiando um Job Existente: copy-job
Esta é geralmente a maneira mais rápida de criar um novo job, usando um job existente como modelo e aplicando um novo nome. Este comando duplica efetivamente a configuração do job de origem.
# Sintaxe: copy-job NOME_JOB_ORIGEM NOME_JOB_DESTINO
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH copy-job pipeline-original novo-dev-pipeline
3. Habilitando e Desabilitando Jobs: enable-job e disable-job
Esses comandos são cruciais para manutenção, pausas temporárias ou controle administrativo, prevenindo ou permitindo que builds sejam disparados.
# Comando para interromper builds programados ou disparados para manutenção
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH disable-job build-projeto-legado
# Comando para reativar o job
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH enable-job build-projeto-legado
4. Excluindo um Job: delete-job
Este comando remove permanentemente um job da instância Jenkins, incluindo seu histórico de builds e configuração. Use este comando com cautela.
# Remoção permanente do job
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH delete-job job-teste-obsoleto
Aviso: O comando
delete-jobé executado imediatamente sem confirmação adicional no ambiente CLI. Certifique-se de que seus scripts incluam etapas de validação adequadas antes de executar este comando.
Disparando e Monitorando Builds
Além do gerenciamento de configuração, a CLI é frequentemente usada para disparar builds, especialmente aqueles que exigem parâmetros específicos.
Disparando um Build: build
O comando build inicia um novo build para o job especificado. Se o job for parametrizado, você pode passar argumentos diretamente usando a flag -p.
# Dispare um build simples, não parametrizado
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build deploy-noturno
# Dispare um job parametrizado, passando parâmetros
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build teste-integracao -p TARGET_ENV=staging -p BRANCH_NAME=hotfix-123
Nota: Se você usar a flag
-scombuild, a CLI aguardará a conclusão do build e reportará o status de saída. Caso contrário, o comando retorna imediatamente após enfileirar o build.
Visualizando o Status do Build: get-job e console
Embora a CLI não ofereça streaming em tempo real comparável à interface web, você pode verificar o status do job e recuperar a saída do console.
Para visualizar a saída do console de um número de build específico:
# Recupere a saída do console para o build #55 de 'meu-job'
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH console meu-job 55
Melhores Práticas para Scripts com CLI
Aproveitar a CLI do Jenkins de forma eficiente requer a adoção de práticas recomendadas específicas para estabilidade e segurança:
1. Scripts e Automação
A CLI é mais útil em scripts de shell. Use get-job, modifique o XML resultante com cuidado e então alimente a configuração modificada de volta usando create-job ou update-job.
Exemplo de Fluxo de Trabalho (Copiar, Modificar e Criar):
- Obter modelo:
get-job job-modelo > tmp.xml - Use
sedpara substituir placeholders (ex.: nome do projeto, URL do repositório) emtmp.xml. - Criar novo job:
create-job novo-job < tmp.xml
2. Lidando com Atualizações de Configuração
Para atualizar a configuração de um job existente usando XML da entrada padrão, use update-job. Isso é mais seguro do que excluir e recriar o job, pois preserva o histórico de builds.
# Atualize 'projeto-a' usando um arquivo de configuração modificado localmente
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH update-job projeto-a < config-atualizada.xml
3. Tratamento de Erros
Sempre verifique o código de saída ($?) após executar um comando da CLI em seus scripts. Um código de retorno 0 indica sucesso; qualquer código diferente de zero sinaliza um erro. Isso é vital para automação robusta e depuração.
Conclusão Principal
A CLI do Jenkins é uma ferramenta prática para administração repetível de jobs. Comece exportando o XML do job com get-job, faça alterações controladas, atualize jobs com update-job e dispare builds com build. Mantenha tokens de API fora dos scripts e valide comandos destrutivos como delete-job antes de executá-los.