Dimensionar implantações do Jenkins para atender à demanda com agentes de VM do AzureScale your Jenkins deployments to meet demand with Azure VM agents

Este tutorial mostra como usar o plug-in de Agentes de VM do Azure do Jenkins para adicionar capacidade sob demanda com máquinas virtuais Linux em execução no 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.

Neste tutorial, você irá:In this tutorial, you will:

  • Instalar o plug-in de Agentes de VM do AzureInstall the Azure VM Agents plugin
  • Configurar o plug-in para criar recursos em sua assinatura do AzureConfigure the plugin to create resources in your Azure subscription
  • Definir os recursos de computação disponíveis para cada agenteSet the compute resources available to each agent
  • Definir o sistema operacional e as ferramentas instaladas em cada agenteSet the operating system and tools installed on each agent
  • Criar um novo trabalho freestyle do JenkinsCreate a new Jenkins freestyle job
  • Executar o trabalho em um agente de VM do AzureRun the job on an Azure VM agent

Pré-requisitosPrerequisites

  • Uma assinatura do AzureAn Azure subscription
  • Um servidor mestre do Jenkins.A Jenkins master server. Se você não tiver um, exiba o guia de início rápido para configurar um no Azure.If you don't have one, view the quickstart to set up one in Azure.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Instale o plug-in de agentes da VM do AzureInstall Azure VM Agents plugin

Dica

Se você implantou o Jenkins no Azure usando o modelo de solução, o plug-in de Agente de VM do Azure já está instalado.If you deployed Jenkins on Azure using the solution template, the Azure VM Agent plugin is already installed.

  1. No painel do Jenkins, selecione Gerenciar o Jenkins e, em seguida, selecione Gerenciar Plug-ins.From the Jenkins dashboard, select Manage Jenkins, then select Manage Plugins.
  2. Selecione a guia Disponível e, em seguida, pesquise Agentes de VM do Azure.Select the Available tab, then search for Azure VM Agents. Selecione a caixa de seleção ao lado da entrada do plug-in e selecione Instalar sem reinicialização na parte inferior do painel.Select the checkbox next to the entry for the plugin and select Install without restart from the bottom of the dashboard.

Configurar o plug-in de Agentes de VM do AzureConfigure the Azure VM Agents plugin

  1. No painel do Jenkins, selecione Gerenciar o Jenkins e, em seguida, Configurar Sistema.From the Jenkins dashboard, select Manage Jenkins, then Configure System.
  2. Role até a parte inferior da página e encontre a seção Nuvem com a lista suspensa Adicionar nova nuvem e escolha Agentes de VM do Microsoft 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. Selecione uma entidade de serviço existente na lista suspensa Adicionar, na seção Credenciais do Azure.Select an existing service principal from Add drop-down in the Azure Credentials section. Se nenhuma estiver listada, execute as seguintes etapas para criar uma entidade de serviço para sua conta do Azure e adicioná-la à configuração do 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. Selecione Adicionar ao lado de Credenciais do Azure e escolha Jenkins.Select Add next to Azure Credentials and choose Jenkins.
    b.b. Na caixa de diálogo Adicionar Credenciais, selecione Entidade de Serviço do Microsoft Azure na lista suspensa Tipo.In the Add Credentials dialog, select Microsoft Azure Service Principal from the Kind drop-down.
    c.c. Crie uma Entidade de serviço do Active Directory por meio da CLI do Azure ou do 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. Insira as credenciais da entidade de serviço na caixa de diálogo Adicionar credenciais.Enter the credentials from the service principal into the Add credentials dialog. Se você não souber sua ID de assinatura do Azure, consulte-a na CLI: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"
           }
    

    A entidade de serviço concluída deve usar o campo id para ID da Assinatura , o appId valor para ID do Cliente, password para Segredo do Cliente e tenant para ID do Locatário.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. Selecione Adicionar para adicionar a entidade de serviço e, em seguida, configure o plug-in para usar a credencial recém-criada.Select Add to add the service principal and then configure the plugin to use the newly created credential.

    Configurar uma entidade de serviço do Azure

  4. Na seção Nome do Grupo de Recursos, deixe a opção Criar novo marcada e insira myJenkinsAgentGroup.In the Resource Group Name section, leave Create new selected and enter myJenkinsAgentGroup.

  5. Selecione Verificar configuração para se conectar ao Azure para testar as configurações de perfil.Select Verify configuration to connect to Azure to test the profile settings.
  6. Selecione Aplicar para atualizar a configuração de plug-in.Select Apply to update the plugin configuration.

Configurar recursos do agenteConfigure agent resources

