Compartilhar via


Usar a integração de controle do código-fonte

A integração de controle do código-fonte na Automação do Azure é compatível com a sincronização unidirecional do repositório do controle do código-fonte. O controle do código-fonte permite que você mantenha os runbooks da sua conta de Automação do Azure atualizados com scripts no repositório de controle do código-fonte do GitHub ou Azure DevOps. Esse recurso facilita a promoção de código que foi testado em seu ambiente de desenvolvimento para sua conta de Automação de produção.

A integração do controle do código-fonte permite que você colabore com facilidade com sua equipe, controle alterações e reverta para versões anteriores dos seus runbooks. Por exemplo, o controle do código-fonte permite sincronizar diferentes branches no controle do código-fonte com suas contas de desenvolvimento, teste ou produção de Automação do Azure.

Observação

  • 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 seguindo mesma taxa que os outros trabalhos de Automação do Azure. Além disso, os Trabalhos de Automação do Azure não dão suporte ao MFA (Autenticação Multifator).
  • A integração de controle do código-fonte tem suporte apenas para runbooks do PowerShell 5.1.

Tipos de controle do código-fonte

A Automação do Azure é compatível com três tipos de controle do código-fonte:

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

Pré-requisitos

Observação

A Automação do Azure oferece suporte à identidade gerenciada atribuída pelo sistema, bem como à 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 de automação AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID com o valor como ID do Cliente da identidade atribuída pelo usuário. O usuário atribuído Managed Identity deve ser habilitado e ter acesso de colaborador à conta de automação. Se essa variável não for criada, por padrão, usamos a identidade atribuída pelo sistema.

Captura de tela que exibe a Identidade Gerenciada atribuída pelo usuário.

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

Importante

A Conta Executar como da Automação do Azure foi desativada em 30 de setembro de 2023. Recomendamos que você use as Identidades gerenciadas.

Observação

De acordo com essa documentação do Azure DevOps, o acesso a aplicativos de terceiros por meio da política OAuth tem o padrão de desativar para todas as novas organizações. Por isso, 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 aos aplicativos de terceiros pelo OAuth no bloco Políticas de Configurações da Organização no Azure DevOps, você poderá obter o erro O securityToken do SourceControl é inválido. Portanto, para evitar esse erro, certifique-se de primeiro habilitar o acesso a aplicativos de terceiros por meio do OAuth no bloco Políticas de Configurações da Organização no Azure DevOps.

Configurar o controle de origem

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

Atribuir identidade gerenciada à função colaborador

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

Para atribuir a identidade gerenciada à função colaborador, siga estas etapas:

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

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

  3. Para atribuir a identidade gerenciada à função 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 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 o tipo controle do código-fonte e selecione Autenticar.

  3. Uma janela do navegador é aberta e solicita suas credenciais de acesso. 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 de 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. O nome deve conter apenas letras e números.
    Tipo de controle do código-fonte O tipo do mecanismo de controle do código-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 pesquisar um repositório, digite o nome no campo e selecione Pesquisar no GitHub.
    Ramo Branch do qual os arquivos de origem são extraídos. O direcionamento de branch não está disponível para o tipo de controle do código-fonte TFVC.
    Caminho da pasta Pasta que contém os runbooks a serem sincronizados; por exemplo, /Runbooks. Somente runbooks na pasta especificada são sincronizados. Não há suporte para recursão.
    Sincronização automática1 Opçã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 repositório GitHub.
    Publicar runbook Definição de Ativada, se os runbooks forem publicados automaticamente após a sincronização do código-fonte. Caso contrário, é definida como Desativada.
    Descrição Texto que especifica 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 ao Azure DevOps, você precisa ser um administrador de projeto ou o proprietário do repositório GitHub. Os colaboradores só podem configurar o Controle do Código-Fonte sem Sincronização Automática.
    A Sincronização Automática não funciona com o Link Privado de Automação. Se você habilitar o Link Privado, haverá falhas nas invocações de webhook de controle do código-fonte, pois elas estão fora da rede.

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

Observação

  • As credenciais de acesso do seu repositório do controle do código-fonte podem ser diferentes das suas credenciais de acesso do portal do Azure. Verifique se você está conectado com a conta correta do seu repositório de controle do código-fonte ao configurar o controle do código-fonte. Se estiver em dúvida, abra uma nova guia no navegador, saia de 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 poderá falhar se o Controle do Código-Fonte tiver sido criado há mais de um ano, já que o webhook usado para invocar o Controle do Código-Fonte expira após um ano. Para resolver esse problema, crie um novo Controle de Origem na conta de Automação com a mesma configuração, que gerará um novo webhook com uma data de expiração estendida.

Configurar 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 nesta operação, você precisa de um PAT (token de acesso pessoal). 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, confira 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 do código-fonte para 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 do código-fonte para Azure DevOps (Git)

Observação

O Azure DevOps (Git) usa uma URL que acessa dev.azure.com no lugar de visualstudio.com, usado nos formatos anteriores. O formato mais antigo da URL https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> foi preterido, mas ainda é compatível. O novo formato é preferencial.

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 do código-fonte para Azure DevOps (TFVC)

Observação

O Azure DevOps (TFVC) usa uma URL que acessa dev.azure.com no lugar de visualstudio.com, usado nos formatos anteriores. O formato mais antigo da URL https://<accountname>.visualstudio.com/<projectname>/_versionControl foi preterido, mas ainda é compatível. O novo formato é preferencial.

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 do token de acesso pessoal (PAT)

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

Permissões mínimas do PAT para GitHub

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

Scope Descrição
repo
repo:status Acessar status de confirmação
repo_deployment Acessar status de implantação
public_repo Repositórios públicos de acesso
repo:invite Acessar convites de repositório
security_events Ler e gravar 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 do PAT para o Azure DevOps

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

Scope Tipo de acesso
Code Ler
Project and team Ler
Identity Ler
User profile Ler
Work items Ler
Service connections Ler, consulta e gerenciar1

1 A permissão Service connections só será necessário se você tiver a sincronização automática habilitada.

Sincronizar com controle do código-fonte

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

  1. Selecione a origem da tabela na página Controle de origem .

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

  3. Exiba o status do trabalho de sincronização atual ou anterior selecionando a guia Sincronizar trabalhos .

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

    Status 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 do 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 registro em log adicional está disponível selecionando Todos os Logs na página Resumo da Tarefa de Sincronização do Controle do Código-fonte. Essas entradas adicionais no podem ajudá-lo a solucionar problemas que venham a surgir durante o uso do controle do código-fonte.

Desconexão do controle do código-fonte

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

  1. Abra Controle do código-fonte em Configurações da Conta da sua conta de Automação do Azure.

  2. Selecione o mecanismo de controle do código-fonte que você deseja remover.

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

Tratar problemas de codificação

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

Atualizar o PAT

No momento, você não pode usar o portal do Azure para atualizar o PAT no controle do código-fonte. Quando seu PAT vencer ou for revogado, você poderá atualizar o controle do código-fonte com um novo token de acesso de uma das seguintes maneiras:

Próximas etapas