Exercício - Configurar seu ambiente de DevOps do Azure

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.

Você 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, precisas da tua própria subscrição 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 você usar contas da Microsoft diferentes para entrar no Azure e no Azure DevOps, adicione um usuário com nível de acesso Básico à sua organização de DevOps na conta da Microsoft que você usa para entrar no Azure. Consulte Adicionar utilizadores à organização ou projeto para 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 deste 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.

    Captura de tela da criação de um projeto por meio do Gerador de Demonstração do Azure DevOps.

  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. Certifica-te de selecionar a caixa de seleção, mesmo que já tenhas bifurcado o repositório Space Game. O modelo usará sua ramificação existente.

  4. Selecione Criar projeto.

  5. Selecione e navegue até o projeto para acessar 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 fiques 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:

Mover o item de trabalho para Em progresso

Aqui, você atribuirá um item de trabalho a si mesmo nos Painéis do Azure. Você também moverá o item de trabalho para o estado Em Progresso. Na prática, você e sua equipe criariam itens de trabalho no início de cada de 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é Boards. Em seguida, selecione Painéis no menu.

    Captura de tela do Azure DevOps mostrando o local do menu Painéis.

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

    Captura de ecrã dos Painéis do Azure a mostrar a localização da seta para baixo.

  3. Mova o item de trabalho da coluna Fazer para a coluna Fazer.

    Captura de ecrã dos Painéis do Azure mostrando o cartão na coluna A fazer.

No final deste módulo, moverás o cartão para a coluna Concluído após concluir a tarefa.

Criar o ambiente do Serviço de Aplicativo do Azure

No módulo Criar um pipeline de liberaçã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. Você pode acessar a CLI do Azure de 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, em seguida, selecione a experiência Bash.

    Captura de tela do portal do Azure mostrando o local do item de menu do Cloud Shell.

    Observação

    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 um local geográfico específico. 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, que esteja próxima ao seu local, na coluna Nome da 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 os recursos do Azure

Observação

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 comando az group create para criar um grupo de recursos usando o nome definido anteriormente.

    az group create --name $rgName
    
  2. Execute o seguinte comando 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 seguinte comando 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. Este plano funciona no nível Básico. O argumento --is-linux especifica o uso de trabalhadores Linux.

    Importante

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

  4. Execute o seguinte comando 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 seguinte comando 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á disso mais tarde quando verificar o seu trabalho. Aqui está um exemplo:

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  6. Execute o seguinte comando 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. Aqui está um exemplo:

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

Importante

A página Limpar o seu ambiente de DevOps do Azure 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. Certifique-se de executar 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 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.

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

  3. Selecione + Grupo variável.

  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 pipelinee, em seguida, selecione o ícone + para adicionar um novo 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:

    Captura de tela do Pipeline do Azure 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

Certifique-se de que iniciou sessão no portal do Azure e no Azure DevOps com a mesma conta Microsoft.

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

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

  3. Em Pipelines, selecione Ligações de Serviço.

  4. Selecione Nova conexão de serviçoe, em seguida, escolha Azure Resource Managere, em seguida, selecione Avançar.

  5. Próximo ao topo da página, principal de serviço (automático). Em seguida, selecione Avançar.

  6. Preencha estes campos:

    Campo Valor
    Nível de âmbito Subscrição
    Subscrição A sua subscrição do Azure
    Grupo de Recursos tailspin-space-game-rg
    Nome da conexão de serviço Resource Manager - Tailspin - Jogo Espacial

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

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

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

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

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

  11. Preencha estes campos:

    Campo Valor
    Subscrição A sua subscrição 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 para
  12. Certifique-se de que Conceder permissão de acesso a todos os pipelines está selecionado.

  13. Selecione Salvar quando terminar.