GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare Jenkins Master e Slave su Ubuntu 18.04 LTS

Jenkin è un server di automazione derivato dal progetto Hudson, supporta 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", consentendole di ospitare un gran numero di build di progetti.

Come funziona Jenkins 'master/slave'?

L'architettura master/slave Jenkins viene utilizzata per ambienti di build distribuiti, in cui il carico di lavoro dei progetti di costruzione viene distribuito a più nodi agente e possiamo utilizzare ambienti diversi per ogni build.

Nell'architettura Jenkins 'master/slave', un master rappresenta se stesso come un'installazione Jenkins di base e gestisce tutte le attività per il sistema di compilazione. Il nodo master Jenkins verrà utilizzato per la pianificazione dei lavori, il monitoraggio dei nodi slave, l'invio di build ai nodi slave, la registrazione e la rappresentazione del risultato della build e anche l'esecuzione diretta dei processi di compilazione.

I nodi slave Jenkins sono impostati per l'offload dei progetti di build dal master ed è richiesta una connessione stabilita tra il master e gli slave. I nodi slave Jenkins possono essere eseguiti su una varietà di sistemi operativi come Windows e Linux e non è necessario installare pacchetti Jenkins completi su di essi.

In questo tutorial impareremo come configurare l'architettura master-slave Jenkins utilizzando l'ultima versione di Ubuntu Ubuntu 18.04 LTS. Impareremo a configurare il server master Jenkins e quindi aggiungere altri nodi Ubuntu come slave Jenkins.

Prerequisiti

  • Ubuntu 18.04
    • master - 15.10.10
    • slave01 - 10.0.15.21
    • slave02 - 10.0.15.22
  • Privilegi di root

Cosa faremo?

  1. Installa Jenkins Master
  2. Configura le credenziali principali Jenkins
  3. Configura nodi agente slave
  4. Aggiungi nuovi nodi slave
  5. Prepara i nodi dell'agente slave per eseguire la build
  6. Test

Passaggio 1:installazione di Jenkins Master

In questo tutorial, non tratteremo l'installazione di base di Jenkins. Esistono numerosi articoli su HowtoForge che trattano l'installazione di Jenkins.

  • Installa Jenkins su Ubuntu 16.04
  • Installa Jenkins su Ubuntu 18.04
  • Installa Jenkins su CentOS 7

Di seguito è riportato il nostro server master Ubuntu 18.04 con Jenkins installato su di esso.

Passaggio 2:configurazione delle credenziali principali Jenkins

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

Per questa guida, avvieremo i nodi dell'agente tramite ssh e dobbiamo configurare le credenziali Jenkins sul nostro server master.

Genera chiave SSH

Utilizzeremo l'autenticazione della chiave ssh per configurare i nostri nodi agente, quindi dobbiamo generare la chiave ssh per l'utente Jenkins e quindi caricare manualmente la chiave su ciascun nodo del server utilizzando 'ssh-copy-id'.

Sul server principale Jenkins, accedi all'utente Jenkins e genera la chiave ssh.

su - jenkins
ssh-keygen

E otterrai la chiave privata 'id_rsa' e quella pubblica 'id_rsa.pub' nella directory '.ssh'.

Imposta credenziali su Jenkins

Apri la dashboard Jenkins e fai clic sul menu "Credenziali" a sinistra.

E fai clic sul link del dominio "globale".

Ora fai clic su "Aggiungi credenziali".

Ora scegli il metodo di autenticazione.

  • Tipo:nome utente SSH con chiave privata
  • Ambito:globale
  • Nome utente:jenkins
  • Chiave privata:inserisci direttamente e incolla la chiave privata 'id_rsa' dell'utente Jenkins dal server principale.

Fai clic su "OK".

E sono state create le credenziali Jenkins con il metodo ssh auth key.

Passaggio 3:imposta i nodi slave

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

Installa Java

Installa i pacchetti "software-properties-common" e aggiungi il repository java PPA.

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

Ora installa java OpenJDK usando il comando apt di seguito.

sudo apt install openjdk-8-jdk -y

