Exercício – configurar o ambiente do Azure DevOps

Concluído

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

Vai aprender a:

  • Configure seu projeto de DevOps do Azure.
  • Gerencie seus itens de trabalho com os Painéis do Azure.
  • 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. Pode começar a utilizar 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 utilizar contas Microsoft diferentes para iniciar sessão no Azure e no Azure DevOps, adicione um utilizador com o nível de acesso Básico à sua organização de DevOps na conta Microsoft que utiliza para iniciar sessão 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 que você usou para entrar em sua assinatura do Azure.

Obtenha o projeto Azure DevOps

Aqui, você garantirá que sua organização do Azure DevOps esteja configurada para concluir o restante deste módulo. Para fazer isso, você executará um modelo que cria um projeto no Azure DevOps.

Os módulos neste percurso de aprendizagem formam uma progressão. Você acompanha a equipe da web da Tailspin durante sua jornada de DevOps. Para fins de aprendizagem, cada módulo tem seu próprio projeto Azure DevOps.

Executar o modelo

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

No site do Gerador de Demonstração do Azure DevOps, siga estas etapas para executar o modelo:

  1. Selecione Entrar e aceite os termos de uso.

  2. Na página Criar Novo Projeto, selecione sua organização do Azure DevOps. Insira um nome de projeto, como Space Game - web - Docker.

    Screenshot of creating a project through Azure DevOps Demo Generator.

  3. Selecione Sim, quero bifurcar este repositório>Autorizar. Se solicitado, autorize o acesso à sua conta do GitHub.

    Importante

    Você precisa selecionar essa opção para que o modelo possa se conectar ao seu repositório GitHub. Certifique-se de selecionar a caixa de seleção, mesmo que você já tenha bifurcado o repositório do Space Game . O modelo usará sua bifurcação existente.

  4. Selecione Criar projeto.

  5. Selecione Navegar para o projeto para ir para o seu projeto no Azure DevOps.

Importante

Neste módulo, a página Limpar seu ambiente de DevOps do Azure contém etapas de limpeza importantes. A limpeza ajuda a garantir que não fica sem minutos de compilação gratuitos. Certifique-se de seguir as etapas de limpeza, mesmo que não conclua este módulo.

Defina a visibilidade do seu projeto

Inicialmente, sua bifurcação do repositório do Jogo Espacial no GitHub é definida como pública, enquanto o projeto criado pelo modelo de DevOps do Azure é 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ê escolher compartilhá-lo. Da mesma forma, no Azure DevOps, os projetos públicos fornecem acesso somente leitura a usuários não autenticados, enquanto os projetos privados exigem que os usuários recebam 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, para seus projetos pessoais, você deve determinar a visibilidade e o acesso que deseja conceder a outras pessoas. Por exemplo, se seu projeto for de código aberto, você pode optar por tornar público o repositório do GitHub e o projeto do Azure DevOps. Se seu projeto for proprietário, você normalmente tornará o repositório do GitHub e o projeto do Azure DevOps privados.

Mais tarde, você pode achar os seguintes recursos úteis para determinar qual opção é melhor para o seu projeto:

Passar o item de trabalho para Doing (Em Curso)

Aqui, você atribuirá um item de trabalho a si mesmo nos Painéis do Azure. Também irá passar o item de trabalho para o estado Doing (Em Curso). Na prática, você e sua equipe criariam itens de trabalho no início de cada sprint, ou iteração de trabalho.

Este trabalho dá-lhe uma lista de verificação a partir da qual trabalhar. 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 versão de contêiner do site usando o Docker, para a coluna Fazendo e, em seguida, atribuir-se ao item de trabalho.

Para configurar o item de trabalho:

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

    Screenshot of Azure DevOps showing the location of the Boards menu.

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

    Screenshot of Azure Boards showing the location of the down arrow.

  3. Mova o item de trabalho da coluna Tarefas Pendentes para a coluna Tarefas Pendentes .

    Screenshot of Azure Boards showing the card in the Doing column.

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

No módulo Criar um pipeline de versão com o Azure Pipelines, você criou uma instância do Serviço de Aplicativo usando o portal do Azure. Embora o portal seja uma excelente ferramenta para explorar as ofertas do Azure, configurar componentes como o Serviço de Aplicativo pode se tornar complicado.

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. Pode aceder à CLI do Azure a partir de um terminal ou do Visual Studio Code.

Importante

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

