Exercício – Configurar o ambiente do Azure DevOps

Concluído

Nesta seção, você verá como configurar sua organização do Azure DevOps e criar o ambiente do Serviço de Aplicativo do Azure no qual você implantará.

Você aprenderá a:

  • Configure seu projeto do Azure DevOps.
  • Gerencie seus itens de trabalho com o Azure Boards.
  • Crie seu ambiente do Serviço de Aplicativo do Azure.
  • Crie variáveis de pipeline no Azure Pipelines.
  • Crie uma conexão de serviço para autenticar com sua assinatura do Azure.

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.

Você não precisa de uma assinatura do Azure para trabalhar com o Azure DevOps, mas neste módulo você usará o Azure DevOps para implantar nos recursos do Azure. Para simplificar o processo, use a mesma conta da Microsoft para entrar no Azure e no Azure DevOps.

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

Em seguida, saia do Azure DevOps e entre novamente usando a mesma conta usada para entrar em sua assinatura do Azure.

Obter o projeto do Azure DevOps

Aqui, você irá certificar-se que a sua organização do Azure DevOps esteja preparada para concluir o restante desse módulo. Para fazer isso, você executará um modelo que cria um projeto no Azure DevOps.

Os módulos neste roteiro de aprendizagem formam uma progressão. Siga a equipe web da Tailspin por meio de sua jornada de DevOps. Para fins de aprendizado, cada módulo tem seu próprio projeto do Azure DevOps.

Executar o modelo

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

Importante

O Gerador de Demonstração do Azure DevOps não tem mais suporte, mas você ainda pode usá-lo para criar ambientes de demonstração. Atualmente, não há nenhum substituto, e seus recursos ou disponibilidade podem mudar no futuro.

  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, insira39 para automatizar implantações de contêiner do Docker com o 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 – Docker 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.

Bifurcar o repositório

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

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

  2. Selecione Fork no canto superior direito da tela.

  3. Escolha sua conta do GitHub como Owner e, em seguida, selecione Criar fork.

Importante

Neste módulo, a página Limpar seu ambiente do Azure DevOps contém etapas importantes de limpeza. A limpeza ajuda a garantir que você não fique sem minutos de build livres. Siga 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, enquanto 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 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 autenticado para acessar os serviços.

No momento, não é necessário modificar nenhuma dessas configurações para trabalhar neste módulo. Mas para projetos pessoais, você precisa determinar a visibilidade e o acesso que deseja conceder a outras pessoas. Por exemplo, se o projeto for de código aberto, você poderá optar por tornar públicos o repositório do GitHub e o projeto do Azure DevOps. Quando o projeto é de proprietário, é melhor que o repositório do GitHub e o projeto do Azure DevOps sejam definidos como privados.

Mais tarde, os seguintes recursos poderão ajudar a determinar qual opção é melhor para o projeto:

Mover o item de trabalho para Executando

Aqui, você atribuirá um item de trabalho a si mesmo no Azure Boards. Você também moverá o item de trabalho para o estado Doing . Na prática, você e sua equipe criariam itens de trabalho no início de cada sprint ou iteração de trabalho.

Essa atribuição de trabalho fornece uma lista de verificação para você usar. Ele dá a outros membros da equipe visibilidade sobre o que você está trabalhando e quanto trabalho resta. O item de trabalho também ajuda a impor limites de WIP (trabalho em andamento) para que a equipe não assuma muito trabalho ao mesmo tempo.

Aqui, você moverá o primeiro item, criará a versão de contêiner do site usando o Docker, para a coluna Fazendo e, em seguida, atribuirá a si mesmo ao item de trabalho.

Para configurar o item de trabalho:

  1. No Azure DevOps, navegue até Boards. Em seguida, selecione Boards no menu.

    Captura de tela do Azure DevOps mostra a localização do menu Boards.

  2. No item de trabalho Criar versão de contêiner do site usando Docker, selecione a seta para baixo na parte inferior do cartão e, em seguida, atribua o item de trabalho a você mesmo.

    Captura de tela do Azure Boards mostrando a localização da seta para baixo.

  3. Mova o item de trabalho da coluna To Do para a coluna Doing .

    Captura de tela do Azure Boards mostrando o cartão na coluna Doing.

No final deste módulo, você moverá o cartão para a coluna Concluído depois de concluir a tarefa.

Criar o ambiente do Serviço de Aplicativo do Azure

Neste módulo, você empregará a CLI do Azure para iniciar os recursos necessários para implantar e executar uma instância do Serviço de Aplicativo. Você pode acessar a CLI do Azure em um terminal ou por meio do Visual Studio Code.

Importante

Você deve ter sua própria assinatura do Azure para concluir os exercícios neste módulo.

Iniciar o Cloud Shell no portal do Azure

  1. Navegue até o portal do Azure e entre.

  2. Selecione o Cloud Shell na barra de menus e selecione a experiência do Bash .

    Captura de tela do portal do Azure mostrando a localização do item de menu do Cloud Shell.

    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 Arquivos 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 localizados em uma determinada localização geográfica. Leste dos EUA, Oeste dos EUA e Norte da Europa são alguns exemplos de regiões. Cada recurso do Azure, como uma instância do Serviço de Aplicativo, é alocado para uma região específica.

Para simplificar o processo de execução de comandos, comece selecionando uma região padrão. Depois que a região padrão for especificada, os comandos subsequentes usarão essa região por padrão, a menos que uma região diferente seja especificada explicitamente.

  1. Execute o comando a seguir para listar as regiões disponíveis para sua assinatura do Azure.

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

  3. Execute o comando a seguir para definir sua região padrão. Substitua o espaço reservado 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 variáveis bash

