Tutorial: Skalieren von Jenkins-Bereitstellungen mit Azure-VM-AgentsTutorial: Scale Jenkins deployments with Azure VM agents

Dieses Tutorial erläutert, wie Sie das Jenkins-Plug-In für Azure-VM-Agents verwenden, um mit in Azure ausgeführten virtuellen Linux-Computern bedarfsgesteuert Kapazität hinzuzufügen.This tutorial shows how to use the Jenkins Azure VM Agents plugin to add on-demand capacity with Linux virtual machines running in Azure.

In diesem Lernprogramm lernen Sie Folgendes:In this tutorial, you will:

  • Installieren des Plug-Ins für Azure-VM-AgentsInstall the Azure VM Agents plugin
  • Konfigurieren des Plug-Ins für das Erstellen von Ressourcen in Ihrem Azure-AbonnementConfigure the plugin to create resources in your Azure subscription
  • Einrichten der Computeressourcen, die für jeden Agent verfügbar sindSet the compute resources available to each agent
  • Einrichten des Betriebssystems und der Tools auf jedem AgentSet the operating system and tools installed on each agent
  • Erstellen eines neuen Jenkins-Freestyle-AuftragsCreate a new Jenkins freestyle job
  • Ausführen des Auftrags in einem Azure-VM-AgentRun the job on an Azure VM agent

Installieren des Azure-VM-Agents-Plug-InInstall Azure VM Agents plugin

  1. Wählen Sie im Jenkins-Dashboard die Optionen Manage Jenkins und dann Manage Plugins aus.From the Jenkins dashboard, select Manage Jenkins, then select Manage Plugins.

  2. Wählen Sie die Registerkarte Available, und suchen Sie nach Azure VM Agents.Select the Available tab, then search for Azure VM Agents. Aktivieren Sie das Kontrollkästchen neben dem Eintrag für das Plug-In, und wählen Sie Install without restart im unteren Bereich des Dashboards.Select the checkbox next to the entry for the plugin and select Install without restart from the bottom of the dashboard.

