Adicionar e configurar um catálogo do GitHub ou do Azure Repos

Este guia explica como adicionar e configurar um catálogo no centro de desenvolvimento dos Ambientes de Implantação Azure. Um catálogo é um repositório hospedado no GitHub ou no Azure DevOps.

Você pode usar um catálogo para fornecer às suas equipes de desenvolvimento um conjunto de modelos de infraestrutura como código (IaC) selecionados chamados de definições de ambiente.

Os Ambientes de Implantação dão suporte a catálogos hospedados no Azure Repos (o serviço de repositório no Azure, comumente conhecido como Azure DevOps) e catálogos hospedados no GitHub. O Azure Repos dá suporte à autenticação atribuindo permissões a uma identidade gerenciada. O Azure Repos e o GitHub dão suporte ao uso de um token de acesso pessoal (PAT) para autenticação. Para proteger ainda mais os seus modelos, o catálogo é criptografado; os Ambientes de Implantação Azure dão suporte à criptografia em repouso com chaves de criptografia gerenciadas pela plataforma, gerenciadas pela Microsoft para Serviços do Azure.

  • Para saber como hospedar um repositório no GitHub, confira Introdução ao GitHub.
  • Para saber como hospedar um repositório do Git em um projeto do Azure Repos, confira Azure Repos.

A Microsoft oferece um catálogo de início rápido que você pode adicionar ao centro de desenvolvimento e um catálogo de exemplo que você pode usar como o seu repositório. Você também pode usar seu próprio repositório privado ou pode bifurcar e personalizar as definições de ambiente no catálogo de exemplo.

Configurar uma identidade gerenciada para o centro de desenvolvimento

Depois de criar um centro de desenvolvimento, antes de anexar um catálogo, você deve configurar uma identidade gerenciada, também chamada de MSI (identidade de serviço gerenciado), para o centro de desenvolvimento. Você pode anexar uma identidade gerenciada atribuída pelo sistema (MSI atribuída pelo sistema) ou uma identidade gerenciada atribuída pelo usuário (MSI atribuída pelo usuário). Em seguida, você atribui funções à identidade gerenciada para permitir que o centro de desenvolvimento crie tipos de ambiente em sua assinatura e leia o projeto do Azure Repos que contém o repositório de catálogo.

Se o centro de desenvolvimento não tiver uma MSI anexada, siga as etapas em Configurar uma identidade gerenciada para criar uma e atribuir funções para a identidade gerenciada do centro de desenvolvimento.

Para saber mais sobre identidades gerenciadas, confira O que são identidades gerenciadas para recursos do Azure?

Adicionar um catálogo

Você pode adicionar um catálogo de um repositório do Azure Repos ou de um repositório do GitHub. Você pode optar por autenticar-se atribuindo permissões a uma MSI ou usando um PAT, que você armazena em um cofre de chaves.

Selecione a guia para o tipo de repositório e autenticação que você deseja usar.

Para adicionar um catálogo, conclua as seguintes tarefas:

  • Atribua permissões no Azure Repos para a identidade gerenciada do centro de desenvolvimento.
  • Adicione o repositório como um catálogo.

Atribuir permissões no Azure Repos para a identidade gerenciada do centro de desenvolvimento

Você deve conceder permissões à identidade gerenciada do centro de desenvolvimento ao repositório no Azure Repos.

  1. Entre na sua organização do Azure DevOps.

    Observação

    Sua organização do Azure DevOps deve estar no mesmo diretório que a assinatura do Azure que contém o centro de desenvolvimento.

  2. Selecione Configurações da organização.

    Captura de tela mostrando a página da organização do Azure DevOps, com as Configurações da Organização realçadas.

  3. Na página Visão Geral, selecione Usuários.

    Captura de tela mostrando a página de visão geral da Organização, com os Usuários realçados.

  4. Na página Usuários, selecione Adicionar usuários.

    Captura de tela mostrando a página Usuários, com Adicionar usuário realçado.

  5. Conclua Adicionar novos usuários inserindo ou selecionando as seguintes informações e, em seguida, selecione Adicionar:

    Nome Valor
    Usuários ou entidades de serviço Insira o nome do centro de desenvolvimento.
    Quando você usa uma MSI atribuída pelo sistema, especifique o nome do centro de desenvolvimento, não a ID do objeto da conta gerenciada. Ao usar uma MSI atribuída pelo usuário, use o nome da conta gerenciada.
    Nível de acesso Selecione Basic.
    Adicionar aos projetos Selecione o projeto que contém o repositório.
    Grupos de DevOps do Azure Selecione Leitores de projeto.
    Enviar convites por email (somente para usuários) Desmarque a caixa de seleção.

    Captura de tela mostrando Adicionar usuários, com entradas de exemplo e Adicionar realçado.

Adicionar o repositório como um catálogo

