Configurando Ferramentas e Agentes com Rótulos

Beginner

Introdução

O Jenkins pode executar builds em diferentes nós. Os rótulos (labels) descrevem o que um nó pode fazer, como linux-build, e os jobs podem exigir um rótulo correspondente antes que o Jenkins os agende. O Jenkins também armazena instalações de ferramentas, como o Git, para que jobs e plugins possam referenciar uma ferramenta nomeada em vez de depender de um caminho fixo (hard-coded).

Neste laboratório, você usará o painel do Jenkins para revisar o nó integrado (built-in node), adicionar um rótulo ao nó, configurar uma ferramenta Git local, criar um job do tipo Freestyle restrito ao rótulo e confirmar a saída do build.

Abrir a página do nó integrado

Nesta etapa, você localizará o nó integrado do Jenkins no painel. Um nó é um local onde o Jenkins pode executar builds. Este laboratório utiliza o nó integrado porque ele já está online no controlador Jenkins do LabEx.

Abra a interface da Área de Trabalho. O Firefox abrirá o Jenkins automaticamente. Caso não abra, acesse http://localhost:8080.

No painel do Jenkins:

Clique em Manage Jenkins na barra lateral esquerda e, em seguida, clique em Nodes. Abra o nó chamado Built-In Node.

A página do nó deve exibir o status do nó integrado e opções de navegação como Configure e Build History.

Página do nó integrado do Jenkins

Execute este comando no terminal para registrar que a página do nó integrado está acessível:

curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt

Você deverá ver:

Built-In Node

Adicionar um rótulo ao nó integrado

Nesta etapa, você adicionará o rótulo linux-build ao nó integrado. Um rótulo é uma tag de agendamento. Jobs que exigem linux-build só podem ser executados em nós que possuam esse rótulo.

Na página Built-In Node, clique em Configure.

Localize o campo Labels e insira:

linux-build

Clique em Save.

Após salvar, o Jenkins retornará à página do nó integrado. A página deverá exibir o rótulo linux-build.

Rótulo do nó do Jenkins

Configurar uma ferramenta Git local

Nesta etapa, você registrará uma ferramenta Git do Jenkins chamada Local Git. A configuração de ferramentas permite que o Jenkins faça referência a uma instalação nomeada em vez de tentar adivinhar qual executável usar.

No painel do Jenkins:

Clique em Manage Jenkins e, em seguida, clique em Tools.

Role até a seção Git installations. Se uma instalação do Git já existir, atualize a primeira. Se a seção não tiver nenhuma instalação, clique em Add Git.

Preencha a instalação do Git com estes valores:

  • Name: Local Git
  • Path to Git executable: git

Clique em Save.

O Jenkins armazena essa definição de ferramenta na configuração do seu controlador.

Ferramenta Git local do Jenkins

Execute este comando para inspecionar a configuração da ferramenta Git salva:

docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt

A saída deve incluir tanto o nome da ferramenta quanto o caminho do executável:

...<name>Local Git</name>
...<home>git</home>

Criar um job restrito ao rótulo

Nesta etapa, você criará um job do tipo Freestyle chamado labeled-tool-demo. O job será restrito a nós com o rótulo linux-build, portanto, o Jenkins deverá agendá-lo no nó integrado que possui esse rótulo.

No painel do Jenkins:

Clique em New Item, digite labeled-tool-demo, selecione Freestyle project e clique em OK.

Na página de configuração:

Selecione Restrict where this project can be run. Em Label Expression, insira:

linux-build

Role até Build Steps, clique em Add build step e selecione Execute shell.

Insira este script shell:

echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"

Clique em Save.

A página do job deverá abrir após salvar.

Job Freestyle com rótulo do Jenkins

Execute este comando para registrar as configurações importantes do job salvo:

docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt

Executar o job com rótulo

Nesta etapa, você executará o job e lerá a saída do console. Isso comprova que o Jenkins aceitou a restrição de rótulo e que o build pode executar o Git a partir do ambiente configurado.

Na página do job labeled-tool-demo, clique em Build Now.

Quando o build #1 aparecer no histórico de builds, abra-o e clique em Console Output. O console deve exibir a mensagem do rótulo, uma linha com git version e Finished: SUCCESS.

Saída do console do job com rótulo do Jenkins

Execute este comando no terminal para salvar a mesma evidência do console para verificação:

curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt

Você deverá ver uma saída como esta:

Running on label: linux-build
git version ...
Finished: SUCCESS

Resumo

Você revisou o nó integrado do Jenkins, adicionou um rótulo linux-build a partir do painel, configurou uma ferramenta Git local nomeada, criou um job do tipo Freestyle restrito ao rótulo e verificou a saída bem-sucedida do build.