Упражнение. Настройка среды
Внимание
Для выполнения этого упражнения вам нужна собственная подписка Azure. При этом с вас может взиматься плата. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Прежде чем приступить к публикации повторно используемого кода Bicep вашей компании, необходимо настроить среду. В этом разделе вы настроите среды Azure и GitHub для выполнения оставшейся части модуля.
Для этого вы выполните следующее.
- Настройте репозиторий GitHub для этого модуля.
- Клонируйте репозиторий на компьютер.
- Создадите группу ресурсов в Azure.
- Создайте секрет в GitHub.
Получение репозитория GitHub
Здесь вы создадите новый репозиторий GitHub на основе репозитория шаблонов. Репозиторий шаблонов содержит файлы, которые помогут приступить к работе в этом модуле.
Модули в этом пути обучения являются частью прогресса. В целях обучения каждому модулю соответствует связанный репозиторий шаблонов на GitHub.
Совет
Даже если вы завершили предыдущий модуль схемы обучения, выполните эти инструкции, чтобы создать новый репозиторий, и обязательно присвойте ему новое имя.
Запуск из репозитория шаблонов
Запустите шаблон, который настраивает репозиторий GitHub.
На сайте GitHub выполните следующие действия, чтобы создать репозиторий из шаблона:
Войдите в GitHub.
Выберите "Использовать этот шаблон>", чтобы создать новый репозиторий.
Для владельца выберите учетную запись GitHub.
Введите имя репозитория для нового проекта, например toy-reusable.
Выберите вариант Общедоступный.
При создании собственных репозиториев вы можете сделать их частными. В этом модуле вы будете использовать функции GitHub, которые работают только в сочетании с общедоступными репозиториями и учетными записями GitHub Enterprise.
Щелкните Create repository (Создать репозиторий).
Внимание
Последнее упражнение в этом модуле содержит важные действия по очистке. Следуйте инструкциям по очистке, даже если этот модуль не завершен.
Клонирование репозитория
Теперь, когда у вас есть копия репозитория шаблонов в собственной учетной записи, клонируйте этот репозиторий локально, чтобы начать работу в нем.
Выберите код и щелкните URL-адрес копирования в значок буфера обмена .
Откройте Visual Studio Code.
В Visual Studio Code откройте окно терминала, выбрав Терминал>Новый терминал Окно обычно открывается в нижней части экрана.
В терминале перейдите в каталог, в котором нужно клонировать репозиторий GitHub на локальном компьютере. Например, чтобы клонировать репозиторий в папке репозиториев , выполните следующую команду:
cd repositories
Введите
git clone
и вставьте скопированный URL-адрес, который будет выглядеть примерно так:git clone https://github.com/mygithubuser/toy-reusable.git
Еще раз откройте Visual Studio Code в папке репозитория, выполнив следующую команду в терминале Visual Studio Code:
code --reuse-window toy-reusable
Вход в Azure
Для работы с группами ресурсов в Azure войдите в свою учетную запись Azure из терминала Visual Studio Code. Убедитесь, что вы установили средства Azure CLI и расширение учетной записи Azure для Visual Studio Code.
В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.
Оболочка по умолчанию обычно pwsh, как показано в правой части окна терминала.
Выберите раскрывающийся список "Профиль запуска" и выберите Azure Cloud Shell (Bash).
Откроется новая оболочка.
Вход в Azure с помощью Azure CLI
В терминале Visual Studio Code выполните указанную ниже команду, чтобы войти в Azure.
az login
В открывшемся браузере войдите в свою учетную запись Azure.
Для работы с группами ресурсов в Azure войдите в свою учетную запись Azure из терминала Visual Studio Code. Убедитесь, что вы установили Azure PowerShell и расширение учетной записи Azure для Visual Studio Code.
В меню Терминал выберите Новый терминал. Окно терминала обычно открывается в нижней половине экрана.
Оболочка по умолчанию обычно pwsh, как показано в правой части окна терминала.
Выберите раскрывающийся список "Профиль запуска", а затем выберите Azure Cloud Shell (PowerShell).
Откроется новая оболочка.
Вход в Azure с помощью Azure PowerShell
В терминале Visual Studio Code выполните указанную ниже команду, чтобы войти в Azure.
Connect-AzAccount -UseDeviceAuthentication
Следуйте инструкциям по команде, чтобы войти в учетную запись Azure.
Создание удостоверения рабочей нагрузки
Затем создайте удостоверение рабочей нагрузки в идентификаторе Microsoft Entra для рабочего процесса развертывания.
Чтобы создать удостоверения рабочей нагрузки, команды Azure CLI используются jq
для анализа данных из выходных данных JSON. Если вы еще не jq
установили, можно использовать Bash в Azure Cloud Shell для создания удостоверения рабочей нагрузки, группы ресурсов и назначения ролей и подготовки секретов GitHub.
Выполните следующий код, чтобы определить переменные для имени пользователя GitHub и имени репозитория. Убедитесь, что вы заменяете
mygithubuser
имя пользователя GitHub, которое вы указали ранее в этом упражнении. Кроме того, убедитесь, что укажите правильное имя репозитория GitHub.githubOrganizationName='mygithubuser' githubRepositoryName='toy-reusable'
Создайте удостоверение рабочей нагрузки для рабочего процесса развертываний.
applicationRegistrationDetails=$(az ad app create --display-name 'toy-reusable') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-reusable-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Выполните следующий код, чтобы определить переменные для имени пользователя GitHub и имени репозитория. Убедитесь, что вы замените
mygithubuser
имя пользователя GitHub, которое вы указали ранее в этом упражнении. Кроме того, убедитесь, что укажите правильное имя репозитория GitHub.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-reusable'
Создайте удостоверение рабочей нагрузки для рабочего процесса развертываний.
$applicationRegistration = New-AzADApplication -DisplayName 'toy-reusable' New-AzADAppFederatedCredential ` -Name 'toy-reusable-branch' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Создание группы ресурсов в Azure и предоставление доступа к удостоверению рабочей нагрузки
Затем создайте группу ресурсов для веб-сайта. Этот процесс также предоставляет удостоверению рабочей нагрузки роль участника в группе ресурсов, что позволяет развертывать рабочий процесс в группе ресурсов.
Выполните следующие команды Azure CLI в терминале Visual Studio Code:
resourceGroupResourceId=$(az group create --name ToyReusable --location westus3 --query id --output tsv)
az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
--assignee $applicationRegistrationAppId \
--role Contributor \
--scope $resourceGroupResourceId
Выполните следующие команды Azure PowerShell в терминале Visual Studio Code:
$resourceGroup = New-AzResourceGroup -Name ToyReusable -Location westus3
New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
-ApplicationId $applicationRegistration.AppId `
-RoleDefinitionName Contributor `
-Scope $resourceGroup.ResourceId
Подготовка секретов GitHub
Выполните следующий код, чтобы отобразить значения, которые необходимо создать в виде секретов GitHub:
echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
Запишите значение идентификатора приложения для AZURE_CLIENT_ID. Это значение можно использовать при очистке ресурсов после завершения работы с этим модулем.
Создавайте секреты GitHub
Вы создали удостоверение рабочей нагрузки и группу ресурсов, в которой можно развернуть рабочий процесс. Теперь нужно создать секрет в GitHub Actions.
В браузере перейдите к своему репозиторию GitHub.
Выберите "Параметры секретов>" и "Действия переменных".>
Нажмите Создать секрет репозитория.
Присвойте секрету имя AZURE_CLIENT_ID.
В поле Значение вставьте GUID из первой строки выходных данных терминала. Не включайте в значение
AZURE_CLIENT_ID
, двоеточие или пробелы.Выберите Добавить секрет.
Повторите процесс, чтобы создать секреты для AZURE_TENANT_ID и AZURE_SUBSCRIPTION_ID, копируя значения из соответствующих полей в выходных данных терминала.
Убедитесь, что в списке секретов теперь отображаются все три секрета.