Использование интеграции системы управления версиями
Интеграция системы управления версиями в службе автоматизации Azure поддерживает однонаправленную синхронизацию из репозитория системы управления версиями. Система управления версиями позволяет поддерживать модули runbook в учетной записи службы автоматизации в актуальном состоянии, используя сценарии в репозитории системы управления версиями GitHub или Azure DevOps. Эта функция упрощает продвижение кода, который был протестирован в среде разработки, к учетной записи службы автоматизации Azure.
Интеграция системы управления версиями позволяет работать вместе с коллегами, отслеживать изменения и выполнять откат к более ранним версиям модулей runbook. Например, система управления версиями позволяет синхронизировать различные ветви внутри себя с учетными записями службы автоматизации Azure, предназначенными для разработки, тестирования или рабочей среды.
Примечание.
Задания синхронизации системы управления версиями выполняются от имени учетной записи службы автоматизации Azure соответствующих пользователей и оплачиваются по тому же тарифу, что и другие задания службы автоматизации. Кроме того, служба автоматизации Azure задания не поддерживают многофакторную проверку подлинности (многофакторная идентификация).
Типы системы управления версиями
Служба автоматизации Azure поддерживает три типа системы управления версиями.
- GitHub
- Azure DevOps (Git)
- Azure DevOps (TFVC)
Необходимые компоненты
- Репозиторий системы управления версиями (GitHub или Azure DevOps).
- Учетная запись Службы автоматизации требует назначенного системой или управляемого пользователем удостоверения. Если вы еще не настроили управляемое удостоверение с помощью учетной записи Службы автоматизации, см. раздел Включение управляемого удостоверения, назначенного системой , или Включите управляемое пользователем удостоверение , чтобы создать его.
- Назначьте пользовательское или управляемое системой удостоверение роли участника в учетной записи Службы автоматизации.
Примечание.
служба автоматизации Azure поддерживает как назначаемое системой, так и назначаемое пользователем управляемое удостоверение с интеграцией системы управления версиями. Для использования управляемого удостоверения, назначаемого пользователем, создайте переменную AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID
автоматизации со значением в качестве идентификатора клиента назначаемого пользователем удостоверения. Назначаемый Managed Identity
пользователем пользователь должен быть включен и иметь доступ участника к учетной записи службы автоматизации. Если эта переменная не создана, по умолчанию мы используем назначаемое системой удостоверение.
Если у вас включена учетная запись запуска от имени и управляемое удостоверение, то управляемое удостоверение имеет предпочтение.
Внимание
служба автоматизации Azure учетная запись запуска от имени отключена 30 сентября 2023 г. Рекомендуется использовать управляемые удостоверения.
Примечание.
Согласно этой документации по Azure DevOps, сторонний доступ к приложениям через политику OAuth по умолчанию отключен для всех новых организаций. Поэтому если вы пытаетесь настроить систему управления версиями в служба автоматизации Azure с помощью Azure DevOps (Git) в качестве типа системы управления версиями без включения доступа к сторонним приложениям через OAuth в разделе "Политики" параметров организации в Azure DevOps, может возникнуть недопустимая ошибка SourceControl securityToken. Таким образом, чтобы избежать этой ошибки, убедитесь, что вы сначала включите доступ к сторонним приложениям через OAuth в разделе "Политики" параметров организации в Azure DevOps.
Настройка системы управления версиями
В этом разделе описывается настройка системы управления версиями для учетной записи службы автоматизации. Можно использовать портал Azure или PowerShell.
Назначение управляемого удостоверения роли участника
В этом примере Azure PowerShell показано, как назначить роль участника в подписке ресурсу учетной записи служба автоматизации Azure.
Откройте консоль PowerShell, используя более высокий уровень привилегий.
Войдите в Azure, выполнив команду
Connect-AzAccount
.Чтобы назначить управляемое удостоверение роли участника , выполните следующую команду.
New-AzRoleAssignment ` -ObjectId <automation-Identity-Object(Principal)-Id> ` -Scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}" ` -RoleDefinitionName "Contributor"
Настройка системы управления версиями на портале Azure
Используйте эту процедуру для настройки системы управления версиями с помощью портала Azure.
В учетной записи службы автоматизации Azure выберите Система управления версиями и нажмите кнопку Добавить.
Выберите Тип системы управления версиями и нажмите кнопку Проверить подлинность.
В открывшемся окне браузера появится приглашение на вход. Последуйте приглашениям, чтобы завершить проверку подлинности.
На странице «Сводка системы управления версиями» используйте поля для заполнения свойств системы управления версиями, определенных ниже. По завершении щелкните Сохранить.
Свойство Description Имя системы управления версиями Понятное имя системы управления версиями. Имя должно содержать только буквы и цифры. Тип системы управления версиями Тип механизма системы управления версиями. Доступные варианты:
* GitHub
* Azure DevOps (Git)
* Azure DevOps (TFVC)Репозиторий Имя репозитория проекта. Извлекаются первые 200 репозиториев. Чтобы найти репозиторий, введите его имя в поле и нажмите кнопку Поиск в GitHub. Ветвь Ветвь, из которой следует извлечь исходные файлы. Настройка целевой ветви недоступна для типа системы управления версиями TFVC. Folder path Папка, содержащая модули runbook для синхронизации, например /Runbooks. Синхронизируются только модули runbook в указанной папке. Рекурсия не поддерживается. Автосинхронизация1 Параметр, который включает или отключает автоматическую синхронизацию при фиксации в репозитории системы управления версиями или репозитории GitHub. Опубликовать модуль Runbook Имеет значение «Вкл.», если модули runbook автоматически публикуются после синхронизации из системы управления версиями, и «Выкл.» в противном случае. Description Текст, указывающий дополнительные сведения о системе управления версиями. 1. Чтобы включить автоматическую синхронизацию при настройке интеграции системы управления версиями с Azure DevOps, необходимо быть администратором проекта или владельцем репозитория GitHub. Сотрудники могут настраивать только управление версиями без автоматической синхронизации.
Автоматическая синхронизация не работает с Приватный канал службы автоматизации. Если включить Приватный канал, вызовы веб-перехватчика системы управления версиями завершаются ошибкой, так как она находится за пределами сети.
Примечание.
- Имя входа для репозитория системы управления версиями может отличаться от имени входа для портала Azure. Не забудьте выполнить вход с использованием правильной учетной записи при настройке системы управления версиями. Если есть сомнения, откройте новую вкладку в браузере, выйдите из dev.azure.com, visualstudio.com или github.com и повторите попытку подключиться к системе управления версиями.
- Межтенантная проверка подлинности не поддерживается.
Настройка системы управления версиями в PowerShell
Для настройки системы управления версиями в службе автоматизации Azure можно также использовать PowerShell. Чтобы использовать командлеты PowerShell для этой операции, необходим личный маркер доступа (PAT). Используйте командлет New-AzAutomationSourceControl, чтобы создать подключение к системе управления версиями. Этот командлет требует защищенной строки для PAT. Сведения о создании защищенной строки см. в ConvertTo-SecureString.
В следующих подразделах показано создание подключения к системе управления версиями для GitHub, Azure DevOps (Git) и Azure DevOps (TFVC).
Создание подключения к системе управления версиями для GitHub
New-AzAutomationSourceControl -Name SCGitHub -RepoUrl https://github.com/<accountname>/<reponame>.git -SourceType GitHub -FolderPath "/MyRunbooks" -Branch main -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName>
Создание подключения к системе управления версиями для Azure DevOps (Git)
Примечание.
Azure DevOps (Git) использует URL-адрес, который обращается к dev.azure.com вместо visualstudio.com, используемый в более ранних форматах. Старый формат URL-адреса https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname>
устарел, но по-прежнему поддерживается. Предпочтительно использовать новый формат.
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"
Создание подключения к системе управления версиями для Azure DevOps (TFVC)
Примечание.
Azure DevOps (TFVC) использует URL-адрес, который обращается к dev.azure.com вместо visualstudio.com, используемым в более ранних форматах. Старый формат URL-адреса https://<accountname>.visualstudio.com/<projectname>/_versionControl
устарел, но по-прежнему поддерживается. Предпочтительно использовать новый формат.
New-AzAutomationSourceControl -Name SCReposTFVC -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoTfvc -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"
Разрешения личного маркера доступа (PAT)
Система управления версиями требует некоторых минимальных разрешений для личных маркеров доступа. Следующие подразделы содержат минимальные разрешения, необходимые для GitHub и Azure DevOps.
Минимальные разрешения PAT для GitHub
В следующей таблице представлены минимальные разрешения личных маркеров доступа, необходимые для GitHub. Дополнительные сведения о создании личных маркеров доступа в GitHub см. в разделе Создание личного маркера доступа для командной строки.
Scope | Description |
---|---|
repo |
|
repo:status |
Доступ к фиксации состояния |
repo_deployment |
Доступ к состоянию развертывания |
public_repo |
Доступ к общим репозиториям |
repo:invite |
Доступ к приглашениям в репозиторий |
security_events |
Чтение и запись событий безопасности |
admin:repo_hook |
|
write:repo_hook |
Запись перехватчиков репозитория |
read:repo_hook |
Чтение перехватчиков репозитория |
Минимальные разрешения PAT для Azure DevOps
В следующем списке определены минимальные разрешения PAT, необходимые для Azure DevOps. Дополнительные сведения о создании PAT в Azure DevOps см. в статье "Проверка подлинности с помощью личных маркеров доступа".
Scope | Тип доступа |
---|---|
Code |
Читать |
Project and team |
Чтение |
Identity |
Чтение |
User profile |
Чтение |
Work items |
Читать |
Service connections |
Чтение, запрос, управление 1 |
1 Разрешение Service connections
требуется только в том случае, если включена автосинхронизация.
Синхронизация с системой управления версиями
Выполните следующие действия для синхронизации с системой управления версиями.
Выберите источник из таблицы на странице системы управления версиями.
Нажмите кнопку Начать синхронизацию, чтобы запустить процесс.
Просмотрите состояние текущего задания синхронизации или предыдущих заданий, щелкнув вкладку Задания синхронизации.
В раскрывающемся меню Система управления версиями выберите механизм системы управления версиями.
Если щелкнуть какое-либо задание, можно просмотреть его выходные данные. Следующий пример иллюстрирует выходные данные задания синхронизации системы управления версиями.
=================================================================== 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 ==================================================================
Дополнительное ведение журнала можно получить, выбрав Все журналы на странице «Сводка по заданию синхронизации системы управления версиями». Эти дополнительные записи журнала могут помочь в устранении неполадок, которые могут возникнуть при использовании системы управления версиями.
Отключение системы управления версиями
Чтобы отключиться от репозитория системы управления версиями, выполните следующие действия.
Откройте Систему управления версиями в разделе Параметры учетной записи учетной записи службы автоматизации Azure.
Выберите механизм системы управления версиями, который требуется удалить.
На странице «Сводка системы управления версиями» щелкните Удалить.
Решение проблем кодирования
Если несколько пользователей редактируют модули runbook в репозитории системы управления версиями с помощью различных редакторов, могут возникнуть проблемы с кодированием. Дополнительные сведения об этой ситуации см. в разделе Распространенные причины проблем кодирования.
Обновление личного маркера доступа
В настоящее время портал Azure нельзя использовать для обновления личного маркера доступа в системе управления версиями. После истечения срока действия маркера доступа или его отзыва систему управления версиями можно обновить, добавив новый маркер доступа одним из следующих способов.
- Используя REST API.
- Используя командлет Update-AzAutomationSourceControl.
Следующие шаги
- Сведения об интеграции системы управления версиями runbook с помощью Visual Studio Codespaces см. в разделе Служба автоматизации Azure. Интеграция системы управления версиями runbook с использованием службы Visual Studio Codespaces.