Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Para implantar um aplicativo Web Java no Azure, você pode usar a CLI do Azure em um Pipeline do Jenkins. Neste tutorial, você realizará as seguintes tarefas:
- Criar uma VM Jenkins
- Configurar Jenkins
- Criar um aplicativo Web no Azure
- Preparar um repositório github
- Criar pipeline do Jenkins
- Execute o pipeline e verifique o aplicativo web
Pré-requisitos
- Assinatura do Azure: Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Jenkins - Instalar o Jenkins em uma VM do Linux
- CLI do Azure: instalar a CLI do Azure (versão 2.0.67 ou superior) no servidor Jenkins.
Configurar Jenkins
As etapas a seguir mostram como instalar o JDK do Java e o Maven necessários no controlador Jenkins:
Entre no controlador Jenkins usando o SSH.
Baixe e instale o build do Azul Zulu do OpenJDK para Azure de um repositório apt-get:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main" sudo apt-get -q update sudo apt-get -y install zulu-8-azure-jdkExecute o seguinte comando para instalar o Maven:
sudo apt-get install -y maven
Adicionar o principal de serviço do Azure a uma credencial Jenkins
As etapas a seguir mostram como especificar sua credencial do Azure:
Verifique se o plug-in de Credenciais está instalado.
No painel do Jenkins, selecione Credenciais –> Sistema ->.
Selecione credenciais globais (irrestritas).
Selecione Adicionar Credenciais para adicionar um princípio de serviço do Microsoft Azure. Verifique se o tipo de credencial é Nome de usuário com senha e insira os seguintes itens:
-
Nome de usuário: Entidade de serviço
appId -
Senha: Principal de serviço
password -
ID: Identificador de credencial (como
AzureServicePrincipal)
-
Nome de usuário: Entidade de serviço
Criar um Serviço de Aplicativo do Azure para implantar o aplicativo Web Java
Use az appservice plan create para criar um plano de serviço de aplicativo do Azure com a camada de preço GRÁTIS:
az appservice plan create \
--name <app_service_plan> \
--resource-group <resource_group> \
--sku FREE
Pontos principais:
- O plano de serviço de aplicativo define os recursos físicos usados para hospedar seus aplicativos.
- Todos os aplicativos atribuídos a um plano de serviço de aplicativo compartilham esses recursos.
- Os planos de appservice permitem economizar custo ao hospedar vários aplicativos.
Criar um aplicativo Web do Azure
Use az webapp create para criar uma definição de aplicativo Web no plano do myAppServicePlan Serviço de Aplicativo.
az webapp create \
--name <app_name> \
--resource-group <resource_group> \
--plan <app_service_plan>
Pontos principais:
- A definição do aplicativo Web fornece uma URL para acessar seu aplicativo e configura várias opções para implantar seu código no Azure.
- Substitua o marcador
<app_name>por um nome de aplicativo exclusivo. - O nome do aplicativo faz parte do nome de domínio padrão do aplicativo Web. Portanto, o nome precisa ser exclusivo em todos os aplicativos no Azure.
- Você pode mapear uma entrada de nome de domínio personalizada para o aplicativo Web antes de expô-la aos usuários.
Configurar Java
Use o comando az appservice web config update para configurar o ambiente de execução Java para o aplicativo:
az webapp config set \
--name <app_name> \
--resource-group <resource_group> \
--java-version 1.8 \
--java-container Tomcat \
--java-container-version 8.0
Preparar um repositório github
Abra o repositório Simple Java Web App for Azure.
Selecione o botão Bifurcação para bifurcar o repositório em sua própria conta do GitHub.
Abra o arquivo Jenkinsfile clicando no nome do arquivo.
Selecione o ícone de lápis para editar o arquivo.
Atualize a ID da assinatura e a ID do locatário.
withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>', 'AZURE_TENANT_ID=<tenant_id>'])Atualize o grupo de recursos e o nome do aplicativo Web nas linhas 22 e 23, respectivamente.
def resourceGroup = '<resource_group>' def webAppName = '<app_name>'Atualizar a ID da credencial em sua instância do Jenkins
withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Criar pipeline do Jenkins
Faça o seguinte para criar um pipeline do Jenkins:
Abra o Jenkins em um navegador da Web.
Selecione Novo Item.
Insira um nome para o cargo.
Selecione Pipeline.
Selecione OK.
Selecione Pipeline.
Para Definição, selecione Pipeline Script do SCM.
Para O SCM, selecione Git.
Insira a URL do GitHub para seu repositório bifurcado:
https:\<forked_repo\>.gitSelecione Salvar
Testar seu pipeline
Vá para o pipeline que você criou
Selecione Compilar Agora
Após a conclusão do build, selecione Saída do Console para ver os detalhes do build.
Verificar seu aplicativo Web
Faça o seguinte para verificar se o arquivo WAR foi implantado com êxito em seu aplicativo Web:
Navegue até a seguinte URL:
http://<app_name>.azurewebsites.net/api/calculator/pingVocê deverá ver um texto semelhante ao seguinte:
Welcome to Java Web App!!! This is updated! Today's dateNavegue até a URL a seguir (substitua <x> e <y> por dois valores a serem somados): http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>.
Implantar no Serviço de Aplicativo do Azure no Linux
O Serviço de Aplicativo também pode hospedar aplicativos Web nativamente no Linux em pilhas de aplicativos compatíveis. Ele também pode executar contêineres personalizados do Linux (também conhecido como Aplicativo Web para Contêineres).)
Você pode modificar o script para implantar em um Serviço de Aplicativo do Azure no Linux. O Serviço de Aplicativo no Linux dá suporte ao Docker. Dessa forma, você fornece um Dockerfile que empacota seu aplicativo web com tempo de execução do serviço em uma imagem Docker. O plug-in cria a imagem, a envia por push para um registro do Docker e implanta a imagem em seu aplicativo Web.
Consulte Migrar software personalizado para o Serviço de Aplicativo do Azure usando um contêiner personalizado para criar um Serviço de Aplicativo do Azure no Linux e um Registro de Contêiner do Azure.
az group create --name myResourceGroup2 --location westus2 az acr create --name myACRName --resource-group myResourceGroup2 --sku Basic --admin-enabled true az appservice plan create --name myAppServicePlan --resource-group myResourceGroup2 --is-linux az webapp create --resource-group myResourceGroup2 --plan myAppServicePlan --name myApp --deployment-container-image-name myACRName.azurecr.io/calculator:latestVerifique se o plug-in do Docker Pipeline está instalado.
No mesmo repositório Simple Java Web App for Azure que você bifurcou, edite o arquivo Jenkinsfile2 da seguinte maneira:
Atualize a ID da assinatura e a ID do locatário.
withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>', 'AZURE_TENANT_ID=<myTenantId>']) {Atualize os nomes do grupo de recursos, do aplicativo web e do ACR (substituindo os espaços reservados por seus valores).
def webAppResourceGroup = '<resource_group>' def webAppName = '<app_name>' def acrName = '<registry>'Atualize
<azsrvprincipal\>com a sua ID de credencialwithCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Crie um novo pipeline do Jenkins como fizemos ao implantar na aplicação web do Azure no Windows usando
Jenkinsfile2.Execute sua nova tarefa.
Para verificar, na CLI do Azure, execute o seguinte comando:
az acr repository list -n <myRegistry> -o jsonVocê deverá ver resultados semelhantes aos seguintes:
[ "calculator" ]Navegue até
http://<app_name>.azurewebsites.net/api/calculator/ping(substituindo o espaço reservado). Você deverá ver resultados semelhantes ao seguinte:Welcome to Java Web App!!! This is updated! Today's dateNavegue até
http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>(substituindo os marcadores de posição). Os valores que você especificar paraxeysão somados e exibidos.