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


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

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

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

Замечание

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

Типы управления исходным кодом

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

  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. В учетной записи автоматизации выберите "Удаленный контроль версий" и нажмите "Добавить".

    Выбор системы контроля версий

  2. Выберите тип системы управления версиями, а затем нажмите кнопку "Аутентификация".

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

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

    Недвижимость Описание
    Имя системы контроля исходного кода Дружелюбное имя для системы управления версиями. Это имя должно содержать только буквы и цифры.
    Тип системы управления версиями Тип механизма управления версиями. Доступные варианты:
    * GitHub
    * Azure DevOps (Git)
    * Azure DevOps (TFVC)
    Репозиторий Имя репозитория или проекта. Извлекаются первые 200 репозиториев. Чтобы найти репозиторий, введите имя в поле и нажмите кнопку "Поиск" на сайте GitHub.
    Отрасль Ветвь, из которой нужно извлечь исходные файлы. Целеполагание ветви недоступно для типа управления версиями TFVC.
    Путь к папке Папка, содержащая runbooks для синхронизации, например, /Runbooks. Синхронизированы только модули Runbook в указанной папке. Рекурсия не поддерживается.
    Автоматическая синхронизация1 Параметр, который включает или отключает автоматическую синхронизацию при фиксации в репозитории или на GitHub.
    Публикация Модуля Runbook Параметр "Вкл.", если модули Runbook автоматически публикуются после синхронизации из системы управления версиями и отключены в противном случае.
    Описание Текст, указывающий дополнительные сведения о системе управления версиями.

    1. Чтобы включить автоматическую синхронизацию при настройке интеграции системы управления версиями с Azure DevOps, необходимо быть администратором проекта или владельцем репозитория GitHub. Сотрудники могут настраивать только управление версиями без автоматической синхронизации.
    Автоматическая синхронизация не работает с Automation Private Link. При включении Приватного канала вызовы веб-перехватчика системы управления версиями завершаются ошибкой, так как она находится за пределами сети.

    Снимок экрана: сводка по системе управления исходным кодом.

Замечание

  • Имя входа для репозитория системы управления версиями может отличаться от имени входа на портале Azure. Убедитесь, что вы вошли в систему с правильной учетной записью репозитория системы управления версиями при настройке системы управления версиями. Если есть сомнения, откройте новую вкладку в браузере, выйдите из dev.azure.com, visualstudio.com или github.com и попробуйте повторно подключиться к системе управления версиями.
  • Межтенантная аутентификация не поддерживается.
  • Автосинхронизация может не сработать, если система контроля версий была создана более года назад, так как вебхук, используемый для вызова системы контроля версий, истекает спустя год. Чтобы устранить эту проблему, создайте новую систему контроля версий в учетной записи службы автоматизации с идентичной конфигурацией, которая создаст новый веб-перехватчик с более поздней датой истечения.

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

Вы также можете использовать PowerShell для настройки системы контроля версий в службе автоматизации Azure. Чтобы использовать командлеты PowerShell для этой операции, вам потребуется личный маркер доступа (PAT). Используйте командлет New-AzAutomationSourceControl для создания подключения к управлению исходным кодом. Для этого командлета требуется безопасная строка для PAT. Чтобы узнать, как создать безопасную строку, см. статью ConvertTo-SecureString.

В следующих подразделах показано создание подключения к системе управления версиями с использованием PowerShell для 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, использовавшиеся в более ранних форматах. Старый формат https://<accountname>.visualstudio.com/<projectname>/_git/<repositoryname> URL-адреса устарел, но по-прежнему поддерживается. Новый формат предпочтителен.

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, который использовался в более ранних форматах. Старый формат https://<accountname>.visualstudio.com/<projectname>/_versionControl URL-адреса устарел, но по-прежнему поддерживается. Новый формат предпочтителен.

New-AzAutomationSourceControl -Name SCReposTFVC -RepoUrl https://dev.azure.com/<accountname>/<adoprojectname>/_git/<repositoryname> -SourceType VsoTfvc -AccessToken <secureStringofPAT> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName> -FolderPath "/Runbooks"

Разрешения личного токена доступа (PAT)

Для управления версиями требуются некоторые минимальные разрешения для PATS. Следующие подразделы содержат минимальные разрешения, необходимые для GitHub и Azure DevOps.

Минимальные разрешения PAT для GitHub

В следующей таблице определены минимальные разрешения PAT, необходимые для GitHub. Дополнительные сведения о создании PAT в GitHub см. в статье "Создание личного маркера доступа для командной строки".

Область действия Описание
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 см. в статье "Проверка подлинности с помощью личных маркеров доступа".

Область действия Тип доступа
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. На странице сводки системы управления версиями нажмите кнопку "Удалить".

Обработка проблем с кодировкой

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

Обновление PAT

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

Дальнейшие шаги