Tutorial: Dimensionar implantações do Jenkins com VM em execução no Azure

Importante

Muitos serviços do Azure têm plug-ins Jenkins. Alguns desses plug-ins estarão sem suporte a partir de 29 de fevereiro de 2024. A CLI do Azure é a maneira atualmente recomendada de integrar o Jenkins aos serviços do Azure. Para obter mais informações, consulte o artigo Jenkins plug-ins for Azure.

Este tutorial mostra como criar máquinas virtuais Linux no Azure e adicionar a VM como um nó de trabalho ao Jenkins.

Neste tutorial, vai:

  • Criar máquina de agente
  • Adicionar agente ao Jenkins
  • Criar um trabalho de compilação para fins gerais novo no Jenkins
  • Executar o trabalho num agente de VM do Azure

Pré-requisitos

Configurar a máquina virtual do agente

  1. Use az group create para criar um grupo de recursos do Azure.

    az group create --name <resource_group> --location <location>
    
  2. Use az vm create para criar uma máquina virtual.

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    Pontos principais:

    • Você também pode carregar sua chave ssh com o seguinte comando --ssh-key-value <ssh_path>.
  3. Instale o JDK.

    1. Faça login na máquina virtual usando uma ferramenta SSH.

      ssh username@123.123.123.123
      
    2. Instale o JDK com o apt. Você também pode instalar com outras ferramentas de gerenciador de pacotes, como yum ou pacman.

      sudo apt-get install -y default-jdk
      
    3. Após a conclusão da instalação, execute java -version para verificar o ambiente Java. A saída incluirá os números de versão associados a várias partes do JDK.

Configurar URL do Jenkins

Se você usa JNLP, precisará configurar a URL do Jenkins.

  1. No menu, selecione Gerenciar Jenkins.

  2. Em Configuração do Sistema, selecione Configurar Sistema.

  3. Verifique se o URL do Jenkins está definido para o endereço HTTP da sua instalação do Jenkins - http://<your_host>.<your_domain>:8080/.

  4. Selecione Guardar.

Adicionar agente ao Jenkins

  1. No menu, selecione Gerenciar Jenkins.

  2. Em Configuração do Sistema, selecione Gerenciar Nós e Nuvens.

  3. No menu, selecione Novo nó.

  4. Insira um valor para Nome do Nó.

  5. Selecione Agente Permanente.

  6. Selecione OK.

  7. Especifique valores para os seguintes campos:

    • Nome: especifique um nome exclusivo que identifique um agente na nova instalação do Jenkins. Esse valor pode ser diferente do nome do host do agente. No entanto, é conveniente torná-los os dois valores iguais. O valor do nome é permitido qualquer caractere especial da seguinte lista: ?*/\%!@#$^&|<>[]:;.

    • Diretório raiz remoto: um agente precisa ter um diretório dedicado ao Jenkins. Especifique o caminho para esse diretório no agente. É melhor usar um caminho absoluto, como /home/azureuser/work ou c:\jenkins. Este deve ser um caminho local para a máquina do agente. Não há necessidade de que este caminho seja visível a partir do mestre. Se você usar um caminho relativo, como ./jenkins-agent, o caminho será relativo ao diretório de trabalho fornecido pelo método Launch.

    • Rótulos: os rótulos são usados para agrupar agentes semanticamente relacionados em um grupo lógico. Por exemplo, você pode definir um rótulo de UBUNTU para todos os seus agentes que executam a distro Ubuntu do Linux.

    • Método de lançamento: Há duas opções para iniciar o nó Jenkins remoto: Agentes de lançamento via SSH e Agente de lançamento via execução de comando no mestre:

      • Agentes de lançamento via SSH: especifique os valores para os seguintes campos:

        • Host: endereço IP público da VM ou nome de domínio. Por exemplo, 123.123.123.123 ou example.com

        • Credenciais: selecione uma credencial a ser usada para efetuar login no host remoto. Você também pode selecionar o botão Adicionar para definir uma nova credencial e, em seguida, selecionar essa nova credencial depois de criada.

        • Estratégia de Verificação de Chave do Host: Controla como Jenkins verifica a chave SSH apresentada pelo host remoto durante a conexão.

        Node configuration example specifying a launch method of Launch agents via SSH.

      • Agente de lançamento através da execução de comando no mestre:

        • Faça o download do arquivo agent.jar de https://<your_jenkins_host_name>/jnlpJars/agent.jar. Por exemplo, https://localhost:8443/jnlpJars/agent.jar.

        • Carregar agent.jar para a sua máquina virtual

        • Inicie Jenkins com o comando ssh <node_host> java -jar <remote_agentjar_path>. Por exemplo, ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar.

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. Selecione Guardar.

Depois de definir as configurações, Jenkins adiciona a máquina virtual como um novo nó de trabalho.

Example of virtual machine as new work node

Criar uma tarefa no Jenkins

  1. No menu, selecione Novo Item.

  2. Digite demoproject1 para o nome.

  3. Selecione Projeto Freestyle.

  4. Selecione OK.

  5. No separador General (Geral), selecione Restrict where project can be run (“Restringir onde o projeto pode ser executado") e escreva ubuntu em Label Expression (Expressão da Etiqueta). Verá uma mensagem a confirmar que a etiqueta é fornecida pela configuração de cloud criada no passo anterior.

    Setting up a new Jenkins job

  6. No separador Source Code Management (Gestão de Código de Origem), selecione Git e adicione o seguinte URL ao campo Repository URL (URL do Repositório): https://github.com/spring-projects/spring-petclinic.git

  7. No separador Build (Compilar), selecione Add build step (Adicionar passo de compilação) e Invoke top-level Maven targets (Invocar destinos de Maven de nível superior). Introduza package no campo Goals (Objetivos).

  8. Selecione Guardar.

Compilar o trabalho novo num agente de VM do Azure

  1. Selecione o trabalho que você criou na etapa anterior.

  2. Selecione Compilar agora. Uma nova compilação é enfileirada, mas não é iniciada até que uma VM de agente seja criada em sua assinatura do Azure.

  3. Quando a compilação estiver concluída, vá para Saída da consola. Verá que a compilação foi executada remotamente num agente do Azure.

    Console output

Próximos passos

CI/CD to Azure App Service (CI/CD no Serviço de Aplicações do Azure)