Você está ficando sem executores do Jenkins ou está preso aguardando trabalhos na fila para seus trabalhos no Jenkins Windows? Se for o caso, você precisa configurar mais agentes do Jenkins.
Neste tutorial, você aprenderá como adicionar um nó Windows de agente Jenkins para atender a uma necessidade crescente de recursos em seu ambiente de construção de software!
Pré-requisitos
Para seguir este artigo, você precisará do seguinte.
- Instalação funcional de um controlador Jenkins igual ou superior a 2.176.1, e neste artigo, o controlador é referido como nó mestre.
- Qualquer instalação suportada do sistema operacional Windows, que será referida como nó do agente Jenkins.
O que são Agentes Jenkins e o Controlador de Agente Jenkins?
A core component of Jenkins is the job. Jobs are instances of build automation that run a defined set of tasks. Supporting different job configurations requires an automation system to distribute build jobs among different nodes, which is simply an environment containing a Jenkins agent or controller.
Agentes Jenkins são executados em uma variedade de ambientes diferentes, como máquinas físicas, máquinas virtuais, clusters Kubernetes e imagens Docker. Um agente Jenkins é um executável, localizado em um nó, que é designado pelo controlador para executar um trabalho.
Gerenciar os diferentes agentes do Jenkins é o trabalho do controlador de agentes, também conhecido como nó mestre. Em uma configuração de nó único do Jenkins, o controlador também pode atuar como um agente do Jenkins e executar trabalhos de compilação. Conforme os ambientes se tornam mais complexos, essa configuração se torna limitante.
Evitando que o Nó Mestre do Controlador Execute Trabalhos
Antes de adicionar um agente Jenkins adicional, você deve primeiro remover o nó mestre do pool de agentes de compilação. Remover o nó mestre deste pool garante que o controlador tenha recursos adequados para coordenar os trabalhos de compilação. Abaixo, você seguirá as configurações necessárias para impedir que o nó mestre execute um trabalho.
- Acesse a interface do usuário do Jenkins através de um navegador. Neste tutorial, o Controlador do Jenkins usa o endereço
192.168.x.x:8080
.

2. Assim que o Painel do Jenkins aparecer, clique no link Gerenciar Jenkins.

3. Em seguida, clique no link Configurar Sistema dentro da seção Configuração do Sistema.

4. Role a página para baixo para localizar a configuração, # de executores, e defina o valor para 0
. Esta configuração força o nó mestre, ou controlador, a não executar nenhum trabalho de compilação.

0
.5. Na mesma página, localize o URL do Jenkins. Altere o URL para o endereço IP e porta usados no navegador, em vez de localhost:8080
.
Um nó de agente pode tentar usar
localhost
em vez do IP correto ao se comunicar com o controlador, se configurado incorretamente. Com o endereço IP correto configurado, você pode evitar futuros problemas de comunicação do agente!

6. Clique em Salvar para confirmar e aplicar as configurações atualizadas.
Configurando a Porta TCP para Agentes Recebidos
Para informar aos nós de agente do Jenkins no Windows a melhor forma de iniciar o serviço de trabalho e se comunicar de volta com o controlador, você deve configurar as configurações da porta TCP de entrada. Definir as configurações da porta TCP de entrada garante que o agente do Jenkins saiba como se conectar ao controlador do Jenkins via rede.
- Mais uma vez, acesse a página de configuração do Gerenciar Jenkins no painel do Jenkins.
2. Como mostrado abaixo, clique na seção Configurar Segurança Global para localizar as opções de porta TCP.

3. Role para baixo para localizar a seção Agentes e a Porta TCP para agentes recebidos. Altere a opção de Desativar para Aleatório. Com a configuração aleatória, o Jenkins seleciona um número de porta disponível aleatório e compartilha esse número de porta com um agente durante sua conexão inicial à porta HTTP do Jenkins.

4. Por fim, clique no botão Salvar para aplicar a configuração atualizada.
Criar um Novo Nó de Agente Jenkins no Controlador do Jenkins
Com todas as configurações apropriadas configuradas, é hora de criar o novo nó do Agente Jenkins. Antes disso, crie o diretório de trabalho no nó do Windows. No nó do Windows, crie o diretório C:\Jenkins.
Assim que o diretório de trabalho for criado, siga as etapas abaixo para configurar o seu novo nó!
- No painel do Jenkins, clique no link Gerenciar Nós e Nuvens.

2. Clique no link Novo Nó no menu à esquerda. Com apenas o controlador como agente, a lista de Nós só mostrará o nó mestre no início.

3. Insira um Nome do Nó, que é MyWindowsAgent1
para este tutorial, mas você pode usar um identificador mais apropriado para o seu ambiente, e selecione a opção para Agente Permanente. Com agentes adicionais, você pode ver também a opção Copiar Nó Existente. Por fim, clique no botão Ok.

4. Configure o novo agente com as configurações abaixo. As opções destacadas em verde são padrão.
- # de executores: Normalmente corresponde ao # de núcleos do agente. Um trecho útil de PowerShell para encontrar exatamente isso está abaixo.
- Diretório de Trabalho Remoto: C:\Jenkins
- Método de Inicialização: Iniciar agente conectando-o ao mestre.

Num recente artigo de soluções do Cloudbees.com, as opções de lançamento do agente mudaram em versões após 2.176.1. O “Lançar agente via Web Start” agora é “Lançar agente conectando-se ao mestre”.
5. Clique no botão Salvar e vá para a tela da lista de nós onde o novo nó do Agente Jenkins do Windows será mostrado.
6. Clique no nome do novo nó, MeuAgenteWindows1
, para recuperar os links de instalação do Agente.

7. Agora abra uma conexão de desktop remoto (RDP) para o nó do Windows onde o agente Jenkins será hospedado.
8. Acesse http://endereço-do-controlador:porta/computer/nome-do-nodo
, via navegador, no futuro agente do Windows.
9. Clique no botão Lançar para baixar o instalador do agente e iniciar a instalação do Agente Jenkins.

Próximos Passos
Há muitas maneiras de utilizar seus novos agentes. Entre executar scripts PowerShell no Jenkins e executar Jenkins no Docker, você descobrirá que existem muitas maneiras de automatizar seu ambiente de construção!