Os Ambientes de Implantação Azure dão suporte à anexação de repositórios do Azure Repos e de repositórios do GitHub. Você pode armazenar um conjunto de modelos de IaC coletados em um repositório. A anexação do repositório a um centro de desenvolvimento como um catálogo fornece às equipes de desenvolvimento acesso aos modelos e permite que elas criem ambientes consistentes com agilidade.

As etapas a seguir permitem anexar um repositório do Azure Repos.

  1. No portal do Azure, navegue até o centro de desenvolvimento.

  2. No menu esquerdo, em Configuração do ambiente, selecione Catálogos e, em seguida, selecione Adicionar.

    Captura de tela que mostra o painel Catálogos.

  3. No painel Adicionar catálogo, insira as informações a seguir e clique em Adicionar:

    Campo Valor
    Nome Insira um nome para o catálogo.
    Localização do catálogo Escolha Azure DevOps.
    Tipo de autenticação Selecione Identidade Gerenciada.
    Organização Selecione sua organização do Azure DevOps.
    Projeto Na lista de projetos, selecione o projeto que armazena o repositório.
    Repo Na lista de repositórios, selecione o repositório que você deseja adicionar.
    Branch Selecione o branch.
    Caminho da pasta O Computador de desenvolvimento recupera uma lista de pastas em seu branch. Selecione a pasta que armazena seus modelos de IaC.

    Captura de tela mostrando o painel Adicionar catálogo com entradas de exemplos e Adicionar realçado.

  4. Verifique se o catálogo aparece em Catálogos no centro de desenvolvimento. Quando a conexão é bem-sucedida, o Status exibe Sincronização bem-sucedida. Conectar a um catálogo pode levar alguns minutos na primeira vez.

Atualizar um catálogo

Se você atualizar o conteúdo ou a definição do modelo do Azure Resource Manager (modelo do ARM) no repositório anexado, você poderá fornecer o conjunto mais recente de definições de ambiente para suas equipes de desenvolvimento sincronizando o catálogo.

Para sincronizar um catálogo atualizado nos Ambientes de Implantação Azure:

  1. No menu esquerdo do centro de desenvolvimento, em Configuração do ambiente, selecione Catálogos.

  2. Selecione o catálogo específico e selecione Sincronizar. O serviço examina o repositório e disponibiliza a lista mais recente de definições de ambiente para todos os projetos associados no centro de desenvolvimento.

Excluir um catálogo

Você pode excluir um catálogo para removê-lo do centro de desenvolvimento dos Ambientes de Implantação Azure. Os modelos em um catálogo excluído não estarão disponíveis para as equipes de desenvolvimento quando novos ambientes forem implantados. Atualize a referência de definição de ambiente para todos os ambientes existentes que foram criados usando as definições de ambiente no catálogo excluído. Se a referência não for atualizada e o ambiente for reimplantado, a implantação falhará.

Para excluir um catálogo:

  1. No menu esquerdo do centro de desenvolvimento, em Configuração do ambiente, selecione Catálogos.

  2. Selecione o catálogo específico e clique em Excluir.

  3. Na caixa de diálogo Excluir catálogo, selecione Continuar para excluir o catálogo.

Erros de sincronização de catálogo

Ao adicionar ou sincronizar um catálogo, é possível encontrar um erro de sincronização. Um erro de sincronização indica que algumas ou todas as definições de ambiente têm erros. Use a CLI do Azure ou a API REST para obter (GET) o catálogo. A resposta GET mostra o tipo de erro:

  • Definições de ambiente ignoradas que foram detectadas como duplicatas.
  • Definições de ambiente inválidas que falharam devido a erros de esquema, referência ou validação.

Resolver erros de definição de ambiente ignorados

Um erro de definição de ambiente ignorado ocorrerá se você adicionar duas ou mais definições de ambiente com o mesmo nome. Você pode resolver esse problema renomeando as definições de ambiente para que cada definição de ambiente tenha um nome exclusivo dentro do catálogo.

Resolver erros de definição de ambiente inválidos

Um erro de definição de ambiente inválido pode ocorrer por vários motivos:

  • Erros no esquema de manifesto. Certifique-se de que o arquivo de ambiente de definição do ambiente corresponda ao esquema necessário.

  • Erros de validação. Verifique os seguintes itens para resolver erros de validação:

    • Certifique-se de que o tipo de mecanismo do arquivo de ambiente esteja configurado corretamente como ARM.
    • Certifique-se de que o nome de definição do ambiente esteja entre 3 e 63 caracteres.
    • Certifique-se de que o nome da definição do ambiente inclua apenas caracteres válidos para uma URL, que são caracteres alfanuméricos e os símbolos a seguir: ~!,.';:=-_+()*&$@
  • Erros de referência. Certifique-se de que o caminho do modelo a que o arquivo de ambiente faz referência seja um caminho relativo válido para um arquivo no repositório.