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 da Automação do Azure não dão suporte à MFA (autenticação multifator).

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.

Screenshot that displays the user-assigned Managed Identity.

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

Importante

A Conta Executar como de Automação do Azure será desativada em 30 de setembro de 2023 e será substituída por Identidades Gerenciadas. Antes dessa data, você precisa migrar de uma conta Executar como para 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. Portanto, se você tentar configurar o controle do código-fonte em Automação do Azure com o Azure Devops (Git) como tipo de controle do código-fonte sem habilitar o Acesso de aplicativos de terceiros por meio do OAuth sob o 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.

  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

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

  1. Na sua conta de Automação do Azure, 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 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. Clique em Salvar ao 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 clique em Pesquisar no GitHub.
    Branch 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 Opção definida como ativada (On) se os runbooks são publicados automaticamente após a sincronização do controle do código-fonte. Caso contrário, é definida como desativada (Off).
    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.

    Screenshot that describes the Source control summary.

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.

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.

Escopo 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.

Escopo 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

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

  1. Selecione o código-fonte da tabela da página de 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 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 exibir a saída 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 do trabalho de sincronização de 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:

  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 de resumo do controle do código-fonte, clique em 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