Zelfstudie: Jenkins-implementaties schalen met VM's die worden uitgevoerd in Azure

Belangrijk

Veel Azure-services hebben Jenkins-invoegtoepassingen. Sommige van deze invoegtoepassingen worden vanaf 29 februari 2024 niet meer ondersteund. Azure CLI is momenteel de aanbevolen manier om Jenkins te integreren met Azure-services. Raadpleeg het artikel Jenkins-invoegtoepassingen voor Azure voor meer informatie.

In deze zelfstudie ziet u hoe u een virtuele Linux-machine maakt in Azure en de VM als een werkknooppunt toevoegt aan Jenkins.

In deze zelfstudie leert u het volgende:

  • Agentmachine maken
  • Agent toevoegen aan Jenkins
  • Een nieuwe Jenkins-freestyle-taak maken
  • De taak uitvoeren in een Azure VM-agent

Vereisten

Virtuele machine van agent configureren

  1. Gebruik az group create om een Azure-resourcegroep te maken.

    az group create --name <resource_group> --location <location>
    
  2. Gebruik az vm create om een virtuele machine te maken.

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

    Belangrijkste punten:

    • U kunt uw ssh-sleutel ook uploaden met de volgende opdracht --ssh-key-value <ssh_path>.
  3. Installeer de JDK.

    1. Meld u aan bij de virtuele machine met behulp van een SSH-hulpprogramma.

      ssh username@123.123.123.123
      
    2. Installeer de JDK met apt. U kunt ook installeren met andere hulpprogramma's voor pakketbeheer, zoals yum of pacman.

      sudo apt-get install -y default-jdk
      
    3. Nadat de installatie is voltooid, voert u deze uit java -version om de Java-omgeving te controleren. De uitvoer bevat de versienummers die zijn gekoppeld aan verschillende onderdelen van de JDK.

Jenkins-URL configureren

Als u JNLP gebruikt, moet u de Jenkins-URL configureren.

  1. Selecteer Jenkins beheren in het menu.

  2. Selecteer Onder Systeemconfiguratie de optie Systeem configureren.

  3. Controleer of de Jenkins-URL is ingesteld op het HTTP-adres van uw Jenkins-installatie - http://<your_host>.<your_domain>:8080/.

  4. Selecteer Opslaan.

Agent toevoegen aan Jenkins

  1. Selecteer Jenkins beheren in het menu.

  2. Selecteer Onder Systeemconfiguratie de optie Knooppunten en clouds beheren.

  3. Selecteer nieuw knooppunt in het menu.

  4. Voer een waarde in voor de naam van het knooppunt.

  5. Selecteer Permanente agent.

  6. Selecteer OK.

  7. Geef de waarden op voor de volgende velden:

    • Naam: Geef een unieke naam op die een agent identificeert binnen de nieuwe Jenkins-installatie. Deze waarde kan afwijken van de hostnaam van de agent. Het is echter handig om deze twee waarden hetzelfde te maken. De naamwaarde mag een speciaal teken uit de volgende lijst bevatten: ?*/\%!@#$^&|<>[]:;

    • Externe hoofdmap: een agent moet een map hebben die is toegewezen aan Jenkins. Geef het pad naar deze map op in de agent. Het is het beste om een absoluut pad te gebruiken, zoals /home/azureuser/work of c:\jenkins. Dit moet een lokaal pad naar de agentcomputer zijn. Het is niet nodig om dit pad zichtbaar te maken vanuit het model. Als u een relatief pad gebruikt, zoals ./jenkins-agent, is het pad relatief ten opzichte van de werkmap die wordt geleverd door de methode Launch.

    • Labels: Labels worden gebruikt om semantisch gerelateerde agents in één logische groep te groeperen. U kunt bijvoorbeeld een label definiëren voor UBUNTU al uw agents waarop de Ubuntu-distributie van Linux wordt uitgevoerd.

    • Startmethode: Er zijn twee opties om het externe Jenkins-knooppunt te starten: Start agents via SSH en Start agent via de uitvoering van de opdracht op de master:

      • Start agents via SSH: geef de waarden op voor de volgende velden:

        • Host: openbaar IP-adres of domeinnaam van vm. Bijvoorbeeld 123.123.123.123 of example.com

        • Referenties: selecteer een referentie die moet worden gebruikt om u aan te melden bij de externe host. U kunt ook de knop Toevoegen selecteren om een nieuwe referentie te definiëren en vervolgens die nieuwe referentie selecteren zodra deze is gemaakt.

        • Strategie voor verificatie van hostsleutels: hiermee bepaalt u hoe Jenkins de SSH-sleutel controleert die door de externe host wordt gepresenteerd terwijl er verbinding wordt gemaakt.

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

      • Start de agent via de uitvoering van de opdracht op de master:

        • Download het agent.jar van https://<your_jenkins_host_name>/jnlpJars/agent.jar. Bijvoorbeeld: https://localhost:8443/jnlpJars/agent.jar.

        • Uploaden agent.jar naar uw virtuele machine

        • Start Jenkins met de opdracht ssh <node_host> java -jar <remote_agentjar_path>. Bijvoorbeeld: 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. Selecteer Opslaan.

Nadat u de configuraties hebt gedefinieerd, voegt Jenkins de virtuele machine toe als een nieuw werkknooppunt.

Example of virtual machine as new work node

Een taak maken in Jenkins

  1. Selecteer Nieuw item in het menu.

  2. Voer demoproject1 de naam in.

  3. Selecteer Freestyle-project.

  4. Selecteer OK.

  5. Schakel op het tabblad Algemeen het selectievakje Beperken waar dit project kan worden uitgevoerd in en typ ubuntu in het vak Labelexpressie. U ziet een bevestigingsbericht dat het label wordt bediend door de cloudconfiguratie die in de vorige stap is gemaakt.

    Setting up a new Jenkins job

  6. Selecteer Git in het tabblad Broncodebeheer en voeg de volgende URL toe in het veld URL van opslagplaats: https://github.com/spring-projects/spring-petclinic.git

  7. In het tabblad Compileren selecteert u Compilatiestap toevoegen en vervolgens Top-level Maven-doelstellingen aanroepen. Voer package in het veld Doelstellingen in.

  8. Selecteer Opslaan.

De nieuwe taak in een Azure VM-agent bouwen

  1. Selecteer de taak die u in de vorige stap hebt gemaakt.

  2. Selecteer Nu bouwen. Er wordt een nieuwe build in de wachtrij geplaatst, maar wordt pas gestart als er een agent-VM in uw Azure-abonnement wordt gemaakt.

  3. Zodra de bewerking is voltooid, gaat u naar Console Output. U ziet dat de bewerking op afstand is uitgevoerd in een Azure-agent.

    Console output

Volgende stappen