Al termine dell'installazione, controlla la versione java installata.

java -version

E otterrai Java OpenJDK 1.8 installato sul sistema.

Aggiungi nuovo utente Jenkins

Ora aggiungi l'utente "Jenkins" a tutti i nodi agente.

Esegui il comando seguente.

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

L'utente 'Jenkins' per i nodi agente è stato creato.

Copia la chiave SSH da Master a Slave

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

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

Digita la password utente Jenkins.

La chiave ssh 'id_rsa.pub' è stata caricata su tutti i nodi agente.

Passaggio 4:aggiungi nuovi nodi slave

Nella dashboard di Jenkins, fai clic sul menu "Gestisci Jenkins", quindi su "Gestisci nodi".

Fai clic su "Nuovo nodo".

Digita il nome del nodo "slave01", scegli "agente permanente" e fai clic su "OK".

Ora digita i dettagli delle informazioni sul nodo.

  • Descrizione:server agent nodo slave01
  • Directory radice remota:/home/jenkins
  • Etichette:slave01
  • Metodo di avvio:avvia l'agente slave tramite SSH, digita l'indirizzo IP dell'host '10.0.15.21', scegli l'autenticazione utilizzando la credenziale 'Jenkins'.

Ora fai clic sul pulsante "Salva" e attendi che il server master si connetta a tutti i nodi dell'agente e avvii i servizi dell'agente.

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

I nodi slave Jenkins sono stati aggiunti al server master.

Passaggio 5:preparare i nodi dell'agente slave per eseguire la build

In questo passaggio, configureremo il master Jenkins per eseguire la build sui nodi dell'agente slave.

Fai clic sul menu "Gestisci Jenkins", quindi fai clic su "Configura sistema".

Ora vai alla sezione "Impostazioni slave" e definisci tutto ciò di cui hai bisogno come mostrato di seguito.

Maggiori informazioni sulle 'Impostazioni Slave' al link.

Fai clic sul pulsante "Salva" e ora siamo pronti per eseguire la build sui nodi dell'agente slave.

Fase 6 - Test

Ora vogliamo creare una nuova build semplice per Jenkins e vogliamo eseguire la build sui nodi dell'agente bot 'slave01' e 'slave02'.

Nella dashboard Jenkins, fai clic sul menu "Nuovo elemento".

Digita il nome dell'elemento, scegli il progetto freestyle e fai clic su "OK".

Nella sezione generale, digita la descrizione del lavoro e seleziona l'opzione "Limita a dove questo progetto può essere eseguito".

In "Espressione etichetta", specifica il nodo come "slave01".

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

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

Fai clic sul pulsante "Salva" e verrai reindirizzato alla pagina del lavoro.

Fai clic su "Crea ora" per creare il progetto, quindi fai clic sull'elemento nella sezione "Cronologia build".

E il seguente è il mio risultato.

Costruisci sul nodo dell'agente 'slave01'.

Costruisci sul nodo dell'agente 'slave02'.

L'installazione e la configurazione dell'architettura master/slave Jenkins e le build distribuite Jenkins sono state completate con successo.

Riferimenti

  • https://wiki.jenkins.io/

Ubuntu
  1. Come configurare il server Rsyslog su Ubuntu 18.04 LTS

  2. Come eseguire l'aggiornamento a Ubuntu 22.04 LTS da Ubuntu 20.04 LTS e 21.10

  3. Come installare Libreoffice 4.3 su Ubuntu 12.04 e 14.04 LTS

  4. Come installare Libreoffice 4.4 su Ubuntu 15.04 e 14.04 LTS

  5. Come configurare Elasticsearch su Ubuntu 18.04 e 16.04 LTS

Come configurare e utilizzare Google Drive su Ubuntu 22.04 LTS

Come installare il server DNS master e slave BIND9 su Ubuntu

Come installare Jenkins su Ubuntu 16.04 LTS

Come configurare UFW Firewall su Ubuntu 18.04 LTS

Come installare Jenkins su Ubuntu 18.04 LTS

Come configurare server e client NTP su Ubuntu 20.04 LTS