Configure um modelo para usar na definição de um agente de VM do Azure.Configure a template for use to define an Azure VM agent. Esse modelo define os recursos de computação que cada agente tem quando é criado.This template defines the compute resources each agent has when created.

  1. Selecione Adicionar ao lado de Adicionar Modelo de Máquina Virtual do Azure.Select Add next to Add Azure Virtual Machine Template.
  2. Insira defaulttemplate no NomeEnter defaulttemplate for the Name
  3. Insira ubuntu no RótuloEnter ubuntu for the Label
  4. Selecione a região do Azure desejada na caixa de combinação.Select the desired Azure region from the combo box.
  5. Selecione um tamanho de VM na lista suspensa em Tamanho da Máquina Virtual.Select a VM size from the drop-down under Virtual Machine Size. Um tamanho Standard_DS1_v2 de uso geral é suficiente para este tutorial.A general-purpose Standard_DS1_v2 size is fine for this tutorial.
  6. Deixe a opção Tempo de retenção como 60.Leave the Retention time at 60. Essa configuração define o número de minutos que o Jenkins pode aguardar antes de desalocar agentes ociosos.This setting defines the number of minutes Jenkins can wait before it deallocated idle agents. Especifique 0 se não desejar que os agentes ociosos sejam removidos automaticamente.Specify 0 if you do not want idle agents to be removed automatically.

    Configuração geral da VM

Configurar o sistema operacional e as ferramentas do agenteConfigure agent operating system and tools

Na seção Configuração de Imagem da configuração de plug-in, selecione Ubuntu 16.04 LTS.In the Image Configuration section of the plugin configuration, select Ubuntu 16.04 LTS. Marque as caixas de seleção ao lado de Instalar o Git (Último), Instalar o Maven (V3.5.0) e Instalar o Docker para instalar essas ferramentas nos agentes recém-criados.Check the boxes next to Install Git (Latest), Install Maven (V3.5.0), and Install Docker to install these tools on newly created agents.

Configurar o sistema operacional e as ferramentas da VM

Selecione Adicionar ao lado de Credenciais de Administrador e, em seguida, selecione Jenkins.Select Add next to Admin Credentials, then select Jenkins. Insira um nome de usuário e senha usados para entrar nos agentes, verificando se eles atendem à política de nome de usuário e senha para as contas administrativas nas VMs do Azure.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.

Selecione Confirmar Modelo para confirmar a configuração e, em seguida, selecione Salvar para salvar as alterações e retornar ao painel do Jenkins.Select Verify Template to verify the configuration and then select Save to save your changes and return to the Jenkins dashboard.

Crie um trabalho no JenkinsCreate a job in Jenkins

  1. No painel do Jenkins, clique em Novo Item.Within the Jenkins dashboard, click New Item.
  2. Insira demoproject1 no nome e selecione Projeto Freestyle e, em seguida, selecione OK.Enter demoproject1 for the name and select Freestyle project, then select OK.
  3. Na guia Geral, escolha Restringir o local em que o projeto pode ser executado e digite ubuntu na Expressão de Rótulo.In the General tab, choose Restrict where project can be run and type ubuntu in Label Expression. Você verá uma mensagem confirmando que o rótulo é atendido pela configuração de nuvem criada na etapa anterior.You see a message confirming that the label is served by the cloud configuration created in the previous step. Configurar o trabalhoSet up job
  4. Na guia Gerenciamento de Código-Fonte, selecione Git e adicione a seguinte URL ao campo URL do Repositório: 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. Na guia Compilar, selecione Adicionar etapa de build e, em seguida, Invocar destinos de nível superior do Maven.In the Build tab, select Add build step, then Invoke top-level Maven targets. Insira package no campo Metas.Enter package in the Goals field.
  6. Selecione Salvar para salvar a definição de trabalho.Select Save to save the job definition.

Compilar o novo trabalho em um agente de VM do AzureBuild the new job on an Azure VM agent

  1. Volte para o painel do Jenkins.Go back to the Jenkins dashboard.
  2. Selecione o trabalho criado na etapa anterior e, em seguida, clique em Compilar agora.Select the job you created in the previous step, then click Build now. Um novo build será colocado na fila, mas não será iniciado até que uma VM do agente seja criada em sua assinatura do Azure.A new build is queued, but does not start until an agent VM is created in your Azure subscription.
  3. Quando a compilação estiver concluída, vá para Saída do Console.Once the build is complete, go to Console output. Você verá que o build foi executado remotamente em um agente do Azure.You see that the build was performed remotely on an Azure agent.

Saída do console

O plug-in do Jenkins de solução de problemasTroubleshooting the Jenkins plugin

Se você encontrar bugs com os plug-ins do Jenkins, registre um problema no JIRA do Jenkins para o componente específico.If you encounter any bugs with the Jenkins plugins, file an issue in the Jenkins JIRA for the specific component.

Próximas etapasNext steps