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.
Observação
O Azure Spring Apps é o novo nome para o serviço do Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos, como capturas de tela, vídeos e diagramas.
O Azure Spring Apps é uma plataforma totalmente gerenciada para desenvolvimento de microsserviços, com descoberta de serviços integrada e gerenciamento de configuração. O serviço facilita a implantação de aplicativos de microsserviço baseados no Spring Boot no Azure. Este tutorial demonstra como você pode usar a CLI do Azure no Jenkins para automatizar a CI/CD (integração e entrega contínua) para o Azure Spring Apps.
Neste tutorial, você concluirá estas tarefas:
- Provisionar uma instância de serviço e iniciar um aplicativo Java Spring
- Preparar o servidor Jenkins
- Usar a CLI do Azure em um pipeline do Jenkins para criar e implantar os aplicativos de microsserviço
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
- Conta do GitHub: se você não tiver uma conta do GitHub, crie uma conta gratuita antes de começar.
Provisionar uma instância de serviço e iniciar um aplicativo Java Spring
Usamos o Piggy Metrics como o aplicativo de serviço da Microsoft de exemplo e seguimos as mesmas etapas no Início Rápido: Iniciar um aplicativo Java Spring usando a CLI do Azure para provisionar a instância de serviço e configurar os aplicativos. Se você já passou pelo mesmo processo, pode pular para a próxima seção. Caso contrário, incluídos a seguir estão os comandos da CLI do Azure. Consulte o Início Rápido: inicie um aplicativo Java Spring usando a CLI do Azure para obter mais informações.
Seu computador local precisa atender ao mesmo pré-requisito que o servidor de build jenkins. Verifique se o seguinte está instalado para criar e implantar os aplicativos de microsserviço:
- Git
- JDK 8
- Maven 3.0 ou posterior
- CLI do Azure instalada, versão 2.0.67 ou superior
Instale a extensão do Azure Spring Apps:
az extension add --name springCrie um grupo de recursos para conter seu serviço do Azure Spring Apps:
az group create --location eastus --name <resource group name>Provisionar uma instância do Azure Spring Apps:
az spring create -n <service name> -g <resource group name>Fork o repositório Piggy Metrics para a sua conta do GitHub. No computador local, clone o repositório em um diretório chamado
source-code:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetricsConfigure o servidor de configuração. Certifique-se de substituir <o seu id> do GitHub pelo valor correto.
az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label configCompile o projeto:
cd piggymetrics mvn clean package -D skipTestsCrie os três microsserviços: gateway, serviço de autenticação e serviço de conta:
az spring app create --n gateway -s <service name> -g <resource group name> az spring app create --n auth-service -s <service name> -g <resource group name> az spring app create --n account-service -s <service name> -g <resource group name>Implante os aplicativos:
az spring app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar az spring app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar az spring app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jarAtribuir ponto de extremidade público ao gateway:
az spring app update -n gateway -s <service name> -g <resource group name> --is-public trueConsulte o aplicativo de gateway para obter a URL para que você possa verificar se o aplicativo está em execução.
az spring app show --name gateway | grep urlNavegue até a URL fornecida pelo comando anterior para executar o aplicativo PiggyMetrics.
Preparar o servidor Jenkins
Nesta seção, você prepara o servidor Jenkins para executar um build, o que é bom para teste. No entanto, devido à implicação de segurança, você deve usar um agente de VM do Azure ou um agente de Contêiner do Azure para criar um agente no Azure para executar seus builds.
Instalar plug-ins
Faça logon no servidor Jenkins.
Selecione Gerenciar Jenkins.
Selecione Gerenciar Plug-ins.
Na guia Disponível , selecione os seguintes plug-ins:
Se esses plug-ins não aparecerem na lista, verifique a guia Instalado para ver se eles já estão instalados.
Para instalar os plug-ins, selecione Baixar agora e instale após a reinicialização.
Reinicie o servidor Jenkins para concluir a instalação.
Adicione sua credencial do Principal de Serviço do Azure no repositório de credenciais do Jenkins
Você precisa de uma Entidade de Serviço do Azure para implantar no Azure. Para obter mais informações, consulte a seção Criar principal do serviço no tutorial Implantar no Azure App Service. A saída de
az ad sp create-for-rbacé algo como isto:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }No painel do Jenkins, selecione Credenciais>Sistema. Em seguida, selecione Credenciais globais (sem restrições).
Selecione Adicionar Credenciais.
Selecione Entidade de Serviço do Microsoft Azure como tipo.
Forneça valores para os seguintes campos:
- ID da assinatura: ID da assinatura do Azure
- ID do cliente: appid do principal de serviço
- Segredo do cliente: senha do principal de serviço
- ID do inquilino: ID do inquilino da Microsoft
- Ambiente do Azure: selecione o valor apropriado para seu ambiente. Por exemplo, use o Azure para o Azure Global
-
ID: Definir como
azure_service_principal. Usamos essa ID em uma etapa posterior neste artigo - Descrição: esse valor é opcional, mas recomendado do ponto de vista de documentação/manutenção.
Instale o Maven e a extensão Spring da CLI do Azure
O pipeline de exemplo usa o Maven para criar e a CLI do Azure para implantar na instância de serviço. Quando o Jenkins é instalado, ele cria uma conta de administrador chamada jenkins. Verifique se o usuário jenkins tem permissão para executar a extensão do Spring.
Conecte-se ao controlador Jenkins por meio do SSH.
Instale o Maven.
sudo apt-get install mavenVerifique se a CLI do Azure está instalada inserindo
az version. Se a CLI do Azure não estiver instalada, consulte Instalar a CLI do Azure.Mude para o
jenkinsusuário.sudo su jenkinsInstale a extensão spring:
az extension add --name spring
Criar um Jenkinsfile
Em seu próprio repositório ,
https://github.com/your_github_id/piggymetricscrie um Jenkinsfile na raiz.Atualize o arquivo da seguinte maneira. Certifique-se de substituir os valores de <nome do grupo de recursos> e <nome do serviço>. Substitua azure_service_principal pela ID certa se você usar um valor diferente ao adicionar a credencial no Jenkins.
node { stage('init') { checkout scm } stage('build') { sh 'mvn clean package' } stage('deploy') { withCredentials([azureServicePrincipal('azure_service_principal')]) { // Log in to Azure sh ''' az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID az account set -s $AZURE_SUBSCRIPTION_ID ''' // Set default resource group name and service name. Replace <resource group name> and <service name> with the right values sh 'az config set defaults.group=<resource group name>' sh 'az config set defaults.spring=<service name>' // Deploy applications sh 'az spring app deploy -n gateway --jar-path ./gateway/target/gateway.jar' sh 'az spring app deploy -n account-service --jar-path ./account-service/target/account-service.jar' sh 'az spring app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar' sh 'az logout' } } }Salve e confirme a alteração.
Criar a tarefa
No painel do Jenkins, selecione Novo Item.
Forneça um nome, Deploy-PiggyMetrics para o trabalho e selecione Pipeline. Clique em OK.
Selecione a guia Pipeline.
Para Definição, selecione Pipeline Script from SCM.
Para O SCM, selecione Git.
Insira a URL do GitHub para seu repositório bifurcado:
https://github.com/<your GitHub id>/piggymetrics.git.Para o Especificador de Ramificação (preto para 'any'), selecione /Azure.
Para o caminho do script, selecione Jenkinsfile.
Selecione Salvar
Validar e executar o trabalho
Antes de executar o trabalho, edite o texto na caixa de entrada de logon para inserir a ID de logon.
Em seu repositório, abra
index.htmlem/gateway/src/main/resources/static/.Pesquisar por
enter your logine atualizar esse texto paraenter login ID.<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>Salve e confirme a alteração.
Execute o trabalho no Jenkins manualmente. No painel do Jenkins, selecione o trabalho
Deploy-PiggyMetricse selecione Compilar Agora.
Depois que o trabalho for concluído, navegue até o IP público do gateway aplicativo e verifique se o aplicativo foi atualizado.
Limpar os recursos
Quando não for mais necessário, exclua os recursos criados neste artigo:
az group delete -y --no-wait -n <resource group name>