Självstudie: Skala Jenkins-distributioner med en virtuell dator som körs i Azure

Viktigt!

Många Azure-tjänster har Jenkins-plugin-program. Vissa av dessa plugin-program kommer att vara utan stöd från och med den 29 februari 2024. Azure CLI är det för närvarande rekommenderade sättet att integrera Jenkins med Azure-tjänster. Mer information finns i artikeln Jenkins-plugin-program för Azure.

Den här självstudien visar hur du skapar en virtuell Linux-dator i Azure och lägger till den virtuella datorn som en arbetsnod i Jenkins.

I den här självstudien kommer vi att:

  • Skapa agentdator
  • Lägga till agent i Jenkins
  • Skapa ett nytt Jenkins-freestylejobb
  • Kör jobbet på en Azure VM-agent

Förutsättningar

Konfigurera den virtuella agentdatorn

  1. Använd az group create för att skapa en Azure-resursgrupp.

    az group create --name <resource_group> --location <location>
    
  2. Använd az vm create för att skapa en virtuell dator.

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    Viktiga punkter:

    • Du kan också ladda upp din ssh-nyckel med följande kommando --ssh-key-value <ssh_path>.
  3. Installera JDK: et.

    1. Logga in på den virtuella datorn med ett SSH-verktyg.

      ssh username@123.123.123.123
      
    2. Installera JDK med apt. Du kan också installera med andra pakethanterarverktyg som yum eller pacman.

      sudo apt-get install -y default-jdk
      
    3. När installationen är klar kör du java -version för att verifiera Java-miljön. Utdata innehåller de versionsnummer som är associerade med olika delar av JDK:et.

Konfigurera Jenkins-URL

Om du använder JNLP måste du konfigurera Jenkins-URL:en.

  1. Välj Hantera Jenkins på menyn.

  2. Under Systemkonfiguration väljer du Konfigurera system.

  3. Kontrollera att Jenkins-URL:en är inställd på HTTP-adressen för Jenkins-installationen – http://<your_host>.<your_domain>:8080/.

  4. Välj Spara.

Lägga till agent i Jenkins

  1. Välj Hantera Jenkins på menyn.

  2. Under Systemkonfiguration väljer du Hantera noder och moln.

  3. Välj Ny nod på menyn.

  4. Ange ett värde för Nodnamn.

  5. Välj Permanent agent.

  6. Välj OK.

  7. Ange värden för de följande fälten:

    • Namn: Ange ett unikt namn som identifierar en agent i den nya Jenkins-installationen. Det här värdet kan skilja sig från agentens värdnamn. Det är dock praktiskt att göra dem till samma värden. Namnvärdet tillåts alla specialtecken från följande lista: ?*/\%!@#$^&|<>[]:;.

    • Fjärrrotkatalog: En agent måste ha en katalog som är dedikerad till Jenkins. Ange sökvägen till den här katalogen på agenten. Det är bäst att använda en absolut sökväg, till exempel /home/azureuser/work eller c:\jenkins. Detta bör vara en sökväg som är lokal för agentdatorn. Den här sökvägen behöver inte vara synlig från huvudservern. Om du använder en relativ sökväg, till exempel ./jenkins-agent, är sökvägen relativ till arbetskatalogen som tillhandahålls av metoden Starta.

    • Etiketter: Etiketter används för att gruppera semantiskt relaterade agenter i en logisk grupp. Du kan till exempel definiera en etikett UBUNTU för alla dina agenter som kör Ubuntu-distributionen av Linux.

    • Startmetod: Det finns två alternativ för att starta den fjärranslutna Jenkins-noden: Starta agenter via SSH och Starta agenten via körning av kommandot på huvudservern:

      • Starta agenter via SSH: Ange värdena för följande fält:

        • Värd: Offentlig IP-adress eller domännamn för virtuell dator. Till exempel 123.123.123.123 eller example.com

        • Autentiseringsuppgifter: Välj en autentiseringsuppgift som ska användas för att logga in på fjärrvärden. Du kan också välja knappen Lägg till för att definiera en ny autentiseringsuppgift och sedan välja den nya autentiseringsuppgiften när den har skapats.

        • Strategi för verifiering av värdnyckel: Styr hur Jenkins verifierar SSH-nyckeln som presenteras av fjärrvärden vid anslutning.

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

      • Starta agenten via körning av kommandot på huvudservern:

        • agent.jar Ladda ned från https://<your_jenkins_host_name>/jnlpJars/agent.jar. Exempel: https://localhost:8443/jnlpJars/agent.jar

        • Ladda upp agent.jar till den virtuella datorn

        • Starta Jenkins med kommandot ssh <node_host> java -jar <remote_agentjar_path>. Exempel: 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. Välj Spara.

När du har definierat konfigurationerna lägger Jenkins till den virtuella datorn som en ny arbetsnod.

Example of virtual machine as new work node

Skapa ett jobb i Jenkins

  1. Välj Nytt objekt på menyn.

  2. Ange demoproject1 som namn.

  3. Välj Freestyle-projekt.

  4. Välj OK.

  5. På fliken Allmänt väljer du Begränsa var projekt kan köras och typen ubuntu i etikettuttrycket. Du ser ett meddelande som bekräftar att etiketten hanteras av den molnkonfiguration som skapades i föregående steg.

    Setting up a new Jenkins job

  6. På fliken Source Code Management (Källkodshantering) väljer du Git och lägger till följande URL i fältet Repository URL (URL för lagringsplats): https://github.com/spring-projects/spring-petclinic.git

  7. På fliken Build (Bygg) väljer du Add build step (Lägg till byggsteg) och sedan Invoke top-level Maven targets (Anropa Maven-mål på toppnivå). Ange package i fältet Mål.

  8. Välj Spara.

Bygg det nya jobbet på en Azure VM-agent

  1. Välj det jobb som du skapade i föregående steg.

  2. Välj Skapa nu. En ny version placeras i kö, men startar inte förrän en virtuell agentdator har skapats i din Azure-prenumeration.

  3. När versionen har slutförts, går du till Konsolutdata. Du ser att versionen skapades via en fjärranslutning på en Azure-agent.

    Console output

Nästa steg