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

A integração do controlo de código fonte na Automatização do Azure suporta a sincronização de direção única a partir do seu repositório do 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 (Multi-Factor Authentication).

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 usuário atribuído Managed Identity deve estar habilitado 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.

Screenshot that displays the user-assigned Managed Identity.

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 será aposentada em 30 de setembro de 2023 e será substituída por Identidades Gerenciadas. Antes dessa data, você precisa migrar de uma conta Run As para 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.

  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

Use este procedimento para configurar o controle do código-fonte usando o portal do Azure.

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

    Select source control

  2. Escolha Tipo de controle do código-fonte e clique em 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. Clique em 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 clique em 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.
    Folder path 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 você habilitar o Link Privado, as invocações do webhook de controle do código-fonte falharão, pois estão fora da rede.

    Screenshot that describes the Source control summary.

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.

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 do PowerShell da conexão de controle do código-fonte 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 Criando um token de acesso pessoal para a linha de comando.

Scope Descrição
repo
repo:status Status de 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.

Scope Tipo de Acesso
Code Lida
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

Siga estas etapas para sincronizar com o controle do código-fonte.

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

  2. Clique em Iniciar sincronização para iniciar o processo de sincronização.

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

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

    Sync status

  5. Clicar em 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. O log adicional está disponível selecionando Todos os logs na página Resumo do trabalho de sincronização do controle 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.

Desconectar o controle do código-fonte

Para se desconectar de um repositório de controle do código-fonte:

  1. Controle de código aberto em Configurações de conta em sua conta de automação.

  2. Selecione o mecanismo de controle do código-fonte a ser removido.

  3. Na página Resumo do Controle do Código-Fonte, clique em 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