Você está ficando sem Jenkins executores ou preso esperando por trabalhos na fila para seus trabalhos do Jenkins no Windows? Se sim, você precisa configurar mais agentes Jenkins.
Neste tutorial, você aprenderá como adicionar um nó Windows de agente Jenkins para suportar uma necessidade de recursos que cresce sempre em seu ambiente de construção de software!
Pré-requisitos
Para seguir este artigo, você precisará do seguinte.
- Instalação funcionando de uma instalação de controlador Jenkins igual ou superior a 2.176.1, e neste artigo, o controlador é referido como o nó mestre.
- Qualquer instalação de OS Windows suportada que será referida como o nó 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 rodam 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, residindo em um nó, que é encarregado 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 um único nó do Jenkins, o controlador também pode atuar como um agente Jenkins e executar trabalhos de compilação. Conforme os ambientes se tornam mais complexos, essa configuração se torna limitante.
Impedindo 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ê encontrará as configurações necessárias para impedir que o nó mestre execute um trabalho.
- Navegue até 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 como 0
. Essa 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 a URL do Jenkins. Altere a 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 estiver configurado incorretamente. Com o endereço IP correto configurado, você pode evitar problemas futuros na comunicação do agente!

6. Clique em Salvar para confirmar e aplicar as configurações atualizadas.
Configurando a Porta TCP para Agentes de Entrada
Para informar aos nós de agente do Jenkins no Windows como iniciar o serviço de trabalho e se comunicar com o controlador, é necessário 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.
- Novamente, vá para a página de configuração Gerenciar Jenkins no painel do Jenkins.
2. Como mostrado abaixo, clique na seção Configurar Segurança Global para localizar as opções da porta TCP.

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

4. Por fim, clique em Salvar para aplicar a configuração atualizada.
Criar um Novo Nó de Agente Jenkins no Controlador 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ó Windows. No nó Windows, crie o diretório C:\Jenkins.
Assim que o diretório de trabalho for criado, siga as etapas abaixo para configurar o novo nó!
- A partir do 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 mostrará apenas o nó principal inicialmente.

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 Agente Permanente. Com agentes adicionais, você pode ver a opção Copiar Nó Existente também. 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 os padrões.
- # de executores: Normalmente corresponde ao # de núcleos do agente. Um trecho útil do PowerShell para encontrar isso é abaixo.
- Diretório de Trabalho Remoto: C:\Jenkins
- Método de Inicialização: Inicie o agente conectando-o ao mestre.

Em um recente artigo de soluções do Cloudbees.com, as opções de lançamento do agente foram alteradas nas 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 para Windows será exibido.
6. Clique no nome do novo nó, MyWindowsAgent1
, para obter os links de instalação do agente.

7. Agora abra uma conexão de desktop remoto (RDP) para o nó Windows onde o agente Jenkins será hospedado.
8. Acesse http://controllerip:port/computer/nodename
, via navegador, no futuro agente 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
Existem muitas maneiras de utilizar seus novos agentes. Desde a execução de scripts PowerShell no Jenkins até a execução do Jenkins no Docker, você descobrirá que existem muitas maneiras de automatizar seu ambiente de construção!