Inicie o portal do Azure do Cloud Shell inn

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

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

    Screenshot of the Azure portal showing the location of the Cloud Shell menu item.

    Nota

    O Cloud Shell requer um recurso de armazenamento do Azure para manter todos os arquivos criados no Cloud Shell. Ao abrir o Cloud Shell pela primeira vez, você será solicitado a criar um grupo de recursos, uma conta de armazenamento e um compartilhamento de Arquivos do Azure. Essa configuração é usada automaticamente para todas as futuras sessões do Cloud Shell.

Selecione uma região do Azure

Uma região é um ou mais datacenters do Azure localizados em uma localização geográfica especí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. Quando 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 explicitamente especificada.

  1. Execute o seguinte comando 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 ao seu local na coluna Nome na saída. Por exemplo, você pode escolher eastasia ou westus2.

  3. Execute o seguinte comando 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 configuração mais conveniente e menos propenso a erros. O uso de variáveis para cadeias 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 seu Aplicativo Web do Serviço de Aplicativo e Registro de Contêiner do Azure. O uso de 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 seu grupo de recursos e do plano do Serviço de Aplicativo.

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

Criar recursos do Azure

Nota

Para fins de aprendizagem, você verá as configurações de rede padrão aqui. Estas definições tornam o seu site acessível a partir da 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 apenas você e sua equipe podem acessar. Mais tarde, você pode reconfigurar sua rede para disponibilizar o site para seus usuários.

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

    az group create --name $rgName
    
  2. Execute o seguinte az acr create comando 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 seguinte az appservice plan create comando 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 --sku argumento especifica o plano B1. Este plano é executado na camada Básica. O --is-linux argumento especifica o uso de trabalhadores Linux.

    Importante

    Se a SKU B1 não estiver disponível em sua assinatura do Azure, escolha um plano diferente, como S1 (Padrão).

  4. Execute o seguinte az webapp create comando 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 quando verificar seu trabalho. Eis 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 posteriormente.

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

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

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

Importante

A página Limpar o ambiente do Azure DevOps neste módulo contém passos de limpeza importantes. A limpeza ajuda a garantir que você não seja cobrado pelos recursos do Azure depois de concluir este módulo. Certifique-se de que executa os passos de limpeza, mesmo que não conclua este módulo.

Criar variáveis de pipeline no Azure Pipelines

Em Criar um pipeline de liberação com o Azure Pipelines, você adicionou uma variável ao seu pipeline que armazena o nome do seu aplicativo Web no Serviço de Aplicativo. Você vai fazer a mesma coisa aqui. Além disso, você adicionará o nome do seu 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 das instâncias forem alterados, você poderá atualizar as variáveis e acionar o pipeline sem modificar a configuração.

Para adicionar as variáveis:

  1. No Azure DevOps, vá para o seu projeto Space Game - Web - Docker .

  2. Em Pipelines, selecione Biblioteca.

    Screenshot of Azure Pipelines showing the Library menu option.

  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, digite 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 o nome do host. Neste exemplo, você digitaria 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 seu servidor de logon do Registro de Contêiner do Azure, como tailspinspacegame4692.azurecr.io.

  8. Selecione Permissões de pipeline e, em seguida, selecione o + sinal para adicionar um pipeline. Selecione mslearn-tailspin-spacegame-web-docker para dar 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 ter a seguinte aparência:

    Screenshot of Azure Pipeline showing the variable group. The group contains two variables.

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

Certifique-se de que tem sessão iniciada no portal do Azure e no Azure DevOps na mesma conta Microsoft.

  1. No Azure DevOps, vá para o seu projeto Space Game - Web - Docker .

  2. No canto inferior da página, selecione Configurações do projeto.

  3. Em Pipelines, selecione Ligações do serviço.

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

  5. Perto da parte superior da página, Entidade de serviço (automática). Em seguida, selecione Seguinte.

  6. Preencha estes campos:

    Campo valor
    Nível de âmbito Subscrição
    Subscrição a subscrição do Azure
    Grupo de Recursos tailspin-espaço-jogo-rg
    Nome da conexão de serviço Gestor de Recursos - Tailspin - Jogo Espacial

    Durante o processo, poderá ser-lhe pedido para iniciar sessão na sua conta Microsoft.

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

  8. Selecione Guardar.

    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 pela segunda vez.

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

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

  11. Preencha estes campos:

    Campo valor
    Subscrição a subscrição do Azure
    Registo do Azure Container Registry Selecione o que você criou anteriormente
    Nome da conexão de serviço Conexão do Registro de Contêiner
  12. Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada.

  13. Quando terminar, selecione Guardar.