Partilhar via


Utilizar a integração do controlo de código fonte

A integração do repositório de controlo de código fonte na Automatização do Azure suporta a sincronização unidirecional a partir do seu repositório de controlo de código fonte. O controlo de código fonte permite-lhe manter os runbooks na sua conta de Automatização atualizados com scripts no seu repositório do controlo de código fonte do GitHub ou do Azure DevOps. Esta funcionalidade facilita a promoção de código que foi testado no seu ambiente de desenvolvimento para a sua conta de Automatização de produção.

A integração do controle do código-fonte permite que você colabore facilmente com sua equipe, acompanhe as alterações e reverta para versões anteriores de seus runbooks. Por exemplo, o controle do código-fonte permite sincronizar diferentes ramificações no controle do código-fonte com suas contas de desenvolvimento, teste e automação da produção.

Nota

  • Os trabalhos de sincronização de controle do código-fonte são executados na conta de Automação do usuário e são cobrados na mesma taxa que outros trabalhos de Automação. Além disso, os Trabalhos de Automação do Azure não suportam MFA (Autenticação Multi-fator).
  • A integração do controle do código-fonte é suportada apenas para runbooks do PowerShell 5.1.

Tipos de controle do código-fonte

A Automação do Azure dá suporte a três tipos de controle de origem:

  • GitHub
  • Azure DevOps (Git)
  • Azure DevOps (TFVC)

Pré-requisitos

Nota

A Automação do Azure dá suporte à identidade gerenciada atribuída ao sistema e à identidade gerenciada atribuída pelo usuário com integração de controle do código-fonte. Para usar uma identidade gerenciada atribuída pelo usuário, crie uma variável AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID de automação com o valor como ID do Cliente da identidade atribuída pelo usuário. O utilizador atribuído Managed Identity deve estar ativado e ter acesso de colaborador à conta de automação. Se essa variável não for criada, por padrão, usaremos a identidade atribuída ao sistema.

Captura de ecrã que apresenta a Identidade Gerida atribuída pelo utilizador.

Se você tiver uma conta Run As e uma identidade gerenciada habilitadas, a identidade gerenciada terá preferência.

Importante

A Conta Run As da Automação do Azure foi desativada em 30 de setembro de 2023. Recomendamos que você use Identidades Gerenciadas.

Nota

De acordo com esta documentação do Azure DevOps, o acesso a aplicativos de terceiros por meio da política OAuth é desativado porpadrão para todas as novas organizações. Portanto, se você tentar configurar o controle do código-fonte na Automação do Azure com o Azure DevOps (Git) como tipo de controle do código-fonte sem habilitar o acesso a aplicativos de terceiros via OAuth no bloco Políticas das Configurações da Organização no Azure DevOps, poderá obter o erro SecurityToken do SourceControl é inválido . Portanto, para evitar esse erro, primeiro habilite o acesso a aplicativos de terceiros via OAuth no bloco Políticas das Configurações da Organização no Azure DevOps.

Configurar o controle do código-fonte

Esta seção informa como configurar o controle do código-fonte para sua conta de automação. Você pode usar o portal do Azure ou o PowerShell.

Atribuir identidade gerenciada à função de Colaborador

Este exemplo usa o Azure PowerShell para mostrar como atribuir a função de Colaborador na assinatura ao recurso de conta de Automação do Azure.

Para atribuir identidade gerenciada à função de Colaborador, siga estas etapas:

  1. Abra um console do PowerShell com privilégios elevados.

  2. Entre no Azure executando o comando Connect-AzAccount.

  3. Para atribuir a identidade gerenciada à função de Colaborador , execute o seguinte comando.

    New-AzRoleAssignment `
        -ObjectId <automation-Identity-Object(Principal)-Id> `
        -Scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}" `
        -RoleDefinitionName "Contributor"
    

Configurar o controle do código-fonte no portal do Azure

