Ridimensionare le distribuzioni di Jenkins per soddisfare la richiesta con agenti di macchine virtuali di AzureScale your Jenkins deployments to meet demand with Azure VM agents

In questa esercitazione viene illustrato come usare il plug-in di Agente di macchine virtuali di Azure di Jenkins per aggiungere capacità su richiesta con macchine virtuali Linux in esecuzione in Azure.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 questa esercitazione si apprenderà come:In this tutorial, you will:

  • Installare il plug-in di Agente di macchine virtuali di AzureInstall the Azure VM Agents plugin
  • Configurare il plug-in per creare risorse nella sottoscrizione di AzureConfigure the plugin to create resources in your Azure subscription
  • Impostare le risorse di calcolo disponibili per ogni agenteSet the compute resources available to each agent
  • Impostare il sistema operativo e gli strumenti installati in ogni agenteSet the operating system and tools installed on each agent
  • Creare un nuovo processo Freestyle JenkinsCreate a new Jenkins freestyle job
  • Eseguire il processo in un agente di macchine virtuali di AzureRun the job on an Azure VM agent

PrerequisitiPrerequisites

  • Una sottoscrizione di Azure.An Azure subscription
  • Un server master Jenkins.A Jenkins master server. Se non è disponibile, consultare la Guida introduttiva per impostarne uno in Azure.If you don't have one, view the quickstart to set up one in Azure.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Installare il plug-in Agenti di macchine virtuali di AzureInstall Azure VM Agents plugin

Suggerimento

Se Jenkins è stato implementato in Azure usando il modello di soluzione, il plug-in di Agente di macchine virtuali di Azure è già installato.If you deployed Jenkins on Azure using the solution template, the Azure VM Agent plugin is already installed.

  1. Dal dashboard di Jenkins selezionare Manage Jenkins (Gestione Jenkins), quindi selezionare Manage Plugins (Gestione plug-in).From the Jenkins dashboard, select Manage Jenkins, then select Manage Plugins.
  2. Selezionare la scheda Disponibili, quindi cercare Azure VM Agents (Agenti di macchine virtuali di Azure).Select the Available tab, then search for Azure VM Agents. Selezionare la casella di controllo accanto alla voce del plug-in, quindi selezionare Install without restart (Installa senza riavviare) nella parte inferiore del dashboard.Select the checkbox next to the entry for the plugin and select Install without restart from the bottom of the dashboard.

Configurare il plug-in di Agente di macchine virtuali di AzureConfigure the Azure VM Agents plugin

  1. Dal dashboard di Jenkins selezionare Manage Jenkins (Gestione Jenkins), quindi selezionare Configurazione sistema.From the Jenkins dashboard, select Manage Jenkins, then Configure System.
  2. Scorrere fino alla fine della pagina per trovare la sezione Cloud con l'elenco a discesa Add new cloud (Aggiungi nuovo cloud), quindi scegliere Microsoft Azure VM Agents (Agenti di macchine virtuali di Azure).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. Selezionare un'entità servizio esistente dal menu a discesa Aggiungi nella sezione Azure Credentials (Credenziali di Azure).Select an existing service principal from Add drop-down in the Azure Credentials section. Se non è elencata alcuna entità servizio, eseguire la procedura seguente per creare un'entità servizio per un account di Azure e aggiungerla alla configurazione di Jenkins: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. Selezionare Aggiungi accanto ad Azure Credentials (Credenziali di Azure), quindi scegliere Jenkins.Select Add next to Azure Credentials and choose Jenkins.
    b.b. Nella finestra di dialogo Aggiungi credenziali, selezionare Microsoft Azure Service Principal (Entità servizio di Microsoft Azure) dall'elenco a discesa Tipologia.In the Add Credentials dialog, select Microsoft Azure Service Principal from the Kind drop-down.
    c.c. Creare un'entità servizio Active Directory dall'interfaccia della riga di comando di Azure o da Cloud Shell.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. Immettere le credenziali dall'entità servizio nella finestra di dialogo Aggiungi credenziali.Enter the credentials from the service principal into the Add credentials dialog. Se non si conosce l'ID sottoscrizione Azure, è possibile eseguire una query dall'interfaccia della riga di comando: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"
           }
    

    L'entità servizio completata dovrebbe usare il campo id per ID sottoscrizione, il valore appId per ID client, password per Segreto cliente un URL per l'Endpoint di token OAuth 2.0 di https://login.windows.net/<tenant_value>.The completed service principal should use the id field for Subscription ID, the appId value for Client ID, password for Client Secret, and a URL for OAuth 2.0 Token Endpoint of https://login.windows.net/<tenant_value>. Selezionare Aggiungi per aggiungere l'entità servizio, quindi configurare il plug-in per usare le nuove credenziali create.Select Add to add the service principal and then configure the plugin to use the newly created credential.

    Configurare un'entità servizio di Azure

  4. Nella sezione Nome gruppo di risorse, mantenere selezionato Crea nuovo oggetto e immettere myJenkinsAgentGroup.In the Resource Group Name section, leave Create new selected and enter myJenkinsAgentGroup.

  5. Selezionare Verifica configurazione per connettersi ad Azure e verificare le impostazioni del profilo.Select Verify configuration to connect to Azure to test the profile settings.
  6. Selezionare Applica per aggiornare la configurazione del plug-in.Select Apply to update the plugin configuration.

