Compartilhar via


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

Importante

Embora muitos serviços do Azure tenham plug-ins Jenkins, a maioria desses plug-ins encerrou o suporte em 29 de fevereiro de 2024. A CLI do Azure é a maneira recomendada no momento de integrar o Jenkins aos serviços do Azure. Para obter mais informações, consulte o artigo plug-ins do Jenkins para o 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, você irá:

  • Criar máquina de agente
  • Adicionar agente ao Jenkins
  • Crie um novo job freestyle do Jenkins
  • Executar o trabalho em um 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 comando --ssh-key-value <ssh_path>a seguir.
  3. Instale o JDK.

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

      ssh username@123.123.123.123
      
    2. Instale o JDK com apt. Você também pode instalar com outras ferramentas do 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 a URL do Jenkins

Se você usar 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 a URL do Jenkins está definida como o endereço HTTP da instalação do Jenkins – http://<your_host>.<your_domain>:8080/.

  4. Clique em Salvar.

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 Node.

  4. Insira um valor para o 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 dentro da nova instalação do Jenkins. Esse valor pode ser diferente do nome do host do agente. No entanto, é conveniente tornar os dois valores iguais. O valor do nome é permitido para 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. Esse deve ser um caminho local para o computador do agente. Não é necessário que esse caminho fique visível 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 distribuição Ubuntu do Linux.

    • Método de inicialização: há duas opções para iniciar o nó remoto do Jenkins: iniciar agentes via SSH e Iniciar agente por meio da execução do comando no mestre:

      • Iniciar agentes 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 fazer logon no host remoto. Você também pode selecionar o botão Adicionar para definir uma nova credencial e, em seguida, selecionar essa nova credencial quando ela for criada.

        • Estratégia de verificação da chave de host: controla como o Jenkins verifica a chave SSH apresentada pelo host remoto durante a conexão.

        Exemplo de configuração de nó especificando um método de inicialização de agentes via SSH.

      • Inicie o agente por meio da execução do comando no mestre:

        • Baixe o agent.jar de https://<your_jenkins_host_name>/jnlpJars/agent.jar. Por exemplo, https://localhost:8443/jnlpJars/agent.jar.

        • Carregar agent.jar em sua máquina virtual

        • Inicie o 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.

        Exemplo de configuração de nó especificando um método de inicialização do agente por meio da execução do comando no servidor principal.

  8. Clique em Salvar.

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

Exemplo de máquina virtual como um novo nó de trabalho

Criar um trabalho no Jenkins

  1. No menu, selecione Novo Item.

  2. Introduza demoproject1 o nome.

  3. Selecione o projeto Freestyle.

  4. Selecione OK.

  5. Na guia Geral, escolha Restringir onde o projeto pode ser executado e digite ubuntu em Expressão de Rótulo. Você verá uma mensagem confirmando que o rótulo é atendido pela configuração de nuvem criada na etapa anterior.

    Configurando um novo trabalho do Jenkins

  6. Na guia Gerenciamento de Código-Fonte , selecione Git e adicione a seguinte URL no campo URL do Repositório : https://github.com/spring-projects/spring-petclinic.git

  7. Na guia Compilar, selecione Adicionar etapa de build e, em seguida, Invocar destinos de Maven de nível superior. Insira package no campo Metas .

  8. Clique em Salvar.

Criar o novo trabalho em um agente de VM do Azure

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

  2. Selecione Compilar agora. Um novo build é enfileirado, mas não é iniciado até que uma VM de agente seja criada em sua assinatura do Azure.

  3. Depois que o build for concluído, vá para a saída do Console. Você verá que o build foi executado remotamente em um agente do Azure.

    Saída do console

Próximas etapas