Jenkins Setup · 6 min read · Dec 19, 2025

Come configurare Jenkins Master e Slave su Ubuntu

Jenkins è un server di automazione forkato dal progetto Hudson. Ha supporto per molti sistemi software SCM (Source Control Management) tra cui Git, SVN e Mercurial. Jenkins fornisce centinaia di plugin per automatizzare il tuo progetto. Jenkins offre supporto per un’architettura ‘master/slave’, consentendo di ospitare un gran numero di build di progetti.

Come funziona l’architettura ‘master/slave’ di Jenkins?

L’architettura master/slave di Jenkins è utilizzata per ambienti di build distribuiti, dove il carico di lavoro per la costruzione dei progetti è distribuito su più nodi agenti, e possiamo utilizzare ambienti diversi per ogni build.

Nell’architettura ‘master/slave’ di Jenkins, un master si rappresenta come una installazione base di Jenkins e gestisce tutti i compiti per il sistema di build. Il nodo master di Jenkins sarà utilizzato per pianificare i lavori, monitorare i nodi slave, inviare build ai nodi slave, registrare e rappresentare il risultato della build, ed eseguire direttamente i lavori di build.

I nodi slave di Jenkins sono configurati per scaricare i progetti di build dal master, ed è necessaria una connessione stabilita tra il master e gli slave. I nodi slave di Jenkins possono funzionare su vari sistemi operativi come Windows e Linux, e non è necessario installare pacchetti Jenkins completi su di essi.

Questo tutorial ci insegnerà come configurare l’architettura master-slave di Jenkins utilizzando l’ultima versione di Ubuntu. Impareremo a configurare il server master di Jenkins e aggiungere altri nodi Ubuntu come slave di Jenkins.

Requisiti

  • Server Ubuntu (Ubuntu 22.04 - Ubuntu 16.04) - master - 10.0.15.10
  • slave01 - 10.0.15.21
  • slave02 - 10.0.15.22
  • Privilegi di root

Cosa faremo?

  1. Installare Jenkins Master
  2. Configurare le credenziali di Jenkins Master
  3. Configurare i nodi agenti Slave
  4. Aggiungere nuovi nodi Slave
  5. Preparare i nodi agenti Slave per eseguire la build
  6. Testare

Passo 1 - Installare Jenkins Master

In questo tutorial, non copriremo l’installazione base di Jenkins. Diversi articoli su HowtoForge coprono l’installazione di Jenkins.

  • Installare Jenkins su Ubuntu 16.04
  • Installare Jenkins su Ubuntu 18.04
  • Installare Jenkins su Ubuntu 20.04
  • Installare Jenkins su Ubuntu 22.04
  • Installare Jenkins su CentOS 7

Di seguito è il nostro server master Ubuntu con Jenkins installato.

Install Jenkins Master

Passo 2 - Configurare le credenziali di Jenkins Master

Quando hai installato il server master di Jenkins, dobbiamo configurare il server master stesso. Per impostazione predefinita, ci sono diversi modi per avviare i nodi agenti di Jenkins, possiamo avviare i nodi agenti tramite SSH, un account amministrativo di Windows e tramite Java Web Start (JNLP), scegli il modo migliore a seconda della configurazione del tuo ambiente e del sistema operativo.

Per questa guida, avvieremo i nodi agenti tramite ssh, e dobbiamo impostare le credenziali di Jenkins sul nostro server master.

Generare la chiave SSH

Useremo l’autenticazione con chiave ssh per configurare i nostri nodi agenti, quindi dobbiamo generare la chiave ssh per l’utente Jenkins e poi caricare manualmente la chiave su ciascun nodo server utilizzando ‘ssh-copy-id’.

Sul server master di Jenkins, accedi come utente Jenkins e genera la chiave ssh.

su - jenkins  
ssh-keygen

E otterrai la chiave privata ‘id_rsa’ e la chiave pubblica ‘id_rsa.pub’ nella directory ‘.ssh’.

Generate SSH Key

Configurare le credenziali su Jenkins

Apri il tuo dashboard di Jenkins e clicca sul menu ‘Credenziali’ a sinistra.

Setup Credentials on Jenkins

E clicca sul link del dominio ‘global’.

Ora clicca su ‘Aggiungi Credenziali’.

Add Credentials

Ora scegli il metodo di autenticazione.

  • Tipo: SSH Username con chiave privata
  • Ambito: Globale
  • Nome utente: jenkins
  • Chiave privata: Inserisci direttamente e incolla la chiave privata ‘id_rsa’ dell’utente Jenkins dal server master.

Clicca su ‘OK’.

choose the authentication method

E le credenziali di Jenkins con il metodo di chiave di autenticazione ssh sono state create.

