Поделиться через


Использование интеграции системы управления версиями

Интеграция системы управления версиями в службе автоматизации Azure поддерживает однонаправленную синхронизацию из репозитория системы управления версиями. Система управления версиями позволяет поддерживать модули runbook в учетной записи службы автоматизации в актуальном состоянии, используя сценарии в репозитории системы управления версиями GitHub или Azure DevOps. Эта функция упрощает продвижение кода, который был протестирован в среде разработки, к учетной записи службы автоматизации Azure.

Интеграция системы управления версиями позволяет работать вместе с коллегами, отслеживать изменения и выполнять откат к более ранним версиям модулей runbook. Например, система управления версиями позволяет синхронизировать различные ветви внутри себя с учетными записями службы автоматизации Azure, предназначенными для разработки, тестирования или рабочей среды.

Примечание.

Задания синхронизации системы управления версиями выполняются от имени учетной записи службы автоматизации Azure соответствующих пользователей и оплачиваются по тому же тарифу, что и другие задания службы автоматизации. Кроме того, служба автоматизации Azure задания не поддерживают многофакторную проверку подлинности (многофакторная идентификация).

Типы системы управления версиями

Служба автоматизации Azure поддерживает три типа системы управления версиями.

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

Необходимые компоненты

Примечание.

служба автоматизации 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.

  1. Откройте консоль PowerShell, используя более высокий уровень привилегий.

  2. Войдите в Azure, выполнив команду Connect-AzAccount.

  3. Чтобы назначить управляемое удостоверение роли участника , выполните следующую команду.

    New-AzRoleAssignment `
        -ObjectId <automation-Identity-Object(Principal)-Id> `
        -Scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}" `
        -RoleDefinitionName "Contributor"
    

Настройка системы управления версиями на портале Azure

Используйте эту процедуру для настройки системы управления версиями с помощью портала Azure.

  1. В учетной записи службы автоматизации Azure выберите Система управления версиями и нажмите кнопку Добавить.

    Выбор системы управления версиями

  2. Выберите Тип системы управления версиями и нажмите кнопку Проверить подлинность.

  3. В открывшемся окне браузера появится приглашение на вход. Последуйте приглашениям, чтобы завершить проверку подлинности.

  4. На странице «Сводка системы управления версиями» используйте поля для заполнения свойств системы управления версиями, определенных ниже. По завершении щелкните Сохранить.

    Свойство 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 требуется только в том случае, если включена автосинхронизация.

Синхронизация с системой управления версиями

Выполните следующие действия для синхронизации с системой управления версиями.

  1. Выберите источник из таблицы на странице системы управления версиями.

  2. Нажмите кнопку Начать синхронизацию, чтобы запустить процесс.

  3. Просмотрите состояние текущего задания синхронизации или предыдущих заданий, щелкнув вкладку Задания синхронизации.

  4. В раскрывающемся меню Система управления версиями выберите механизм системы управления версиями.

    Состояние синхронизации

  5. Если щелкнуть какое-либо задание, можно просмотреть его выходные данные. Следующий пример иллюстрирует выходные данные задания синхронизации системы управления версиями.

    ===================================================================
    
    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. Дополнительное ведение журнала можно получить, выбрав Все журналы на странице «Сводка по заданию синхронизации системы управления версиями». Эти дополнительные записи журнала могут помочь в устранении неполадок, которые могут возникнуть при использовании системы управления версиями.

Отключение системы управления версиями

Чтобы отключиться от репозитория системы управления версиями, выполните следующие действия.

  1. Откройте Систему управления версиями в разделе Параметры учетной записи учетной записи службы автоматизации Azure.

  2. Выберите механизм системы управления версиями, который требуется удалить.

  3. На странице «Сводка системы управления версиями» щелкните Удалить.

Решение проблем кодирования

Если несколько пользователей редактируют модули runbook в репозитории системы управления версиями с помощью различных редакторов, могут возникнуть проблемы с кодированием. Дополнительные сведения об этой ситуации см. в разделе Распространенные причины проблем кодирования.

Обновление личного маркера доступа

В настоящее время портал Azure нельзя использовать для обновления личного маркера доступа в системе управления версиями. После истечения срока действия маркера доступа или его отзыва систему управления версиями можно обновить, добавив новый маркер доступа одним из следующих способов.

Следующие шаги