Configurare le risorse di un agenteConfigure agent resources

Configurare un modello da usare per definire un agente di macchine virtuali di Azure.Configure a template for use to define an Azure VM agent. Questo modello definisce le risorse di calcolo di cui dispone ogni agente quando viene creato.This template defines the compute resources each agent has when created.

  1. Selezionare Aggiungi vicino a Add Azure Virtual Machine Template (Aggiungi un modello di macchina virtuale di Azure).Select Add next to Add Azure Virtual Machine Template.
  2. Immettere defaulttemplate per il NomeEnter defaulttemplate for the Name
  3. Immettere ubuntu per l'EtichettaEnter ubuntu for the Label
  4. Selezionare l'area di Azure desiderata dalla casella combinata.Select the desired Azure region from the combo box.
  5. Selezionare le dimensioni macchina virtuale dall'elenco a discesa sotto Dimensioni macchina virtuale.Select a VM size from the drop-down under Virtual Machine Size. Per questa esercitazione sono appropriate delle dimensioni Standard_DS1_v2 per un uso generico.A general-purpose Standard_DS1_v2 size is fine for this tutorial.
  6. Lasciare un Periodo di memorizzazione di 60.Leave the Retention time at 60. Questa impostazione definisce il numero di minuti per cui Jenkins può attendere prima di deallocare un agente inattivo.This setting defines the number of minutes Jenkins can wait before it deallocated idle agents. Se non si vuole eliminare automaticamente gli agenti inattivi, immettere 0.Specify 0 if you do not want idle agents to be removed automatically.

    Configurazione generale di una macchina virtuale

Configurare il sistema operativo e gli strumenti di un agenteConfigure agent operating system and tools

Nella sezione Image Configuration (Configurazione dell'immagine) della configurazione del plug-in, selezionare Ubuntu 16.04 LTS.In the Image Configuration section of the plugin configuration, select Ubuntu 16.04 LTS. Selezionare le caselle accanto a Install Git (Latest) (Installare Git, versione più recente) e installare Maven (V3.5.0), e Installare Docker per installare questi strumenti per gli agenti appena creati.Check the boxes next to Install Git (Latest), Install Maven (V3.5.0), and Install Docker to install these tools on newly created agents.

Configurazione del sistema operativo e degli strumenti della macchina virtuale

Selezionare Aggiungi accanto a Credenziali amministratore, quindi selezionare Jenkins.Select Add next to Admin Credentials, then select Jenkins. Immettere un nome utente e una password usati per accedere agli agenti, assicurandosi che soddisfino i criteri di nome utente e password per gli account amministrativi su macchine virtuali di Azure.Enter a username and password used to log in to the agents, making sure they satisfy the username and password policy for administrative accounts on Azure VMs.

Selezionare Verify Template (Verifica modello) per verificare la configurazione, quindi selezionare Salva per salvare le modifiche e tornare al dashboard di Jenkins.Select Verify Template to verify the configuration and then select Save to save your changes and return to the Jenkins dashboard.

Creare un processo in JenkinsCreate a job in Jenkins

  1. Nel dashboard di Jenkins fare clic su New Item.Within the Jenkins dashboard, click New Item.
  2. Immettere demoproject1 per il nome e selezionare Freestyle project (Progetto Freestyle), quindi selezionare OK.Enter demoproject1 for the name and select Freestyle project, then select OK.
  3. Nella scheda Generale selezionare Restrict where project can be run (Limitare l'area di esecuzione del progetto), quindi digitare ubuntu in Espressione etichetta.In the General tab, choose Restrict where project can be run and type ubuntu in Label Expression. Verrà visualizzato un messaggio di conferma che l'etichetta viene servita dalla configurazione cloud creata nel passaggio precedente.You see a message confirming that the label is served by the cloud configuration created in the previous step. Configurazione del processoSet up job
  4. Selezionare la scheda Gestione del codice sorgente, abilitare Git e immettere l'URL seguente nel campo URL del repository: 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. Nella scheda Genera selezionare Aggiungi istruzione di compilazione, quindi scegliere Invoke top-level Maven targets (Richiama destinazioni Maven di primo livello).In the Build tab, select Add build step, then Invoke top-level Maven targets. Immettere package nel campo Obiettivi.Enter package in the Goals field.
  6. Selezionare Salva per salvare la configurazione del processo.Select Save to save the job definition.

Generare un nuovo processo in un agente di macchine virtuali di AzureBuild the new job on an Azure VM agent

  1. Tornare al dashboard di Jenkins.Go back to the Jenkins dashboard.
  2. Selezionare il processo creato nel passaggio precedente, quindi fare clic su Build now (Genera adesso).Select the job you created in the previous step, then click Build now. Viene accodata una nuova compilazione che tuttavia non è avviata finché non viene creato un agente di macchine virtuali nella sottoscrizione di Azure.A new build is queued, but does not start until an agent VM is created in your Azure subscription.
  3. Una volta completata la compilazione, passare a Console output (Output console).Once the build is complete, go to Console output. Si vedrà che la compilazione è stata eseguita in remoto in un agente di Azure.You see that the build was performed remotely on an Azure agent.

Output console

Passaggi successiviNext steps