Exercício – Configurar seu ambiente do Azure DevOps

Concluído

Nesta seção, você garantirá que sua organização do Azure DevOps esteja configurada para concluir o restante deste módulo. Você também criará os ambientes do Serviço de Aplicativo do Azure nos quais você implantará.

Para configurar seu sistema, você vai:

  • Adicione um usuário para garantir que o Azure DevOps possa 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 .
  • 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 dos ambientes do Serviço de Aplicativo.
  • Crie uma conexão de serviço que permita que o Azure Pipelines acesse sua assinatura do Azure com segurança.

Adicionar um usuário ao Azure DevOps

Para concluir este módulo, você precisa de sua própria assinatura do Azure. Você pode começar a usar o Azure gratuitamente.

Embora você não precise de uma assinatura do Azure para trabalhar com o Azure DevOps, neste módulo você usará o Azure DevOps para implantar em recursos que existem em sua assinatura do Azure. Para simplificar o processo, você deve usar a mesma conta da Microsoft para entrar em sua assinatura do Azure e em sua organização do Azure DevOps.

Se você usar diferentes contas da Microsoft para entrar no Azure e no Azure DevOps, adicione um usuário à sua organização de DevOps na conta da Microsoft que você usa para entrar no Azure. Para obter mais informações, consulte Adicionar usuários à sua organização ou projeto. Ao adicionar o usuário, escolha o nível de acesso Básico .

Em seguida, saia do Azure DevOps e entre novamente na conta da Microsoft que você usa 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á configurada para concluir o restante deste módulo. Você começará executando um modelo que cria seu projeto no Azure DevOps.

Os módulos neste roteiro de aprendizagem fazem parte de uma progressão que segue a equipe web da Tailspin por meio de sua jornada de DevOps. Para fins de aprendizado, cada módulo tem um projeto do Azure DevOps associado.

Executar o modelo

Execute um modelo que configura sua organização do Azure DevOps.

  1. Obtenha e execute o projeto ADOGenerator no Visual Studio ou o IDE de sua escolha.

  2. Quando solicitado a inserir o número do modelo na lista de modelos, insira33 para executar testes não funcionais no Azure Pipelines e pressione Enter.

  3. Escolha seu método de autenticação. Você pode configurar e usar um PAT (Token de Acesso Pessoal) ou usar o logon do dispositivo.

    Observação

    Se você configurar um PAT, certifique-se de autorizar os escopos necessários. Para este módulo, você pode usar o acesso completo, mas em uma situação real, você deve garantir que conceda apenas os escopos necessários.

  4. Insira o nome da sua organização do Azure DevOps e pressione Enter.

  5. Se solicitado, insira o PAT do Azure DevOps e pressione Enter.

  6. Insira um nome de projeto como Space Game – Web – testes não funcionais e pressione Enter.

  7. Depois que o projeto for criado, acesse sua organização do Azure DevOps no navegador (em https://dev.azure.com/<your-organization-name>/) e selecione o projeto.

Criar um fork do repositório

Caso ainda não tenha feito isso, crie uma bifurcação do repositório mslearn-tailspin-spacegame-web-deploy .

  1. No GitHub, acesse o repositório mslearn-tailspin-spacegame-web-deploy .

  2. Selecione Fork no canto superior direito da tela.

  3. Escolha sua conta do GitHub como o Proprietário e, em seguida, selecione Criar fork.

Importante

A página Limpar seu ambiente do Azure DevOps neste módulo contém etapas importantes de limpeza. A limpeza ajuda a garantir que você não fique sem minutos de build livres. Execute as etapas de limpeza mesmo que não conclua este módulo.

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:

Configurar o projeto localmente

Aqui você carrega o projeto do Space Game no Visual Studio Code, configura o Git, clona seu repositório localmente e configura o upstream remoto para que você possa baixar o código inicial.

Observação

Se você já estiver configurado com o projeto mslearn-tailspin-spacegame-web-deploy localmente, poderá passar para a próxima seção.

Abrir o terminal integrado

O Visual Studio Code vem com um terminal integrado. Aqui você edita arquivos e trabalha na linha de comando.

  1. Inicie o Visual Studio Code.

  2. No menu Exibir, selecione Terminal.

  3. Na lista suspensa, selecione Git Bash. Se você estiver familiarizado com outro shell unix que você prefere usar, selecione esse shell em vez disso.

    Uma captura de tela do Visual Studio Code mostrando a localização do shell do Git Bash.

    Na janela do terminal, você pode escolher qualquer shell instalado em seu 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 o Git Bash listado como uma opção, verifique se instalou o Git e reinicie o Visual Studio Code.

  4. Execute o cd comando para ir para o diretório onde você deseja trabalhar. Escolha seu diretório inicial (~) ou um diretório diferente, se desejar.

    cd ~
    

Configurar o Git

Se você não estiver familiarizado com o Git e o GitHub, primeiro execute alguns comandos para associar sua identidade ao Git e autenticar-se com o GitHub. Para obter mais informações, consulte Configurar o Git.

No mínimo, você precisa concluir as etapas a seguir. Execute os comandos do terminal integrado.

  1. Defina seu nome de usuário.
  2. Defina seu endereço de email de confirmação.
  3. Armazene sua senha do GitHub em cache.

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 Build applications with Azure DevOps, você bifurcou e depois clonou um repositório Git. O repositório contém o código-fonte do site do Space Game . Sua fork foi conectada aos seus projetos no Azure DevOps para que o build seja executado quando você faz push de alterações para o GitHub.

Importante

Neste roteiro de aprendizagem, alternamos para um repositório Git diferente, 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ê clona seu fork localmente para que possa alterar e desenvolver sua configuração de pipeline.

Clonar o fork localmente

Agora você tem uma cópia do projeto Web do Space Game em sua conta do GitHub. Agora você baixará ou clonará uma cópia para seu computador para que possa trabalhar com ele.

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, em seguida, carregar essas alterações no GitHub. Você também pode sincronizar sua cópia local com as alterações que outros usuários autenticados fizeram na cópia do GitHub do repositório.

Para clonar o projeto Web do Space Game em seu computador:

  1. Vá para o fork do projeto web Space Game (mslearn-tailspin-spacegame-web-deploy) no GitHub.

  2. Selecione Código. Em seguida, na guia HTTPS, clique no botão ao lado do URL mostrado a fim de copiá-lo para a área de transferência.

    Captura de tela que mostra como localizar a URL e o botão copiar do repositório GitHub.

  3. No Visual Studio Code, acesse a janela do terminal.

  4. No terminal, vá para o diretório onde você deseja trabalhar. Escolha seu diretório inicial (~) ou um diretório diferente, se desejar.

    cd ~
    
  5. 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
    
  6. 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 remoto é um repositório Git em que 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.

  1. 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)
    

    A origem especifica seu 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.

  2. Execute este git remote add comando para criar um upstream nomeado remoto que aponte para o repositório da Microsoft:

    git remote add upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git
    
  3. 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 busca ao 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 do Space Game . Para exibir a estrutura dele e trabalhar com arquivos, no Explorador de Arquivos, agora você abrirá o projeto.

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

  2. 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:

  1. No Visual Studio Code, selecione F1 ou selecione Exibir>Paleta de Comandos para acessar a paleta de comandos.
  2. Na paleta de comandos, insira o Comando Shell : Instalar o comando "code" em PATH.
  3. Repita o procedimento anterior para abrir o projeto no Explorador de Arquivos.

