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.
A CI (integração contínua) e a CD (implantação contínua) formam um pipeline pelo qual você pode criar, liberar e implantar seu código. O Azure DevOps Services fornece um conjunto completo e completo de ferramentas de automação de CI/CD para implantação no Azure. O Jenkins é uma ferramenta popular baseada em servidor de CI/CD de terceiros que também fornece automação de CI/CD. Você pode usar o Azure DevOps Services e o Jenkins juntos para personalizar como você fornece seu aplicativo ou serviço de nuvem.
Neste tutorial, você usará o Jenkins para criar um aplicativo Web Node.js. Em seguida, você usa o Azure DevOps para implantá-lo
para um grupo de implantação que contém VMs (máquinas virtuais) do Linux. Você aprenderá como:
- Obtenha o aplicativo de exemplo.
- Configurar plug-ins do Jenkins.
- Configurar um projeto jenkins freestyle para Node.js.
- Configure o Jenkins para a integração do Azure DevOps Services.
- Crie um endpoint de serviço Jenkins.
- Crie um grupo de implantação para as máquinas virtuais do Azure.
- Crie um pipeline de lançamento do Azure Pipelines.
- Execute implantações manuais e realizadas a partir da Integração Contínua (CI).
Pré-requisitos
Assinatura do Azure: se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Servidor Jenkins: se você não tiver um servidor Jenkins instalado, crie um servidor Jenkins no Azure.
Observação
Para obter mais informações, consulte Conectar-se ao Azure DevOps Services.
Você precisa de uma máquina virtual linux para um destino de implantação. Para obter mais informações, consulte Criar e gerenciar VMs linux com a CLI do Azure.
Abra a porta de entrada 80 para sua máquina virtual. Para obter mais informações, consulte Criar grupos de segurança de rede usando o portal do Azure.
Obter o aplicativo de exemplo
Você precisa de um aplicativo para implantar, armazenado em um repositório Git. Para este tutorial, recomendamos que você use este aplicativo de exemplo disponível no GitHub. Este tutorial contém um script de exemplo usado para instalar Node.js e um aplicativo. Se você quiser trabalhar com seu próprio repositório, deverá configurar um exemplo semelhante.
Crie uma bifurcação deste aplicativo e anote o local (URL) para uso nas etapas posteriores deste tutorial. Para obter mais informações, consulte Bifurcação de um repositório.
Observação
O aplicativo foi criado através do Yeoman. Usa Express, bower e Grunt. E tem alguns pacotes npm como dependências. O exemplo também contém um script que configura o Nginx e implanta o aplicativo. Ele é executado nas máquinas virtuais. Especificamente, o script:
- Instala o Node, o Nginx e o PM2.
- Configura o Nginx e o PM2.
- Inicia o aplicativo Node.
Configurar plug-ins do Jenkins
Primeiro, você deve configurar dois plug-ins jenkins: NodeJS e Implantação Contínua do VS Team Services.
- Abra sua conta do Jenkins e selecione Gerenciar Jenkins.
- Na página Gerenciar Jenkins , selecione Gerenciar Plug-ins.
- Filtre a lista para localizar o plug-in nodeJS e selecione a opção Instalar sem reinicialização .
- Filtre a lista para localizar o plug-in de Implantação Contínua do VS Team Services e selecione a opção Instalar sem reinicialização .
- Volte para o painel do Jenkins e selecione Gerenciar Jenkins.
- Selecione Configuração de Ferramenta Global. Localize NodeJS e selecione instalações de NodeJS.
- Selecione a opção Instalar automaticamente e, em seguida, insira um valor de Nome .
- Clique em Salvar.
Configurar um projeto jenkins freestyle para Node.js
- Selecione Novo Item. Insira um nome de item.
- Selecione o projeto Freestyle. Selecione OK.
- Na guia Gerenciamento de Código-Fonte , selecione Git e insira os detalhes do repositório e do branch que contém o código do aplicativo.
- Na guia Gatilhos de Construção, selecione Verificar SCM e insira o agendamento
H/03 * * * *para verificar o repositório Git em busca de alterações a cada três minutos. - Na guia Criar Ambiente , selecione Fornecer Node &npm bin/folder PATH e selecione o valor de Instalação do NodeJS . Deixe o arquivo npmrc definido para usar o padrão do sistema.
- Na guia Compilar , selecione Executar shell e insira o comando
npm installpara garantir que todas as dependências sejam atualizadas.
Configurar o Jenkins para a integração do Azure DevOps Services
Observação
Verifique se o token de acesso pessoal (PAT) que você utiliza para as etapas a seguir contém a permissão Release (leitura, gravação, execução e gerenciamento) no Azure DevOps Services.
Crie um PAT em sua organização do Azure DevOps Services se você ainda não tiver um. O Jenkins requer essas informações para acessar sua organização do Azure DevOps Services. Certifique-se de armazenar as informações de token para as próximas etapas nesta seção.
Para saber como gerar um token, leia Como criar um token de acesso pessoal para o Azure DevOps Services?.
Na guia Ações pós-build, selecione Adicionar ação pós-build. Selecione Arquivar os artefatos.
Para arquivos para arquivar, insira
**/*para incluir todos os arquivos.Para criar outra ação, selecione Adicionar ação pós-build.
Selecione Trigger release no TFS/Team Services. Insira o URI para sua organização do Azure DevOps Services, como https://{your-organization-name}.visualstudio.com.
Insira o nome do projeto.
Escolha um nome para o pipeline de lançamento. (Você criará este pipeline de lançamento posteriormente no Azure DevOps Services.)
Escolha as credenciais para se conectar ao ambiente do Azure DevOps Services ou do Servidor do Azure DevOps:
- Deixe o nome de usuário em branco se você estiver usando o Azure DevOps Services.
- Insira um nome de usuário e uma senha se você estiver usando uma versão local do Azure DevOps Server.
Salve o projeto Jenkins.
Criar um ponto de serviço Jenkins
Um ponto de extremidade de serviço permite que o Azure DevOps Services se conecte ao Jenkins.
- Abra a página Serviços no Azure DevOps Services, abra a lista Novo Ponto de Extremidade de Serviço e selecione Jenkins.
- Insira um nome para a conexão.
- Insira a URL do servidor Jenkins e selecione a opção Aceitar certificados SSL não confiáveis . Uma URL de exemplo é http://{YourJenkinsURL}.westcentralus.cloudapp.azure.com.
- Insira o nome de usuário e a senha para sua conta do Jenkins.
- Selecione Verificar conexão para verificar se as informações estão corretas.
- Selecione OK para criar o endpoint de serviço.
Criar um grupo de implantação para máquinas virtuais do Azure
Você precisa de um grupo de implantação para registrar o agente do Azure DevOps Services para que o pipeline de lançamento possa ser implantado em sua máquina virtual. Os grupos de implantação facilitam a definição de grupos lógicos de computadores de destino para implantação e a instalação do agente necessário em cada computador.
Observação
No procedimento a seguir, instale os pré-requisitos e não execute o script com privilégios sudo.
- Abra a guia
Versões do hubBuild & Release , abragrupos de implantação e selecione+ Novo . - Insira um nome para o grupo de implantação e uma descrição opcional. Em seguida, selecione Criar.
- Escolha o sistema operacional para sua máquina virtual de destino de implantação. Por exemplo, selecione Ubuntu 16.04+.
- Selecione Usar um token de acesso pessoal no script para autenticação.
- Selecione o link Pré-requisitos do sistema. Instale os pré-requisitos para seu sistema operacional.
- Selecione Copiar script para área de transferência para copiar o script.
- Faça logon em sua máquina virtual de destino de implantação e execute o script. Não execute o script com privilégios sudo.
- Após a instalação, você será solicitado a fornecer tags de grupo de implantação. Aceite os padrões.
- No Azure DevOps Services, verifique sua máquina virtual recém-registrada em Destinos em Grupos de Implantação.
Criar um pipeline de releases do Azure Pipelines
Um pipeline de lançamento especifica o processo que o Azure Pipelines usa para implantar o aplicativo. Neste exemplo, você executa um script de shell.
Para criar o pipeline de lançamento no Azure Pipelines:
- Abra a guia Versões do Hub de Build & Versão e selecione Criar pipeline de versão.
- Selecione o modelo Vazio escolhendo começar com um processo vazio.
- Na seção Artefatos , selecione + Adicionar Artefato e escolha Jenkins para o tipo de origem. Selecione sua conexão de endpoint de serviço Jenkins. Em seguida, selecione o trabalho de origem do Jenkins e selecione Adicionar.
- Selecione o ícone de mais opções ao lado de Ambiente 1. Selecione Adicionar fase de grupo de implantação.
- Escolha seu grupo de implantação.
- Selecione + para adicionar uma tarefa à fase de grupo de implantação.
- Selecione a tarefa Script do Shell e selecione Adicionar. A tarefa Script do Shell fornece a configuração de um script a ser executado em cada servidor para instalar Node.js e iniciar o aplicativo.
- Para Script Path, insira $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh.
- Selecione Avançado e, em seguida, habilite Especificar Diretório de Trabalho.
- Para diretório de trabalho, insira $(System.DefaultWorkingDirectory)/Fabrikam-Node.
- Edite o nome do pipeline de lançamento para o nome especificado na guia Ações de Pós-build do build no Jenkins. O Jenkins requer esse nome para poder disparar um novo lançamento quando os artefatos fonte forem atualizados.
- Selecione Salvar e selecione OK para salvar o pipeline de lançamento.
Executar implantações manuais e acionadas por integração contínua (CI)
- Selecione + Versão e selecione Criar Versão.
- Selecione o build que você concluiu na lista suspensa realçada e selecione Queue.
- Escolha o link de lançamento na mensagem pop-up. Por exemplo: " Release Release-1 foi criado".
- Abra a aba Logs para observar a saída do console.
- No navegador, abra a URL de um dos servidores que você adicionou ao seu grupo de implantação. Por exemplo, insira http://{your-server-ip-address}.
- Vá para o repositório Git de origem e modifique o conteúdo do título h1 no aplicativo de arquivos/views/index.jade com algum texto alterado.
- Confirme sua alteração.
- Após alguns minutos, você verá uma nova versão criada na página Versões do Azure DevOps. Abra a versão para ver a implantação ocorrendo. Parabéns!
Solução de problemas do plug-in do Jenkins
Se você encontrar bugs com os plug-ins do Jenkins, registre um problema no JIRA do Jenkins para o componente específico.
Próximas etapas
Neste tutorial, você automatiza a implantação de um aplicativo no Azure usando o Jenkins para build e o Azure DevOps Services para lançamento. Você aprendeu a:
- Crie seu aplicativo no Jenkins.
- Configure o Jenkins para a integração do Azure DevOps Services.
- Crie um grupo de implantação para as máquinas virtuais do Azure.
- Crie um Pipeline do Azure que configure as VMs e implante o aplicativo.
Para saber mais sobre como usar o Azure Pipelines para etapas de build e versão, consulte isso.
Para saber mais sobre como criar um pipeline de CI/CD baseado em YAML para implantar em VMs, avance para o próximo tutorial.