Esercitazione: Ridimensionare le distribuzioni jenkins con una macchina virtuale in esecuzione in Azure
Importante
Molti servizi di Azure dispongono di plug-in Jenkins. Alcuni di questi plug-in non saranno supportati a partire dal 29 febbraio 2024. L'interfaccia della riga di comando di Azure è il modo attualmente consigliato per integrare Jenkins con i servizi di Azure. Per altre informazioni, vedere l'articolo Plug-in Jenkins per Azure.
Questa esercitazione illustra come creare una macchina virtuale Linux in Azure e aggiungerla come nodo di lavoro in Jenkins.
Questa esercitazione illustra come:
- Creare il computer agente
- Aggiungere l'agente a Jenkins
- Creare un nuovo processo Freestyle Jenkins
- Eseguire il processo in un agente di macchine virtuali di Azure
Prerequisiti
- Installazione di Jenkins: se non si ha accesso a un'installazione di Jenkins, configurare Jenkins usando l'interfaccia della riga di comando di Azure
Configurare la macchina virtuale agente
Usare il comando az group create per creare un gruppo di risorse di Azure.
az group create --name <resource_group> --location <location>
Usare il comando az vm create per creare una macchina virtuale.
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
Punti principali:
- È anche possibile caricare la chiave SSH con il comando
--ssh-key-value <ssh_path>
.
- È anche possibile caricare la chiave SSH con il comando
Installare JDK.
Accedere alla macchina virtuale usando uno strumento SSH.
ssh username@123.123.123.123
Installare JDK con apt. Si può eseguire l'installazione anche con un altro strumento di gestione pacchetti, come yum o pacman.
sudo apt-get install -y default-jdk
Al termine dell'installazione, eseguire
java -version
per verificare l'ambiente Java. L'output includerà i numeri di versione associati alle varie parti di JDK.
Configurare l'URL di Jenkins
Se si usa JNLP, è necessario configurare l'URL di Jenkins.
Nel menu selezionare Manage Jenkins (Gestisci Jenkins).
In System Configuration (Configurazione del sistema) selezionare Configure System (Configura sistema).
Verificare che l'opzione Jenkins URL (URL di Jenkins) sia impostata sull'indirizzo HTTP dell'installazione di Jenkins, ossia
http://<your_host>.<your_domain>:8080/
.Seleziona Salva.
Aggiungere l'agente a Jenkins
Nel menu selezionare Manage Jenkins (Gestisci Jenkins).
In System Configuration (Configurazione del sistema) selezionare Manage Nodes and Clouds (Gestisci nodi e cloud).
Scegliere New Node (Nuovo nodo) dal menu.
Immettere un valore per Node Name (Nome nodo).
Selezionare Permanent Agent (Agente permanente).
Seleziona OK.
Specificare i valori per i seguenti campi:
Nome: specificare un nome univoco che identifichi un agente all'interno della nuova installazione di Jenkins. Questo valore può essere diverso dal nome host dell'agente. È comunque più pratico usare lo stesso valore per entrambi. Per il valore del nome è consentito qualsiasi carattere speciale dell'elenco seguente:
?*/\%!@#$^&|<>[]:;
.Directory radice remota: un agente deve avere una directory dedicata a Jenkins. Specificare il percorso di questa directory nell'agente. È preferibile usare un percorso assoluto, come
/home/azureuser/work
oc:\jenkins
. Deve essere un percorso locale nel computer agente. Non è necessario che questo percorso sia visibile dal master. Se si usa un percorso relativo, come ./jenkins-agent, il percorso sarà relativo alla directory di lavoro specificata dal metodo di avvio.Etichette: le etichette vengono usate per raggruppare gli agenti correlati semanticamente in un unico gruppo logico. Ad esempio, è possibile definire un'etichetta
UBUNTU
per tutti gli agenti che eseguono la distribuzione Ubuntu di Linux.Metodo di avvio: sono disponibili due opzioni per avviare il nodo Jenkins remoto: Avviare gli agenti tramite SSH e Avviare l'agente tramite l'esecuzione del comando nel master:
Avviare gli agenti tramite SSH: specificare i valori per i campi seguenti:
Host: indirizzo IP pubblico o nome di dominio della macchina virtuale. Ad esempio,
123.123.123.123
oexample.com
Credenziali: selezionare una credenziale da usare per l'accesso all'host remoto. Si può anche selezionare il pulsante Add (Aggiungi) per definire nuove credenziali e quindi selezionarle una volta create.
Strategia di verifica della chiave host: controlla il modo in cui Jenkins verifica la chiave SSH presentata dall'host remoto durante la connessione.
Launch agent via execution of command on the master (Avvia agente tramite l'esecuzione di un comando nel master):
Scaricare da
agent.jar
https://<your_jenkins_host_name>/jnlpJars/agent.jar
. Ad esempio:https://localhost:8443/jnlpJars/agent.jar
.Caricare
agent.jar
nella macchina virtualeAvviare Jenkins con il comando
ssh <node_host> java -jar <remote_agentjar_path>
. Ad esempio:ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar
.
Seleziona Salva.
Una volta definite le configurazioni, Jenkins aggiunge la macchina virtuale come nuovo nodo di lavoro.
Creare un processo in Jenkins
Scegliere New Item (Nuovo elemento) dal menu.
Immettere
demoproject1
per il nome.Selezionare Freestyle project (Progetto Freestyle).
Seleziona OK.
Nella scheda Generale selezionare Restrict where project can be run (Limitare l'area di esecuzione del progetto), quindi digitare
ubuntu
in Espressione etichetta. Verrà visualizzato un messaggio di conferma che l'etichetta viene servita dalla configurazione cloud creata nel passaggio precedente.Selezionare la scheda Gestione del codice sorgente, abilitare Git e immettere l'URL seguente nel campo URL del repository:
https://github.com/spring-projects/spring-petclinic.git
Nella scheda Genera selezionare Aggiungi istruzione di compilazione, quindi scegliere Invoke top-level Maven targets (Richiama destinazioni Maven di primo livello). Immettere
package
nel campo Obiettivi.Seleziona Salva.
Generare un nuovo processo in un agente di macchine virtuali di Azure
Selezionare il processo creato nel passaggio precedente.
Selezionare Build now (Compila). Viene accodata una nuova compilazione, che non viene però avviata finché non viene creata una VM agente nella sottoscrizione di Azure.
Una volta completata la compilazione, passare a Console output (Output console). Si vedrà che la compilazione è stata eseguita in remoto in un agente di Azure.