Agora você está configurado para trabalhar com o código-fonte do Space Game e sua configuração do Azure Pipelines em seu ambiente de desenvolvimento local.

Criar os ambientes do Serviço de Aplicativo do Azure

Aqui, você criará os ambientes que definem os estágios do pipeline. Você criará uma instância do Serviço de Aplicativo que corresponde a cada estágio: Desenvolvimento, Teste e Preparo.

Em módulos anteriores, você usou a CLI do Azure para criar suas instâncias do Serviço de Aplicativo. Aqui, você fará o mesmo.

Importante

Lembre-se de que você precisa de sua própria assinatura do Azure para concluir os exercícios neste módulo.

Criar o Cloud Shell por meio do portal do Azure

  1. Acesse o portal do Azure e entre.
  2. Na barra de menus, selecione Cloud Shell. Quando solicitado, selecione a experiência Bash.

Selecionar uma região do Azure

Aqui, você especifica a região padrão ou a localização geográfica, em que os recursos do Azure devem ser criados.

  1. No Cloud Shell, execute o comando a seguir az account list-locations para listar as regiões disponíveis em sua assinatura do Azure.

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Na coluna Nome na saída, escolha uma região próxima a você. Por exemplo, escolha eastasia ou westus2.

  3. Execute az configure para definir sua região padrão. Substitua <REGION> pelo nome da região escolhida.

    az configure --defaults location=<REGION>
    

    Aqui está um exemplo que 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 para os três estágios nos quais você implantará: Desenvolvimento, Teste e Preparo.

Observação

Para fins de aprendizado, use as configurações de rede padrão. Essas configurações tornam seu site acessível pela Internet. Na prática, você pode configurar uma rede virtual do Azure que coloca seu site em uma rede que não é roteável da Internet e que é acessível apenas para sua equipe. Mais tarde, quando estiver pronto, você poderá reconfigurar sua rede para disponibilizar o site para seus usuários.

  1. No Cloud Shell, gere um número aleatório que torne o nome de domínio do aplicativo Web exclusivo.

    webappsuffix=$RANDOM
    
  2. Execute o comando a seguir az group create para criar um grupo de recursos chamado tailspin-space-game-rg.

    az group create --name tailspin-space-game-rg
    
  3. Execute o comando az appservice plan create a seguir para criar um Plano do Serviço de Aplicativo chamado tailspin-space-game-asp.

    az appservice plan create \
      --name tailspin-space-game-asp \
      --resource-group tailspin-space-game-rg \
      --sku B1 \
      --is-linux
    

    O --sku argumento especifica o plano B1 , que é 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 como parte de sua assinatura do Azure, escolha um plano diferente, como S1 (Standard).

  4. Execute os comandos a seguir az webapp create para criar as três instâncias do Serviço de Aplicativo, uma para cada um dos ambientes de Desenvolvimento, Teste e Preparo .

    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 aprendizagem, aqui, você aplica o mesmo plano do Serviço de Aplicativo, B1 Basic, a cada instância do Serviço de Aplicativo. Na prática, você atribuiria um plano que corresponda à carga de trabalho esperada.

  5. Execute o comando a seguir az webapp list para listar o nome do host e o estado de cada instância do Serviço de Aplicativo.

    az webapp list \
      --resource-group tailspin-space-game-rg \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Observe o nome do host para 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
    
  6. Como uma etapa opcional, vá para um ou mais dos nomes listados para verificar se eles estão em execução e se a home page padrão é exibida.

    Você verá esta página:

    Captura de tela da home page padrão no Serviço de Aplicativo do Azure.

