Zelfstudie: Jenkins-implementaties schalen met VM die wordt uitgevoerd in Azure

Belangrijk

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

Deze zelfstudie laat zien hoe u een virtuele Linux-machine maakt in Azure en de VM als een werk knooppunt 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 agentmachine 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, voer uit om java -version 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 Systeemconfiguratiede optie Systeem configureren.

  3. Controleer of de Jenkins-URL is ingesteld op het HTTP-adres van uw Jenkins-installatie - .

  4. Selecteer Opslaan.

Agent toevoegen aan Jenkins

  1. Selecteer Jenkins beheren in het menu.

  2. Selecteer onder Systeemconfiguratiede optie Knooppunten en clouds beheren.

  3. Selecteer nieuw knooppunt in het menu.

  4. Voer een waarde in voor Knooppuntnaam.

  5. Selecteer Permanente agent.

  6. Selecteer OK.

  7. Geef waarden op voor de volgende velden:

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

    • Externe hoofdmap:een agent moet een map hebben die is toegewezen aan Jenkins. Geef het pad naar deze map op de agent op. U kunt het beste een absoluut pad gebruiken, zoals /home/azureuser/work of c:\jenkins . Dit moet een lokaal pad naar de agentmachine zijn. Het is niet nodig dat dit pad zichtbaar is vanuit de master. 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 te groepen in één logische groep. U kunt bijvoorbeeld een label van definiëren voor al uw agents die UBUNTU de Ubuntu-distributie van Linux uitvoeren.

    • Methode Launch:Er zijn twee opties om het externe Jenkins-knooppunt te starten: Agents starten via SSH en Agent starten via de uitvoering van de opdracht op de master:

      • Agents starten via SSH:geef de waarden voor de volgende velden op:

        • Host:openbaar IP-adres of domeinnaam van de 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 aan het maken.

        • Verificatiestrategie voor hostsleutels:hiermee bepaalt u hoe Jenkins de SSH-sleutel verifieert die door de externe host wordt gepresenteerd tijdens het maken van verbinding.

        Voorbeeld van knooppuntconfiguratie waarin een startmethode van Agents starten via SSH wordt opgegeven.

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

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

        • Upload agent.jar virtuele machine maken

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

        Voorbeeld van knooppuntconfiguratie waarin een startmethode van Agent starten wordt opgegeven via de uitvoering van de opdracht op de master.

  8. Selecteer Opslaan.

Nadat u de configuraties hebt definieert, voegt Jenkins de virtuele machine toe als een nieuw werk knooppunt.

Voorbeeld van een virtuele machine als nieuw werk knooppunt

Een taak maken in Jenkins

  1. Selecteer nieuw item in het menu.

  2. Voer demoproject1 in als naam.

  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 in het vak Labelexpressie. U ziet een bevestigingsbericht dat het label wordt bediend door de cloudconfiguratie die in de vorige stap is gemaakt.

    Een nieuwe Jenkins-taak instellen

  6. Selecteer Git in het tabblad Broncodebeheer en voeg de volgende URL toe in het veld URL van opslagplaats:

  7. In het tabblad Compileren selecteert u Compilatiestap toevoegen en vervolgens Top-level Maven-doelstellingen aanroepen. Voer package in het veld package 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. Een nieuwe build wordt in de wachtrij geplaatst, maar begint pas als er een agent-VM is gemaakt in uw Azure-abonnement.

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

Volgende stappen