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
- Jenkins-installatie: Als u geen toegang hebt tot een Jenkins-installatie, configureert u Jenkins met behulp van Azure CLI
Virtuele machine van agent configureren
Gebruik az group create om een Azure-resourcegroep te maken.
az group create --name <resource_group> --location <location>
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>
.
- U kunt uw ssh-sleutel ook uploaden met de volgende opdracht
Installeer de JDK.
Meld u aan bij de virtuele machine met behulp van een SSH-hulpprogramma.
ssh username@123.123.123.123
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
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.
Selecteer Jenkins beheren in het menu.
Selecteer Onder Systeemconfiguratie de optie Systeem configureren.
Controleer of de Jenkins-URL is ingesteld op het HTTP-adres van uw Jenkins-installatie -
http://<your_host>.<your_domain>:8080/
.Selecteer Opslaan.
Agent toevoegen aan Jenkins
Selecteer Jenkins beheren in het menu.
Selecteer Onder Systeemconfiguratie de optie Knooppunten en clouds beheren.
Selecteer nieuw knooppunt in het menu.
Voer een waarde in voor de naam van het knooppunt.
Selecteer Permanente agent.
Selecteer OK.
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
ofc:\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
ofexample.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.
Start de agent via de uitvoering van de opdracht op de master:
Download het
agent.jar
vanhttps://<your_jenkins_host_name>/jnlpJars/agent.jar
. Bijvoorbeeld:https://localhost:8443/jnlpJars/agent.jar
.Uploaden
agent.jar
naar uw virtuele machineStart 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
.
Selecteer Opslaan.
Nadat u de configuraties hebt gedefinieerd, voegt Jenkins de virtuele machine toe als een nieuw werkknooppunt.
Een taak maken in Jenkins
Selecteer Nieuw item in het menu.
Voer
demoproject1
de naam in.Selecteer Freestyle-project.
Selecteer OK.
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.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
In het tabblad Compileren selecteert u Compilatiestap toevoegen en vervolgens Top-level Maven-doelstellingen aanroepen. Voer
package
in het veld Doelstellingen in.Selecteer Opslaan.
De nieuwe taak in een Azure VM-agent bouwen
Selecteer de taak die u in de vorige stap hebt gemaakt.
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.
Zodra de bewerking is voltooid, gaat u naar Console Output. U ziet dat de bewerking op afstand is uitgevoerd in een Azure-agent.