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
- Um repositório de controle do código-fonte (GitHub ou Azure DevOps)
- A conta de Automação exige uma identidade gerenciada atribuída pelo sistema ou atribuída pelo usuário. Se você não configurou uma identidade gerenciada atribuída pelo sistema com sua conta de Automação, confira Habilitar identidade gerenciada atribuída pelo sistema ou habilitar identidade gerenciada atribuída pelo usuário para criá-la.
- Atribua a identidade gerenciada atribuída pelo sistema ou pelo usuário à função de Colaborador na conta de Automação.
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.
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.
Abra o console do PowerShell com privilégios elevados.
Entre no Azure executando o seguinte comando
Connect-AzAccount
.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.
Na sua conta de Automação do Azure, selecione Controle do código-fonte e clique em Adicionar.
Escolha Tipo de controle do código-fonte e clique em Autenticar.
Uma janela do navegador é aberta e solicita suas credenciais de acesso. Siga as instruções para concluir a autenticação.
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.
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.
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.
Selecione o código-fonte da tabela da página de controle do código-fonte.
Clique em Iniciar sincronização para iniciar o processo de sincronização.
Exiba o status do trabalho de sincronização atual ou anteriores clicando na guia Trabalhos de sincronização.
No menu suspenso Controle do código-fonte, selecione um mecanismo de controle do código-fonte.
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 ==================================================================
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:
Abra Controle do código-fonte em Configurações da Conta da sua conta de Automação do Azure.
Selecione o mecanismo de controle do código-fonte que você deseja remover.
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:
- Usar a REST API.
- Usar o cmdlet Update-AzAutomationSourceControl.
Próximas etapas
- Para integrar o controle do código-fonte do runbook com o Visual Studio Codespaces, consulte Automação do Azure: integrar o controle do código-fonte do runbook usando o Codespaces do Visual Studio.