Para configurar o controle do código-fonte usando o portal do Azure, siga estas etapas:

  1. Na sua conta de automação, selecione Controle do código-fonte e selecione Adicionar.

    Selecionar controle do código-fonte

  2. Escolha Tipo de controle do código-fonte e, em seguida, selecione Autenticar.

  3. Uma janela do navegador é aberta e solicita que você faça login. Siga as instruções para concluir a autenticação.

  4. Na página Resumo do Controle do Código-Fonte , use os campos para preencher as propriedades do controle do código-fonte definidas abaixo. Selecione Salvar quando terminar.

    Propriedade Descrição
    Nome do controle do código-fonte Um nome amigável para o controle do código-fonte. Este nome deve conter apenas letras e números.
    Tipo de controle do código-fonte Tipo de mecanismo de controle da fonte. As opções disponíveis são:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    Repositório Nome do repositório ou projeto. Os primeiros 200 repositórios são recuperados. Para procurar um repositório, digite o nome no campo e selecione Pesquisar no GitHub.
    Filial Ramificação da qual extrair os arquivos de origem. A segmentação por ramificação não está disponível para o tipo de controle de origem TFVC.
    Caminho da pasta Pasta que contém os runbooks para sincronizar, por exemplo, /Runbooks. Somente runbooks na pasta especificada são sincronizados. Não há suporte para recursão.
    Sincronizaçãoautomática 1 Configuração que ativa ou desativa a sincronização automática quando uma confirmação é feita no repositório de controle do código-fonte ou no repositório GitHub.
    Publicar Runbook Configuração de Ativado, se os runbooks forem publicados automaticamente após a sincronização do controle do código-fonte, e Desativado caso contrário.
    Descrição Texto especificando detalhes adicionais sobre o controle do código-fonte.

    1 Para habilitar a Sincronização Automática ao configurar a integração do controle do código-fonte com o Azure DevOps, você deve ser o Administrador do Projeto ou o proprietário do repositório GitHub. Os colaboradores só podem configurar o Controle do Código-Fonte sem a Sincronização Automática.
    A Sincronização Automática não funciona com o Automation Private Link. Se habilitar o Link Privado, as invocações do webhook de controlo de origem falharão, pois estão fora da rede.

    Captura de tela que descreve o resumo do controle do código-fonte.

Nota

  • O logon do repositório de controle do código-fonte pode ser diferente do logon do portal do Azure. Certifique-se de estar conectado com a conta correta para seu repositório de controle do código-fonte ao configurar o controle do código-fonte. Em caso de dúvida, abra uma nova guia no navegador, saia do dev.azure.com, visualstudio.com ou github.com e tente se reconectar ao controle do código-fonte.
  • Não há suporte para autenticação entre locatários.
  • A sincronização automática pode falhar se o controle do código-fonte tiver sido criado há mais de um ano, pois o webhook usado para invocar o controle do código-fonte expira após um ano. Para resolver esse problema, crie um novo controle do código-fonte na conta de automação com a mesma configuração, que gerará um novo webhook com uma data de expiração estendida.

Configurar o controle do código-fonte no PowerShell

Você também pode usar o PowerShell para configurar o controle do código-fonte na Automação do Azure. Para usar os cmdlets do PowerShell para essa operação, você precisa de um token de acesso pessoal (PAT). Use o cmdlet New-AzAutomationSourceControl para criar a conexão de controle do código-fonte. Este cmdlet requer uma cadeia de caracteres segura para o PAT. Para saber como criar uma cadeia de caracteres segura, consulte ConvertTo-SecureString.

As subseções a seguir ilustram a criação da conexão de controlo de código-fonte no PowerShell para GitHub, Azure DevOps (Git) e Azure DevOps (TFVC).

Criar conexão de controle de origem para o GitHub

New-AzAutomationSourceControl -Name SCGitHub -RepoUrl https://github.com/<accountname>/<reponame>.git -SourceType GitHub -FolderPath "/MyRunbooks" -Branch main -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName>

Criar conexão de controle de origem para o Azure DevOps (Git)

Nota

O Azure DevOps (Git) usa uma URL que acessa dev.azure.com em vez de visualstudio.com, usada em formatos anteriores. O formato https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> de URL mais antigo foi preterido, mas ainda é suportado. O novo formato é preferido.

New-AzAutomationSourceControl -Name SCReposGit -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoGit -AccessToken <secureStringofPAT> -Branch main -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"

Criar conexão de controle de origem para o Azure DevOps (TFVC)

Nota

O Azure DevOps (TFVC) usa uma URL que acessa dev.azure.com em vez de visualstudio.com, usada em formatos anteriores. O formato https://<accountname>.visualstudio.com/<projectname>/_versionControl de URL mais antigo foi preterido, mas ainda é suportado. O novo formato é preferido.