Importante

A página Limpar seu ambiente do Azure DevOps neste módulo contém etapas importantes de limpeza. A limpeza ajuda a garantir que você não seja cobrado pelos recursos do Azure depois de concluir este módulo. Siga as etapas de limpeza mesmo que não conclua este módulo.

Criar variáveis de pipeline no Azure Pipelines

Em Executar testes funcionais no Azure Pipelines, você adicionou uma variável para cada uma das instâncias do Serviço de Aplicativo. As instâncias correspondem aos estágios Dev, Test e Staging em seu fluxo de trabalho. Aqui, você seguirá o mesmo padrão.

Cada estágio na configuração do pipeline usa as variáveis para identificar em qual instância do Serviço de Aplicativo implantar.

Para adicionar as variáveis:

  1. No Azure DevOps, vá para o seu projeto Space Game - Web - Testes Não Funcionais.

  2. Em Pipelines, selecione Biblioteca.

    Captura de tela do Azure Pipelines mostrando a opção de menu Biblioteca.

  3. Selecione + Grupo de variáveis.

  4. Para o nome do grupo de variáveis, em Propriedades, insira Release.

  5. Em Variáveis, selecione + Adicionar.

  6. Para o nome da variável, insira WebAppNameDev. Para seu 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.

  7. Repita as etapas 5 e 6 duas vezes mais para criar variáveis para seus ambientes de Teste e Preparo , conforme mostrado nesta tabela:

    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

    Certifique-se de definir o nome da instância do Serviço de Aplicativo, não seu nome de host. Neste exemplo, você inseriria tailspin-space-game-web-dev-1234 e não tailspin-space-game-web-dev-1234.azurewebsites.net.

  8. Para salvar sua variável no pipeline, selecione Salvar perto da parte superior da página.

    Seu grupo de variáveis é semelhante a este:

    Captura de tela do Azure Pipelines mostrando o grupo de variáveis. O grupo contém três variáveis.

Criar os ambientes de desenvolvimento, teste e preparo

Em Executar testes funcionais no Azure Pipelines, você criou ambientes para os ambientes de desenvolvimento, teste e preparo . Aqui, você repetirá o processo.

Para criar os ambientes de desenvolvimento, teste e preparo :

  1. No Azure Pipelines, selecione Ambientes.

    Captura de tela do Azure Pipelines mostrando a localização da opção de menu Ambientes.

  2. Para criar o ambiente de desenvolvimento :

    1. Selecione Criar ambiente.
    2. Em Nome, insira desenvolvimento.
    3. Deixe os campos restantes em seus valores padrão.
    4. Selecione Criar.
  3. Para criar o ambiente de teste :

    1. Retorne à página Ambientes .
    2. Selecione Novo ambiente.
    3. Em Nome, insira o teste.
    4. Selecione Criar.
  4. Para criar o ambiente de preparo:

    1. Retorne à página Ambientes .
    2. Selecione Novo ambiente.
    3. Em Name, insira preparo.
    4. 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 ao portal do Azure e ao Azure DevOps na mesma conta da Microsoft.

  1. No Azure DevOps, vá para o seu projeto Space Game - Web - Testes Não Funcionais.

  2. No canto inferior da página, selecione as configurações do Projeto.

  3. Em Pipelines, selecione Conexões de serviço.

  4. Selecione Nova conexão de serviço e escolha O Gerenciador de Recursos do Azure e selecione Avançar.

  5. Próximo à parte superior da página, Entidade de Serviço (automática). Em seguida, selecione Avançar.

  6. Preencha estes campos:

    Campo Valor
    Nível de escopo Subscrição
    Subscrição Sua assinatura do Azure
    Grupo de Recursos tailspin-space-game-rg
    Nome da conexão de serviço Gerenciador de Recursos – Tailspin – Jogo espacial

    Durante o processo, você pode ser solicitado a entrar em sua conta da Microsoft.

  7. Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada.

  8. Selecione Salvar.

    O Azure DevOps executa uma conexão de teste para verificar se ele pode se conectar à sua assinatura do Azure. Se o Azure DevOps não puder se conectar, você terá a chance de entrar uma segunda vez.