Jenkins credential with ssh auth key method have been created

Passo 3 - Configurare i nodi Slave

Ora configureremo i server dei nodi slave installando java su quei server e creando un nuovo utente Jenkins.

Installare Java

Installa i pacchetti ‘software-properties-common’ e aggiungi il repository PPA di java.

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:openjdk-r/ppa -y

Ora installa java OpenJDK utilizzando il comando apt qui sotto.

sudo apt install openjdk-8-jdk -y

Dopo che l’installazione è completata, controlla la versione di java installata.

java -version

E otterrai Java OpenJDK 1.8 installato sul sistema.

Aggiungere un nuovo utente Jenkins

Ora aggiungi l’utente ‘Jenkins’ a tutti i nodi agenti.

Esegui il comando qui sotto.

useradd -m -s /bin/bash jenkins  
passwd Jenkins

L’utente ‘Jenkins’ per i nodi agenti è stato creato.

Add New Jenkins User

Copiare la chiave SSH dal Master allo Slave

Successivamente, dobbiamo caricare la chiave ‘id_rsa.pub’ dal master ai nodi server slave. Dobbiamo caricare su ciascun nodo server utilizzando il comando ‘ssh-copy-id’ come di seguito.

ssh-copy-id [email protected]  
ssh-copy-id [email protected]

Digita la password dell’utente Jenkins.

La chiave ssh ‘id_rsa.pub’ è stata caricata su tutti i nodi agenti.

Copy the SSH Key from Master to Slave

Passo 4 - Aggiungere nuovi nodi Slave

Sul dashboard di Jenkins, clicca sul menu ‘Gestisci Jenkins’, e clicca su ‘Gestisci Nodi’.

Add New Slave Nodes

Clicca su ‘Nuovo Nodo’.

New Node

Digita il nome del nodo ‘slave01’, scegli ‘agente permanente’, e clicca su ‘OK’.

node name

Ora digita i dettagli delle informazioni del nodo.

  • Descrizione: server agente nodo slave01
  • Directory radice remota: /home/jenkins
  • Etichette: slave01
  • Metodo di avvio: Avvia agente slave tramite SSH, digita l’indirizzo IP dell’host ‘10.0.15.21’, scegli l’autenticazione utilizzando le credenziali ‘Jenkins’.

node information

Ora clicca sul pulsante ‘Salva’ e attendi che il server master si connetta a tutti i nodi agenti e avvii i servizi agenti.

Di seguito sono riportati i risultati quando il server master è connesso a tutti i nodi agenti.

master server is connected to all agent nodes

I nodi slave di Jenkins sono stati aggiunti al server master.

Passo 5 - Preparare i nodi agenti Slave per eseguire la build

In questo passo, configureremo il master di Jenkins per eseguire la build sui nodi agenti slave.

Clicca sul menu ‘Gestisci Jenkins’ e poi clicca su ‘Configura Sistema’.

Prepare Slave Agent Nodes to Execute Build

Ora vai alla sezione ‘Impostazioni Slave’ e definisci tutto ciò di cui hai bisogno come mostrato di seguito.

the 'Slave Setups' section

Ulteriori informazioni sulle ‘Impostazioni Slave’ nel link.

Clicca sul pulsante ‘Salva’ e ora siamo pronti per eseguire la build sui nodi agenti slave.

Passo 6 - Testare

Ora vogliamo creare una nuova build semplice per Jenkins ed eseguire la build sui nodi agenti ‘slave01’ e ‘slave02’.

Sul dashboard di Jenkins, clicca sul menu ‘Nuovo Elemento’.

Testing Jenkins

Digita il nome dell’elemento, scegli il progetto freestyle, e clicca su ‘OK’.

Add Freestyle project

Nella sezione generale, digita la descrizione del lavoro e seleziona l’opzione ‘Limitare dove questo progetto può essere eseguito’.

Nell’ ‘Espressione Etichetta’, specifica il nodo come ‘slave01’.

Select a node

Passa alla sezione di build e scegli l’opzione ‘Esegui shell’, digita il comando come di seguito.

top -b -n 1 | head -n 10 && hostname

Clicca sul pulsante ‘Salva’, e verrai reindirizzato alla pagina del lavoro.

Job page

Clicca su ‘Build Now’ per costruire il progetto, e poi clicca sull’elemento nella sezione ‘Cronologia Build’.

Build now

E il seguente è il mio risultato.

Build sul nodo agente ‘slave01’.

Jenkins script result output

Build sul nodo agente ‘slave02’.

Build on node 02

L’installazione e la configurazione dell’architettura master/slave di Jenkins e delle build distribuite di Jenkins sono state completate con successo.

Riferimenti

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.