Nesta seção, você criará variáveis bash para tornar o processo de instalação mais conveniente e menos propenso a erros. Usar variáveis para cadeias de caracteres de texto compartilhadas ajuda a evitar erros de digitação acidentais.

  1. No Cloud Shell, gere um número aleatório. Isso facilitará a criação de nomes globalmente exclusivos para determinados serviços na próxima etapa.

    resourceSuffix=$RANDOM
    
  2. Crie nomes globalmente exclusivos para o Aplicativo Web do Serviço de Aplicativo e o Registro de Contêiner do Azure. Usar aspas duplas nesses comandos solicita que o Bash interpole as variáveis usando a sintaxe embutida.

    webName="tailspin-space-game-web-${resourceSuffix}"
    registryName="tailspinspacegame${resourceSuffix}"
    
  3. Crie mais duas variáveis Bash para armazenar os nomes do grupo de recursos e do plano do Serviço de Aplicativo.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Criar os recursos do Azure

Observação

Para fins de aprendizado, você usará as configurações de rede padrão aqui. 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 pela Internet e que somente você e sua equipe podem acessar. Posteriormente, você poderá reconfigurar sua rede para disponibilizar o site para seus usuários.

  1. Execute o comando a seguir az group create para criar um grupo de recursos usando o nome definido anteriormente.

    az group create --name $rgName
    
  2. Execute o comando a seguir az acr create para criar um Registro de Contêiner do Azure usando o nome definido anteriormente.

    az acr create --name $registryName \
      --resource-group $rgName \
      --sku Standard \
      --admin-enabled true
    
  3. Execute o comando a seguir az appservice plan create para criar um plano do Serviço de Aplicativo usando o nome definido anteriormente.

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --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 em sua assinatura do Azure, escolha um plano diferente , como S1 (Standard).

  4. Execute o comando a seguir az webapp create para criar a instância do Serviço de Aplicativo.

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --deployment-container-image-name $registryName.azurecr.io/web:latest
    
  5. Execute o comando a seguir az webapp list para listar o nome do host e o estado da instância do Serviço de Aplicativo.

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Observe o nome do host para o serviço em execução. Você precisará dele mais tarde ao verificar seu trabalho. Veja um exemplo:

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  6. Execute o comando a seguir az acr list para listar o servidor de logon da instância do Registro de Contêiner do Azure. Você precisará desse nome de servidor ao criar variáveis de pipeline mais tarde.

    az acr list \
      --resource-group $rgName \
      --query "[].{loginServer: loginServer}" \
      --output table
    

    Observe o servidor de logon. Você precisará dele mais tarde quando configurar o pipeline. Veja um exemplo:

    LoginServer
    ---------------------------------
    tailspinspacegame4692.azurecr.io    
    

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. Execute as etapas de limpeza mesmo que não conclua este módulo.

Criar variáveis de pipeline no Azure Pipelines

Aqui, você adicionará uma variável ao pipeline que armazena o nome do aplicativo Web no Serviço de Aplicativo. Além disso, você adicionará o nome do Registro de Contêiner do Azure.

Você pode codificar esses nomes em sua configuração de pipeline, mas se defini-los como variáveis, sua configuração será mais reutilizável. Além disso, se os nomes de instância forem alterados, você poderá atualizar as variáveis e disparar o pipeline sem modificar a configuração.

Para adicionar as variáveis:

  1. No Azure DevOps, acesse o projeto Space Game – Web – Docker.

  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. Em Propriedades, insira Release para o nome do grupo de variáveis.

  5. Em Variáveis, selecione + Adicionar.

  6. Para o nome da variável, insira WebAppName. Para o valor, insira o nome da instância do Serviço de Aplicativo criada acima, como tailspin-space-game-web-4692.

    Importante

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

  7. Repita o processo para adicionar outra variável chamada RegistryName com o valor do servidor de logon do Registro de Contêiner do Azure, como tailspinspacegame4692.azurecr.io. No início da página, selecione Salvar.

  8. Selecione permissões de pipeline e então selecione o ícone + para adicionar um pipeline. Selecione mslearn-tailspin-spacegame-web-docker para conceder permissão ao pipeline para acessar o grupo de variáveis.

  9. Selecione Salvar na parte superior da página para salvar suas variáveis. Seu grupo de variáveis deve ser semelhante ao seguinte:

    Captura de tela do Azure Pipeline mostrando o grupo de variáveis. O grupo contém duas variáveis.

Criar conexões de serviço necessárias

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. Você também criará uma conexão do Registro do Docker para publicar seu contêiner no Registro de Contêiner do Azure.

Importante

Verifique se você está conectado ao portal do Azure e ao Azure DevOps na mesma conta da Microsoft.

  1. No Azure DevOps, acesse o projeto Space Game – Web – Docker.

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

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

  4. Selecione Criar conexão de serviço e escolha O Azure Resource Manager e, em seguida, selecione Avançar.

  5. Próximo à parte superior da página, registro do aplicativo (automático).

  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.

  9. Selecione Nova conexão de serviço e escolha o Registro do Docker e, em seguida, selecione Avançar.

  10. Na parte superior da página, selecione Registro de Contêiner do Azure.

  11. Selecione Entidade de Serviço para o Tipo de Autenticação.

  12. Preencha estes campos:

    Campo Valor
    Subscrição Sua assinatura do Azure
    Registro de Contêiner do Azure Selecione o que você criou anteriormente
    Nome da conexão de serviço Conexão do Registro de Contêiner
  13. Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada.

  14. Selecione Salvar quando terminar.