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
- Um repositório de controlo de código fonte (GitHub ou Azure DevOps)
- A Conta de automatização necessita de uma identidade gerida atribuída pelo sistema ou atribuída pelo utilizador. Se não tiver configurado uma identidade gerida com a Conta de automatização, veja Ativar a identidade gerida atribuída pelo sistema ou Ativar a identidade gerida atribuída pelo utilizador para a criar.
- Atribuir a identidade gerida atribuída pelo utilizador ou atribuída pelo sistema à função Contribuidor na Conta de automatização.
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.
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 por padrã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.
Abra um console do PowerShell com privilégios elevados.
Entre no Azure executando o comando
Connect-AzAccount
.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.
Na sua conta de automação, 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 que você faça login. 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 do controle do código-fonte definidas abaixo. Clique em Salvar quando terminar.
Property Description 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. Description 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 do controle do código-fonte falharão, pois estão fora da rede.
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.
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 | Description |
---|---|
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 |
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
Siga estas etapas para sincronizar com o controle do código-fonte.
Selecione a fonte na tabela na página 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 dos 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 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 ==================================================================
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.
Desligar o controlo da fonte
Para se desligar de um repositório de controlo de fontes:
Controlo de Código aberto em Definições de Conta na sua conta de Automatização.
Seleccione o mecanismo de controlo da fonte a remover.
Na página Resumo do controlo de origem, clique em Eliminar.
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:
- Use a API REST.
- Use o cmdlet Update-AzAutomationSourceControl .
Próximos passos
- Para integrar o controle do código-fonte do runbook com o Visual Studio Codespaces, consulte Automação do Azure: integrando o controle do código-fonte do runbook usando o Visual Studio Codespaces.