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

Configurare la macchina virtuale agente

  1. Usare il comando az group create per creare un gruppo di risorse di Azure.

    az group create --name <resource_group> --location <location>
    
  2. 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>.
  3. Installare JDK.

    1. Accedere alla macchina virtuale usando uno strumento SSH.

      ssh username@123.123.123.123
      
    2. 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
      
    3. 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.

  1. Nel menu selezionare Manage Jenkins (Gestisci Jenkins).

  2. In System Configuration (Configurazione del sistema) selezionare Configure System (Configura sistema).

  3. 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/.

  4. Seleziona Salva.

Aggiungere l'agente a Jenkins

  1. Nel menu selezionare Manage Jenkins (Gestisci Jenkins).

  2. In System Configuration (Configurazione del sistema) selezionare Manage Nodes and Clouds (Gestisci nodi e cloud).

  3. Scegliere New Node (Nuovo nodo) dal menu.

  4. Immettere un valore per Node Name (Nome nodo).

  5. Selezionare Permanent Agent (Agente permanente).

  6. Seleziona OK.

  7. 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 o c:\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 o example.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.

        Node configuration example specifying a launch method of Launch agents via SSH.

      • Launch agent via execution of command on the master (Avvia agente tramite l'esecuzione di un comando nel master):

        • Scaricare da agent.jarhttps://<your_jenkins_host_name>/jnlpJars/agent.jar. Ad esempio: https://localhost:8443/jnlpJars/agent.jar.

        • Caricare agent.jar nella macchina virtuale

        • Avviare 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.

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. Seleziona Salva.

Una volta definite le configurazioni, Jenkins aggiunge la macchina virtuale come nuovo nodo di lavoro.

Example of virtual machine as new work node

Creare un processo in Jenkins

  1. Scegliere New Item (Nuovo elemento) dal menu.

  2. Immettere demoproject1 per il nome.

  3. Selezionare Freestyle project (Progetto Freestyle).

  4. Seleziona OK.

  5. 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.

    Setting up a new Jenkins job

  6. 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

  7. 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.

  8. Seleziona Salva.

Generare un nuovo processo in un agente di macchine virtuali di Azure

  1. Selezionare il processo creato nel passaggio precedente.

  2. 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.

  3. 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.

    Console output

Passaggi successivi