New-AzAutomationSourceControl -Name SCReposTFVC -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoTfvc -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"

Permissões de token de acesso pessoal (PAT)

O controle do código-fonte requer algumas permissões mínimas para PATs. As subseções a seguir contêm as permissões mínimas necessárias para o GitHub e o Azure DevOps.

Permissões mínimas de PAT para o GitHub

A tabela a seguir define as permissões mínimas de PAT necessárias para o GitHub. Para obter mais informações sobre como criar uma PAT no GitHub, consulte Criar um token de acesso pessoal para a linha de comando.

Âmbito de aplicação Descrição
repo
repo:status Estado da confirmação de acesso
repo_deployment Acessar o status da implantação
public_repo Aceder a repositórios públicos
repo:invite Acessar convites de repositório
security_events Ler e escrever eventos de segurança
admin:repo_hook
write:repo_hook Escrever ganchos de repositório
read:repo_hook Ler ganchos de repositório
Permissões mínimas de PAT para o Azure DevOps

A lista a seguir define as permissões mínimas de PAT necessárias para o Azure DevOps. Para obter mais informações sobre como criar uma PAT no Azure DevOps, consulte Autenticar acesso com tokens de acesso pessoal.

Âmbito de aplicação Tipo de Acesso
Code Leitura
Project and team Leitura
Identity Leitura
User profile Leitura
Work items Leitura
Service connections Ler, consultar, gerir1

1 A Service connections permissão só é necessária se tiver ativado a sincronização automática.

Sincronizar com o controle do código-fonte

Para sincronizar com o controle do código-fonte, execute estas etapas:

  1. Selecione a fonte na tabela na página Controle do código-fonte .

  2. Selecione Iniciar sincronização para iniciar o processo de sincronização.

  3. Exiba o status do trabalho de sincronização atual ou dos anteriores selecionando a guia Trabalhos de sincronização .

  4. No menu pendente Controle de código-fonte, selecione um mecanismo de controlo do código-fonte.

    Estado da sincronização

  5. Selecionar um trabalho permite que você visualize o resultado do trabalho. O exemplo a seguir é a saída de um trabalho de sincronização de controle do código-fonte.

    ===================================================================
    
    Azure Automation Source Control.
    Supported runbooks to sync: PowerShell Workflow, PowerShell Scripts, DSC Configurations, Graphical, and Python 2.
    
    Setting AzEnvironment.
    
    Getting AzureRunAsConnection.
    
    Logging in to Azure...
    
    Source control information for syncing:
    
    [Url = https://ContosoExample.visualstudio.com/ContosoFinanceTFVCExample/_versionControl] [FolderPath = /Runbooks]
    
    Verifying url: https://ContosoExample.visualstudio.com/ContosoFinanceTFVCExample/_versionControl
    
    Connecting to VSTS...
    
    Source Control Sync Summary:
    
    2 files synced:
     - ExampleRunbook1.ps1
     - ExampleRunbook2.ps1
    
    ==================================================================
    
    
  6. Registos adicionais estão disponíveis ao selecionar Todos os registos na página Resumo do Trabalho de Sincronização do Controlo do Código-Fonte. Essas entradas de log adicionais podem ajudá-lo a solucionar problemas que podem surgir ao usar o controle do código-fonte.

Desligar o controlo da fonte

Para se desconectar de um repositório de controle do código-fonte, siga estas etapas:

  1. Controlo de origem em Definições de Conta na conta de automatização.

  2. Seleccione o mecanismo de controlo da fonte a remover.

  3. Na página Resumo do Controle do Código-Fonte , selecione Excluir.

Lidar com problemas de codificação

Se várias pessoas estiverem editando runbooks em seu repositório de controle de código-fonte usando editores diferentes, problemas de codificação podem ocorrer. Para saber mais sobre essa situação, consulte Causas comuns de problemas de codificação.

Atualizar a PAT

Atualmente, não é possível usar o portal do Azure para atualizar a PAT no controle do código-fonte. Quando a PAT expirar ou for revogada, pode atualizar o controlo do código-fonte com um novo token de acesso de uma das seguintes formas:

Próximos passos