Come configurare un nuovo agente di build Jenkins

Se stai esaurendo gli esecutori di Jenkins o sei bloccato in attesa di lavori in coda per i tuoi lavori di Jenkins su Windows, è necessario configurare ulteriori agenti di Jenkins.

In questo tutorial, imparerai come aggiungere un nodo Windows di agente Jenkins per supportare la crescente necessità di risorse nel tuo ambiente di compilazione del software!

Prerequisiti

Per seguire questo articolo, avrai bisogno dei seguenti.

  • Installazione funzionante di un controller di Jenkins uguale o superiore a 2.176.1, e in questo articolo, il controller è chiamato nodo master.
  • Qualsiasi installazione supportata del sistema operativo Windows, che sarà chiamata nodo agente Jenkins.

Cosa sono gli agenti Jenkins e il controller degli agenti 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.

Gli agenti Jenkins funzionano su una varietà di ambienti diversi come macchine fisiche, macchine virtuali, cluster Kubernetes e immagini Docker. Un agente Jenkins è un eseguibile, residente su un nodo, incaricato dal controller di eseguire un lavoro.

Gestire i diversi agenti Jenkins è compito del controller degli agenti, noto anche come nodo master. In una singola configurazione del nodo Jenkins, il controller può anche agire sia come agente Jenkins che eseguire lavori di build. Con l’aumentare della complessità degli ambienti, questa configurazione diventa limitante.

Prevenire che il nodo master del controller esegua lavori

Prima di poter aggiungere un agente Jenkins aggiuntivo, è necessario rimuovere prima il nodo master dal pool di agenti di build. Rimuovere il nodo master da questo pool garantisce che il controller abbia risorse sufficienti per coordinare i lavori di build. Di seguito verranno illustrate le impostazioni necessarie per impedire al nodo master di eseguire un lavoro.

  1. Navigare nell’interfaccia utente di Jenkins tramite un browser. In questo tutorial, il Controller Jenkins utilizza l’indirizzo 192.168.x.x:8080.
Logging into the Jenkins Dashboard.

2. Una volta visualizzato il Dashboard di Jenkins, fare clic sul collegamento Gestisci Jenkins.

Navigate to Manage Jenkins.

3. Successivamente, fare clic sul collegamento Configura Sistema dalla sezione Configurazione Sistema.

Navigate to Configure System.

4. Scorri verso il basso della pagina per individuare l’impostazione, # di esecutori, e impostare il valore su 0. Questa impostazione impedisce al nodo master, o controller, di eseguire qualsiasi lavoro di build.

Set the # of executors option to 0.

5. Nella stessa pagina, individuare l’URL di Jenkins Jenkins URL. Cambiare l’URL con l’indirizzo IP e la porta utilizzati nel browser, invece di localhost:8080.

Un nodo agente potrebbe tentare di utilizzare “localhost” invece dell’IP corretto durante la comunicazione con il controller, se configurato in modo errato. Con l’indirizzo IP corretto configurato, è possibile evitare futuri problemi di comunicazione dell’agente!

Update the Jenkins URL to the proper IP address.

6. Fare clic su Salva per confermare e applicare le impostazioni aggiornate.

Impostazione della porta TCP per gli agenti in ingresso

Per informare i nodi agente di Windows Jenkins su come avviare il servizio di lavoro e comunicare con il controller, è necessario configurare le impostazioni della porta TCP in ingresso. La definizione delle impostazioni della porta TCP in ingresso assicura che l’agente Jenkins sappia come connettersi al controller Jenkins tramite la rete.

  1. Ancora una volta, passare alla pagina di configurazione di Gestisci Jenkins dalla dashboard di Jenkins.

2. Come mostrato di seguito, fare clic sulla sezione Configura sicurezza globale per individuare le opzioni della porta TCP.

Navigate to the Configure Global Security section.

3. Scorri verso il basso per individuare la sezione Agenti e la Porta TCP per gli agenti in ingresso. Cambiare l’opzione da Disabilita a Casuale. Con l’impostazione casuale, Jenkins seleziona un numero di porta disponibile in modo casuale e condivide quel numero di porta con un agente durante la loro connessione iniziale alla porta HTTP di Jenkins.

Modify the TCP port for inbound agents setting to Random.

4. Infine, fare clic sul pulsante Salva per applicare l’impostazione aggiornata.

Crea un nuovo nodo agente Jenkins sul controller Jenkins

Con tutte le impostazioni appropriate configurate, è ora di creare il nuovo nodo Agente Jenkins. Prima di questo, crea la directory di lavoro sul nodo Windows. Sul nodo Windows, crea la directory C:\Jenkins.

Una volta creata la directory di lavoro, segui i passaggi seguenti per configurare il nuovo nodo!

  1. Dalla dashboard di Jenkins, clicca sul link Gestisci Nodi e Cloud.
Navigate to Manage Nodes and Clouds.

2. Clicca sul link Nuovo Nodo nel menu di sinistra. Con solo il controller come agente, l’elenco dei Nodi mostrerà solo il nodo principale all’inizio.

Add a New Node to Jenkins.

3. Inserisci un Nome Nodo, che per questo tutorial è MyWindowsAgent1 ma puoi usare un identificatore più appropriato per il tuo ambiente, e seleziona l’opzione per Agente Permanente. Con agenti aggiuntivi, potresti vedere anche un’opzione Copia Nodo Esistente. Infine, clicca il pulsante Ok.

Enter the node name and type.

4. Configura il nuovo agente con le seguenti impostazioni. Le opzioni evidenziate in verde sono predefinite.

  • # di executor: Corrisponde tipicamente al # di core dell’agente. Un pratico snippet di PowerShell per trovarlo è riportato di seguito.
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property Number*
  • Directory di Lavoro Remota: C:\Jenkins
  • Metodo di Avvio: Avvia l’agente collegandolo al master.
Configure the new Jenkins Agent node.

In un recente articolo sulle soluzioni di Cloudbees.com, le opzioni di avvio dell’agente sono cambiate nelle versioni successive alla 2.176.1. Il “Lancio dell’agente tramite Web Start” è ora “Lancio dell’agente collegandosi al master”.

5. Fare clic sul pulsante “Salva” e passare alla schermata Elenco nodi dove verrà mostrato il nuovo nodo dell’agente Jenkins per Windows.

6. Fare clic sul nome del nuovo nodo, MyWindowsAgent1, per ottenere i collegamenti all’installazione dell’agente.

Navigate to the new Windows node.

7. Aprire una connessione desktop remota (RDP) al nodo Windows in cui sarà ospitato l’agente Jenkins.

8. Accedere a http://controllerip:port/computer/nodename, tramite un browser, sul futuro agente Windows.

9. Fare clic sul pulsante “Avvia” per scaricare l’installatore dell’agente e avviare l’installazione dell’agente Jenkins.

Utilize the instructions and links to install the agent.

Passaggi successivi

Ci sono molti modi per utilizzare i nuovi agenti. Dal’esecuzione di script PowerShell in Jenkins all’esecuzione di Jenkins in Docker, scoprirai che ci sono molte modalità per automatizzare il tuo ambiente di compilazione!

Source:
https://adamtheautomator.com/jenkins-agent/