Konfigurieren des Plug-Ins für Azure-VM-AgentsConfigure the Azure VM Agents plugin

  1. Wählen Sie im Jenkins-Dashboard die Optionen Manage Jenkins und dann Configure System aus.From the Jenkins dashboard, select Manage Jenkins, then Configure System.

  2. Scrollen Sie zum Ende der Seite. Suchen Sie den Abschnitt Cloud die Dropdownliste Add new cloud, und wählen Sie Microsoft Azure-VM-Agents.Scroll to the bottom of the page and find the Cloud section with the Add new cloud dropdown and choose Microsoft Azure VM Agents.

  3. Wählen Sie aus der Dropdownliste Add im Abschnitt Azure Credentials einen vorhandenen Dienstprinzipal aus.Select an existing service principal from Add drop-down in the Azure Credentials section. Wenn kein Dienstprinzipal aufgelistet ist, führen Sie folgende Schritte aus, um für Ihr Azure-Konto einen Dienstprinzipal zu erstellen und zu Ihrer Jenkins-Konfiguration hinzuzufügen:If none is listed, perform the following steps to create a service principal for your Azure account and add it to your Jenkins configuration:

    a.a. Wählen Sie die Option Add neben Azure Credentials, und wählen Sie Jenkins aus.Select Add next to Azure Credentials and choose Jenkins. b.b. Wählen Sie im Dialogfeld Add Credentials aus der Dropdownliste Kind die Option Microsoft Azure Service Principal aus.In the Add Credentials dialog, select Microsoft Azure Service Principal from the Kind drop-down. c.c. Erstellen Sie über die Azure CLI oder die Cloud Shell einen Active Directory-Dienstprinzipal.Create an Active Directory Service principal from the Azure CLI or Cloud Shell.

    az ad sp create-for-rbac --name jenkins_sp --password secure_password
    
    {
        "appId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBB",
        "displayName": "jenkins_sp",
        "name": "http://jenkins_sp",
        "password": "secure_password",
        "tenant": "CCCCCCCC-CCCC-CCCC-CCCCCCCCCCC"
    }
    

    d.d. Geben Sie die Anmeldeinformationen des Dienstprinzipals im Dialogfeld Add credentials ein.Enter the credentials from the service principal into the Add credentials dialog. Wenn Sie Ihre Azure-Abonnement-ID nicht kennen, können Sie sie mithilfe der CLI abfragen:If you don't know your Azure subscription ID, you can query it from the CLI:

    az account list
    
       {
           "cloudName": "AzureCloud",
           "id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
           "isDefault": true,
           "name": "Visual Studio Enterprise",
           "state": "Enabled",
           "tenantId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCC",
           "user": {
           "name": "raisa@fabrikam.com",
           "type": "user"
           }
    

    Der fertig gestellte Dienstprinzipal sollte folgende Werte verwenden: das Feld id für die Subscription ID, den appId-Wert für die Client ID, password für das Client Secret und tenant für die Tenant ID.The completed service principal should use the id field for Subscription ID, the appId value for Client ID, password for Client Secret, and tenant for Tenant ID. Wählen Sie Add, um den Dienstprinzipal hinzuzufügen, und konfigurieren Sie dann das Plug-In für die Verwendung der neu erstellten Anmeldeinformationen.Select Add to add the service principal and then configure the plugin to use the newly created credential.

    Konfigurieren eines Azure-Dienstprinzipals

  4. Behalten Sie unter Ressourcengruppenname die Option Neu erstellen bei, und geben Sie myJenkinsAgentGroup ein.In the Resource Group Name section, leave Create new selected and enter myJenkinsAgentGroup.

  5. Wählen Sie Verify configuration, um eine Verbindung mit Azure herzustellen und die Profileinstellungen zu testen.Select Verify configuration to connect to Azure to test the profile settings.

  6. Wählen Sie Apply, um die Plug-In-Konfiguration zu aktualisieren.Select Apply to update the plugin configuration.

Konfigurieren von Agent-RessourcenConfigure agent resources

Konfigurieren Sie eine Vorlage zum Definieren eines Azure-VM-Agents.Configure a template for use to define an Azure VM agent. Diese Vorlage definiert die Computeressourcen, über die jeder Agent nach der Erstellung verfügt.This template defines the compute resources each agent has when created.

  1. Wählen Sie die Option Add neben Add Azure Virtual Machine Template aus.Select Add next to Add Azure Virtual Machine Template.

  2. Geben Sie defaulttemplate als Name ein.Enter defaulttemplate for the Name

  3. Geben Sie ubuntu als Label ein.Enter ubuntu for the Label

  4. Wählen Sie im Kombinationsfeld die gewünschte Azure-Region aus.Select the desired Azure region from the combo box.

  5. Wählen Sie aus der Dropdownliste unter Virtual Machine Size eine VM-Größe aus.Select a VM size from the drop-down under Virtual Machine Size. Für dieses Tutorial ist eine Standard_DS1_v2-Größe für allgemeine Zwecke ausreichend.A general-purpose Standard_DS1_v2 size is fine for this tutorial.

  6. Behalten Sie den Wert 60 unter Retention time bei.Leave the Retention time at 60. Diese Einstellung legt die Anzahl der Minuten fest, die Jenkins warten kann, bevor die Zuordnung von Agents im Leerlauf aufgehoben wird.This setting defines the number of minutes Jenkins can wait before it deallocated idle agents. Geben Sie 0 an, wenn Sie nicht möchten, dass Agents im Leerlauf automatisch entfernt werden.Specify 0 if you do not want idle agents to be removed automatically.

    Allgemeine VM-Konfiguration

Konfigurieren von Betriebssystem und Tools des AgentsConfigure agent operating system and tools

Wählen Sie im Abschnitt Image Configuration der Plug-In-Konfiguration die Option Ubuntu 16.04 LTS aus.In the Image Configuration section of the plugin configuration, select Ubuntu 16.04 LTS. Aktivieren Sie die Kontrollkästchen neben Install Git (Latest), Install Maven (V3.5.0) und Install Docker, um diese Tools in neu erstellten Agents zu installieren.Check the boxes next to Install Git (Latest), Install Maven (V3.5.0), and Install Docker to install these tools on newly created agents.

Konfigurieren von Betriebssystem und Tools für den virtuellen Computer

Wählen Sie die Option Add neben Admin Credentials aus, und wählen Sie dann Jenkins.Select Add next to Admin Credentials, then select Jenkins. Geben Sie einen Benutzernamen und ein Kennwort für die Anmeldung bei den Agents an. Stellen Sie sicher, dass diese Informationen die Richtlinien für Benutzernamen und Kennwörter für Verwaltungskonten auf virtuellen Azure-Computern erfüllen.Enter a username and password used to sign in to the agents, making sure they satisfy the username and password policy for administrative accounts on Azure VMs.

Wählen Sie Verify Template, um die Konfiguration zu überprüfen, und klicken Sie dann auf Save, um Ihre Änderungen zu speichern und zum Jenkins-Dashboard zurückzukehren.Select Verify Template to verify the configuration and then select Save to save your changes and return to the Jenkins dashboard.

Erstellen eines Auftrags in JenkinsCreate a job in Jenkins

  1. Klicken Sie im Jenkins-Dashboard auf New Item.Within the Jenkins dashboard, click New Item.
  2. Geben Sie demoproject1 als Namen ein, wählen Sie Freestyle project, und klicken Sie auf OK.Enter demoproject1 for the name and select Freestyle project, then select OK.
  3. Wählen Sie auf der Registerkarte General die Option Restrict where this project can be run aus, und geben Sie ubuntu in Label Expression ein.In the General tab, choose Restrict where project can be run and type ubuntu in Label Expression. In einer Meldung wird bestätigt, dass die Bezeichnung von der im vorherigen Schritt erstellten Cloudkonfiguration unterstützt wird.You see a message confirming that the label is served by the cloud configuration created in the previous step. Einrichten eines AuftragsSet up job
  4. Wählen Sie auf der Registerkarte Source Code Management die Option Git aus, und geben Sie im Feld Repository URL die folgende URL ein: https://github.com/spring-projects/spring-petclinic.gitIn the Source Code Management tab, select Git and add the following URL into the Repository URL field: https://github.com/spring-projects/spring-petclinic.git
  5. Wählen Sie auf der Registerkarte Build die Option Add build step und dann Invoke top-level Maven targets aus.In the Build tab, select Add build step, then Invoke top-level Maven targets. Geben Sie package in das Feld Goals ein.Enter package in the Goals field.
  6. Klicken Sie zum Speichern der Auftragsdefinition auf Save.Select Save to save the job definition.

Erstellen des neuen Auftrags in einem Azure-VM-AgentBuild the new job on an Azure VM agent

  1. Wechseln Sie zurück zum Jenkins-Dashboard.Go back to the Jenkins dashboard.
  2. Wählen Sie den im vorherigen Schritt erstellten Auftrag aus, und klicken Sie auf Build now.Select the job you created in the previous step, then click Build now. Ein neuer Build wird in die Warteschlange eingereiht, jedoch erst gestartet, wenn in Ihrem Azure-Abonnement eine Agent-VM erstellt wurde.A new build is queued, but does not start until an agent VM is created in your Azure subscription.
  3. Nachdem der Build abgeschlossen ist, wechseln Sie zu Console output (Konsolenausgabe).Once the build is complete, go to Console output. Sie sehen, dass der Build remote in einem Azure-Agent ausgeführt wurde.You see that the build was performed remotely on an Azure agent.

Konsolenausgabe

Problembehandlung beim Jenkins-Plug-InTroubleshooting the Jenkins plugin

Wenn bei den Jenkins-Plug-Ins Fehler auftreten, melden Sie das Problem auf der Jenkins-JIRA-Seite für die jeweilige Komponente.If you encounter any bugs with the Jenkins plugins, file an issue in the Jenkins JIRA for the specific component.

Nächste SchritteNext steps