Exercício – Configurar seu ambiente do Azure DevOps
Nesta seção, você verificará se a sua organização do Azure DevOps está preparada para concluir o restante deste módulo. Você também criará os ambientes do Serviço de Aplicativo do Azure nos quais implantará posteriormente.
Para atingir essas metas:
- Adicione um usuário para verificar se o Azure DevOps pode se conectar à sua assinatura do Azure.
- Configure um projeto do Azure DevOps para este módulo.
- No Azure Boards, mova o item de trabalho deste módulo para a coluna Doing.
- Verifique se o projeto está configurado localmente para que você possa efetuar push das alterações para o pipeline.
- Crie os ambientes do Serviço de Aplicativo do Azure usando a CLI do Azure no Azure Cloud Shell.
- Crie variáveis de pipeline que definem os nomes de seus ambientes do Serviço de Aplicativo.
- Crie uma conexão de serviço que permita ao Azure Pipelines acessar com segurança a sua assinatura do Azure.
Adicionar um usuário ao Azure DevOps
Você deve ter uma assinatura do Azure própria para concluir este módulo. Comece a usar o Azure gratuitamente.
Você não precisa ter uma assinatura do Azure para usar o Azure DevOps. No entanto, aqui você usa o Azure DevOps para implantar recursos do Azure existentes na sua assinatura do Azure. Para simplificar o processo, use a mesma conta Microsoft para entrar na assinatura do Azure e na organização do Azure DevOps.
Se você usar contas Microsoft diferentes para entrar no Azure e no Azure DevOps, adicione um usuário à sua organização do DevOps na conta Microsoft usada para entrar no Azure. Para obter mais informações, confira Adicionar usuários à sua organização ou projeto. Ao adicionar o usuário, selecione o nível de acesso Basic.
Em seguida, saia do Azure DevOps e entre novamente. Use a conta Microsoft usada para entrar em sua assinatura do Azure.
Obter o projeto do Azure DevOps
Aqui, você verificará se a sua organização do Azure DevOps está preparada para concluir o restante deste módulo. Para isso, você executará um modelo que cria um projeto no Azure DevOps.
Os módulos neste roteiro de aprendizagem formam uma progressão. Você acompanha a equipe Web da Tailspin ao longo do percurso de DevOps. Para fins de aprendizado, cada módulo tem o próprio projeto do Azure DevOps.
Executar o modelo
Execute um modelo que configura sua organização do Azure DevOps:
No site do Azure DevOps Demo Generator, para executar o modelo, execute estas etapas.
Selecione Sign In e aceite os termos de uso.
Na página Create New Project, selecione a sua organização do Azure DevOps. Insira um nome de projeto, como Space Game – Web – Várias fases.
Selecione Yes, I want to fork this repository>Authorize.
Se uma janela aparecer, autorize o acesso à sua conta do GitHub.
Importante
Você precisa selecionar essa opção para o modelo se conectar ao seu repositório GitHub. Selecione esta opção mesmo que já tenha criado um fork do projeto do site do Space Game. O modelo usa sua bifurcação existente.
Selecione Create Project.
O modelo leva alguns minutos para ser executado.
Para acessar seu projeto no Azure DevOps, selecione Navigate to project.
Importante
Neste módulo, a página Limpar seu ambiente do Azure DevOps contém etapas de limpeza importantes. A limpeza ajuda a garantir que você não fique sem minutos de build livres. Mesmo que não conclua o módulo, execute as etapas de limpeza.
Definir a visibilidade do projeto
Inicialmente, o fork do repositório Space Game no GitHub é definido como público, ao passo que o projeto criado pelo modelo do Azure DevOps é definido como privado. Um repositório público no GitHub pode ser acessado por qualquer pessoa, enquanto um repositório privado só é acessível para você e para as pessoas com quem você escolhe compartilhá-lo. Da mesma forma, no Azure DevOps, os projetos públicos fornecem acesso somente leitura a usuários não autenticados, enquanto projetos privados exigem que os usuários tenham acesso e sejam autenticados para acessar os serviços.
No momento, não é necessário modificar nenhuma dessas configurações para os fins deste módulo. No entanto, em seus projetos pessoais, você precisa determinar a visibilidade e o acesso que deseja permitir às outras pessoas. Por exemplo, se o projeto for de código aberto, você poderá optar por tornar o repositório GitHub e o projeto do Azure DevOps públicos. Se o projeto for proprietário, normalmente, você tornará o repositório GitHub e o projeto do Azure DevOps privados.
Mais adiante você poderá se interessar pelos seguintes recursos para determinar qual opção é melhor para seu projeto:
- Usar projetos públicos e privados
- Guia de Início Rápido: Tornar público seu projeto privado
- Definir a visibilidade do repositório
Mover o item de trabalho para Executando
Aqui, você atribui um item de trabalho a si mesmo no Azure Boards. Você também move o item de trabalho para o estado Doing. Na prática, você e sua equipe criarão itens de trabalho no início de cada sprint ou iteração de trabalho.
Essa atribuição de trabalho dá a você uma lista de verificação com a qual trabalhar. Isso dá aos outros membros da equipe visibilidade daquilo em que você está trabalhando e de quanto trabalho resta fazer. O item de trabalho também ajuda a impor limites de WIP (trabalho em andamento) para que a equipe não assuma trabalho demais ao mesmo tempo.
Lembre-se de que a equipe concordou com os principais problemas a seguir para o sprint atual.
Observação
Em uma organização do Azure DevOps, os itens de trabalho são numerados em sequência. No seu projeto, o número de cada item de trabalho pode não corresponder ao que você vê aqui.
Aqui, você move o primeiro item, Create a multistage pipeline, para a coluna Doing. Em seguida, atribua a si mesmo o item de trabalho. Create a multistage pipeline está relacionado à definição de cada fase de implantação do site do Space Game.
Para configurar o item de trabalho:
No Azure DevOps, vá para Painéis. Em seguida, no menu, selecione Boards.
No cartão Criar um pipeline de vários estágios, selecione a seta para baixo. Em seguida, atribua o item de trabalho a si mesmo.
Mova o item de trabalho da coluna To Do para a coluna Doing.
No final deste módulo, você moverá o cartão para a coluna Done depois de concluir a tarefa.
Configurar o projeto localmente
Aqui, você vai carregar o projeto Space Game no Visual Studio Code, configurar o Git, clonar o seu repositório localmente e definir o repositório remoto upstream para baixar o código inicial.
Observação
Se você já tiver configurado o projeto mslearn-tailspin-spacegame-web-deploy localmente, prossiga para a próxima seção.
Abrir o terminal integrado
O Visual Studio Code é fornecido com um terminal integrado. Aqui, você pode editar arquivos e trabalhar na linha de comando.
Inicie o Visual Studio Code.
No menu Exibir, selecione Terminal.
Na lista suspensa, selecione Git Bash. Se você estiver familiarizado com outro shell do Unix que você prefere usar, selecione esse shell em vez disso.
Na janela do terminal, você pode escolher qualquer shell que esteja instalado no sistema. Por exemplo, você pode escolher Git Bash, PowerShell ou outro shell.
Aqui você usará o Git Bash, parte do Git para Windows, o que facilita a execução de comandos do Git.
Observação
No Windows, se você não vir Git Bash listado como uma opção, certifique-se de ter instalado o Git e reinicie o Visual Studio Code.
Execute o comando
cd
para acessar o diretório em que deseja trabalhar. Escolha o diretório base (~
) ou outro diretório se desejar.cd ~
Configurar o Git
Se você estiver usando o Git e o GitHub pela primeira vez, precisará primeiro executar alguns comandos para associar a sua identidade ao Git e se autenticar no GitHub. Para obter mais informações, confira Configurar o Git.
No mínimo, você precisará concluir as etapas a seguir. Execute os comandos no terminal integrado.
- Defina o seu nome de usuário.
- Defina seu endereço de email de commit.
- Armazene em cache a sua senha do GitHub.
Observação
Se você já usar a autenticação de dois fatores com o GitHub, crie um token de acesso pessoal. Quando solicitado, use o token no lugar da senha.
Trate o token de acesso como faria com uma senha. Guarde-o em um local seguro.
Configurar seu projeto no Visual Studio Code
No roteiro de aprendizagem Crie aplicativos com o Azure DevOps, você criou um fork de um repositório Git e clonou-o. O repositório contém o código-fonte do site do Space Game. O fork foi conectado aos seus projetos no Azure DevOps para que o build seja executado quando você efetuar push das alterações para o GitHub.
Importante
Nesse roteiro de aprendizagem, alternamos para outro repositório Git, mslearn-tailspin-spacegame-web-deploy. Quando você executou o modelo para configurar o seu projeto do Azure DevOps, o processo criou um fork do repositório para você automaticamente.
Nesta parte, você clonará o fork localmente para que seja possível fazer alterações e criar a sua configuração de pipeline.
Clonar o fork localmente
Agora você tem uma cópia do projeto Web Space Game em sua conta do GitHub. Agora, você baixará ou clonará uma cópia no computador para trabalhar com ela.
Um clone, assim como um fork, é uma cópia de um repositório. Ao clonar um repositório, você pode fazer alterações, verificar se elas funcionam conforme o esperado e carregá-las novamente no GitHub. Você também pode sincronizar a cópia local com as alterações feitas por outros usuários autenticados na cópia do GitHub do repositório.
Para clonar o projeto Web Space Game no computador:
Acesse o fork do projeto Web do Space Game (mslearn-tailspin-spacegame-web-deploy) no GitHub.
Selecione Código. Em seguida, na guia HTTPS, clique no botão ao lado da URL mostrada a fim de copiá-la para a área de transferência.
No Visual Studio Code, acesse a janela do terminal.
No terminal, acesse o diretório em que deseja trabalhar. Escolha o diretório base (
~
) ou outro diretório se desejar.cd ~
Execute o comando
git clone
. Substitua a URL mostrada aqui pelo conteúdo da área de transferência:git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-deploy.git
Acesse o diretório
mslearn-tailspin-spacegame-web-deploy
. Esse é o diretório raiz do repositório.cd mslearn-tailspin-spacegame-web-deploy
Definir o repositório remoto upstream
Um repositório remoto é um repositório Git no qual os membros da equipe colaboram (como um repositório no GitHub). Aqui você lista seus repositórios remotos e adiciona um que aponte para a cópia do repositório da Microsoft, a fim de obter o exemplo de código mais recente.
Execute este comando
git remote
para listar os seus repositórios remotos:git remote -v
Você verá que tem acesso de fetch (download) e push (upload) ao repositório:
origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (fetch) origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (push)
Origem especifica o repositório no GitHub. Ao criar um fork do código de outro repositório, o repositório remoto original (aquele que é a origem do fork) costuma ser chamado upstream.
Execute este comando
git remote add
para criar um repositório remoto chamado upstream que aponta para o repositório da Microsoft:git remote add upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git
Execute
git remote
novamente para ver as alterações:git remote -v
Você verá que ainda têm acesso de fetch (download) e de push (upload) ao repositório. Agora você também tem acesso de fetch no repositório da Microsoft:
origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (fetch) origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (push) upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git (fetch)
Abrir o projeto no Explorador de Arquivos
No Visual Studio Code, a janela do terminal aponta para o diretório raiz do projeto Web Space Game. Para exibir a estrutura dele e trabalhar com arquivos, no Explorador de Arquivos, agora você abrirá o projeto.
A maneira mais fácil de abrir o projeto é reabrir o Visual Studio Code no diretório atual. Para fazer isso, execute o seguinte comando no terminal integrado:
code -r .
Você verá a árvore de diretórios e arquivos no Explorador de Arquivos.
Reabra o terminal integrado. O terminal coloca você na raiz do seu projeto Web.
Se o comando code
falhar, você precisará adicionar o Visual Studio Code ao PATH do sistema. Para fazer isso:
- No Visual Studio Code, selecione F1 ou Exibir>Paleta de Comandos para acessar a paleta de comandos.
- Na paleta de comandos, insira Shell Command: Install 'code' command in PATH.
- Repita o procedimento anterior para abrir o projeto no Explorador de Arquivos.
Agora você está preparado para trabalhar com o código-fonte do Space Game e a sua configuração do Azure Pipelines no ambiente de desenvolvimento local.
Criar os ambientes do Serviço de Aplicativo do Azure
Aqui, você cria os ambientes que definem as fases do pipeline. Você cria uma instância do Serviço de Aplicativo para cada fase: Desenvolvimento, Teste e Preparo.
Em Create a release pipeline in Azure Pipelines, você acessou o Serviço de Aplicativo por meio do portal do Azure. Embora o portal seja uma ótima maneira de explorar o que está disponível no Azure ou de realizar tarefas básicas, abrir componentes como o Serviço de Aplicativo pode ser entediante.
Neste módulo, você usa a CLI do Azure para abrir três instâncias do Serviço de Aplicativo. Você pode acessar a CLI do Azure de um terminal ou por meio do Visual Studio Code. Aqui, você acessa a CLI do Azure pelo Azure Cloud Shell. Essa experiência de shell baseada em navegador é hospedada na nuvem. No Cloud Shell, a CLI do Azure está configurada para uso com sua assinatura do Azure.
Importante
Para concluir os exercícios neste módulo, você precisará de sua assinatura do Azure.
Ativar o Cloud Shell por meio do portal do Azure
Acesse o portal do Azure e faça logon.
No menu, selecione Cloud Shell. Quando solicitado, escolha a experiência do Bash.
Observação
O Cloud Shell exige um recurso de Armazenamento do Azure para manter todos os arquivos que você criar no Cloud Shell. Ao abrir o Cloud Shell pela primeira vez, você precisará criar um grupo de recursos, uma conta de armazenamento e um compartilhamento de arquivo do Azure. Essa configuração é usada automaticamente para todas as sessões futuras do Cloud Shell.
Selecionar uma região do Azure
Uma região é um ou mais datacenters do Azure em uma localização geográfica. Leste dos EUA, Oeste dos EUA e Norte da Europa são exemplos de regiões. Cada recurso do Azure, incluindo uma instância do Serviço de Aplicativo, recebe uma região.
Para facilitar a execução dos comandos, comece selecionando uma região padrão. Depois que você especificar a região padrão, os comandos posteriores usarão essa região, a menos que você especifique outra.
No Cloud Shell, para listar as regiões disponíveis na assinatura do Azure, execute o comando
az account list-locations
a seguir.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Na coluna
Name
na saída, selecione uma região perto de você. Por exemplo, escolhaeastasia
ouwestus2
.Execute
az configure
para definir a região padrão. Substitua<REGION>
pelo nome da região selecionada.az configure --defaults location=<REGION>
Este exemplo define
westus2
como a região padrão:az configure --defaults location=westus2
Criar as instâncias do Serviço de Aplicativo
Aqui, você criará as instâncias do Serviço de Aplicativo nas três fases que serão implantadas: Desenvolvimento, Teste e Preparo. Aqui está uma breve visão geral do processo que você segue:
Gerar um número aleatório que torne exclusivo o nome de domínio do seu aplicativo Web.
Esta etapa é para fins de aprendizado. Na prática, você escolheria um nome de domínio correspondente ao nome do aplicativo ou serviço.
Crie um grupo de recursos que contenha todas as suas instâncias do Serviço de Aplicativo.
Para fins de aprendizado, aqui você cria um grupo de recursos que contém todas as instâncias do Serviço de Aplicativo. Na prática, você pode criar um grupo de recursos separado para cada instância do Serviço de Aplicativo para que possa controlar melhor o ciclo de vida de cada uma delas.
Crie um plano do Serviço de Aplicativo.
Um plano do Serviço de Aplicativo define os recursos de CPU, memória e armazenamento para seu aplicativo Web. Aqui, você usa o plano Básico B1. Este plano é destinado a aplicativos que têm poucos requisitos de tráfego. Os planos Standard e Premium são voltados para cargas de trabalho de produção. Esses planos são executados em instâncias de máquina virtual dedicadas.
Para cada um dos ambientes de Desenvolvimento, Teste e Preparo, crie uma instância do Serviço de Aplicativo.
Obtenha o nome do host para cada ambiente.
Verificar se cada ambiente está em execução e se a home page está acessível.
Observação
Para fins de aprendizado, use as configurações de rede padrão. As configurações tornam o seu site acessível pela Internet. Na prática, você pode configurar uma rede virtual do Azure que coloca o seu site em uma rede que não é roteável pela Internet e que apenas você e sua equipe podem acessar. Posteriormente, você poderá reconfigurar a sua rede para disponibilizar o site para os usuários.
Para criar suas instâncias do Serviço de Aplicativo, siga estas etapas:
No Cloud Shell, gere um número aleatório que torne exclusivo o nome de domínio do seu aplicativo Web.
webappsuffix=$RANDOM
Para criar um grupo de recursos chamado tailspin-space-game-rg, execute o comando
az group create
a seguir.az group create --name tailspin-space-game-rg
Para criar o plano do Serviço de Aplicativo chamado tailspin-space-game-asp, execute o comando
az appservice plan create
a seguir.az appservice plan create \ --name tailspin-space-game-asp \ --resource-group tailspin-space-game-rg \ --sku B1 \ --is-linux
O argumento
--sku
especifica o plano B1. Esse plano é executado na camada Básica. O argumento--is-linux
especifica o uso de trabalhadores do Linux.Importante
Se o SKU B1 não estiver disponível na sua assinatura do Azure, selecione outro plano, como S1 (Standard).
Para criar as três instâncias do Serviço de Aplicativo, uma para cada ambiente (Desenvolvimento, Teste e Preparo), execute os comandos
az webapp create
a seguir.az webapp create \ --name tailspin-space-game-web-dev-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNET|6.0" az webapp create \ --name tailspin-space-game-web-test-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNET|6.0" az webapp create \ --name tailspin-space-game-web-staging-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNET|6.0"
Para fins de aprendizado, aqui você aplica o mesmo plano do Serviço de Aplicativo, B1 Básico, a cada instância do Serviço de Aplicativo. Na prática, você atribuiria um plano que corresponde à carga de trabalho esperada.
Por exemplo, para os ambientes que são mapeados para as fases de Desenvolvimento e Teste, Básico B1 pode ser apropriado porque você deseja que apenas sua equipe acesse os ambientes.
Para o ambiente de Preparo, selecione um plano que corresponda ao seu ambiente de produção. Esse plano provavelmente forneceria mais recursos de CPU, memória e armazenamento. No plano, você pode executar testes de desempenho, como testes de carga, em um ambiente que se assemelha ao seu ambiente de produção. Você pode executar os testes sem afetar o tráfego ativo do site.
Para listar o nome do host e o estado de cada instância do Serviço de Aplicativo, execute o comando
az webapp list
a seguir.az webapp list \ --resource-group tailspin-space-game-rg \ --query "[].{hostName: defaultHostName, state: state}" \ --output table
Anote o nome do host de cada serviço em execução. Você precisará desses nomes de host mais tarde quando verificar o seu trabalho. Veja um exemplo:
HostName State ------------------------------------------------------- ------- tailspin-space-game-web-dev-21017.azurewebsites.net Running tailspin-space-game-web-test-21017.azurewebsites.net Running tailspin-space-game-web-staging-21017.azurewebsites.net Running
Como uma etapa opcional, vá para um ou mais dos nomes de host. Verifique se eles estão em execução e se o home page padrão é exibido.
Isto é o que você vê:
Importante
A página Limpar seu ambiente do Azure DevOps neste módulo contém etapas de limpeza importantes. A limpeza ajuda a garantir que você não seja cobrado pelos recursos do Azure depois de concluir este módulo. Execute as etapas de limpeza mesmo que não conclua este módulo.
Criar variáveis de pipeline no Azure Pipelines
Em Criar um pipeline de lançamento no Azure Pipelines, você adicionou uma variável ao pipeline para armazenar o nome do seu aplicativo Web no Serviço de Aplicativo. Aqui você fará o mesmo. No entanto, desta vez, você adicionará uma variável a cada instância do Serviço de Aplicativo que corresponda a uma fase de Desenvolvimento, Teste ou Preparo no pipeline.
Você pode embutir esses nomes em sua configuração de pipeline, mas se os definir como variáveis, sua configuração será mais reutilizável. Além disso, se os nomes das instâncias do Serviço de Aplicativo forem alterados, você poderá atualizar as variáveis e disparar seu pipeline sem modificar sua configuração.
Para adicionar as variáveis:
No Azure DevOps, acesse seu projeto Space Game – Web – Várias fases.
Em Pipelines, selecione Library.
Selecione + Variable group.
Em Properties, insira Release para o nome do grupo de variáveis.
Em Variables, selecione + Add.
No nome da variável, insira WebAppNameDev. No valor, insira o nome da instância do Serviço de Aplicativo que corresponde ao seu ambiente de Desenvolvimento, como tailspin-space-game-web-dev-1234.
Repita as duas etapas anteriores duas vezes para criar variáveis para os ambientes de Teste e de Preparo. Veja alguns exemplos:
Nome da variável Valor de exemplo WebAppNameTest tailspin-space-game-web-test-1234 WebAppNameStaging tailspin-space-game-web-staging-1234 Verifique se cada valor de exemplo foi substituído pela instância do Serviço de Aplicativo que corresponde ao seu ambiente.
Importante
Defina o nome da instância do Serviço de Aplicativo, não o nome do host. Neste exemplo, insira tailspin-space-game-web-dev-1234, não tailspin-space-game-web-dev-1234.azurewebsites.net.
Próximo ao início da página, selecione Salvar para salvar a sua variável no pipeline.
Seu grupo de variáveis é semelhante a este:
Criar os ambientes de desenvolvimento e teste
Em Criar um pipeline de lançamento com Azure Pipelines, você criou um ambiente para o ambiente de desenvolvimento. Aqui, você repete o processo para os ambientes de desenvolvimento e teste. Posteriormente, você configurará o ambiente de preparo, o que inclui critérios adicionais.
Para criar os ambientes de desenvolvimento e teste:
No Azure Pipelines, selecione Environments.
Para criar o ambiente de desenvolvimento:
- Selecione Criar ambiente.
- Em Nome, insira desenvolvimento.
- Deixe os outros campos com suas definições padrão.
- Selecione Criar.
Para criar o ambiente de teste:
- Retorne à página Ambientes.
- Selecione Novo ambiente.
- Em Nome, insira teste.
- Selecione Criar.
Criar uma conexão de serviço
Aqui, você criará uma conexão de serviço que permite que o Azure Pipelines acesse sua assinatura do Azure. O Azure Pipelines usa essa conexão de serviço para implantar o site no Serviço de Aplicativo. Você criou uma conexão de serviço semelhante no módulo anterior.
Importante
Verifique se você está conectado tanto ao portal do Azure quanto ao Azure DevOps na mesma conta Microsoft.
No Azure DevOps, acesse seu projeto Space Game – Web – Várias fases.
Na parte inferior esquerda da página, selecione Configurações do Projeto.
Em Pipelines, selecione Conexões de serviço.
Selecione New service connection, Azure Resource Manager e escolha Next.
No início da página, selecione Entidade de Serviço (automática). Em seguida, selecione Avançar.
Preencha estes campos:
Campo Valor Scope level Assinatura Subscription Sua assinatura do Azure Grupo de recursos tailspin-space-game-rg Service connection name Resource Manager – Tailspin – Space Game Durante o processo, talvez você precise entrar na sua conta Microsoft.
Verifique se a caixa de seleção Conceder permissão de acesso para todos os pipelines está selecionada.
Selecione Salvar.
Para verificar se consegue se conectar à sua assinatura do Azure, o Azure DevOps executa uma conexão de teste. Se o Azure DevOps não conseguir se conectar, você terá a oportunidade de entrar uma segunda vez.