Упражнение. Развертывание файла Bicep из рабочих процессов GitHub

Завершено

Функция GitHub Actions по своей сути похожа на Azure Pipelines. Это способ автоматизации разработки и развертывания программного обеспечения. В этом упражнении вы узнаете, как развернуть файл Bicep с помощью действия GitHub.

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

Создание субъекта-службы в Azure

Чтобы развернуть ресурсы в Azure, необходимо создать субъект-службу, который GitHub может использовать. Поэтому откройте терминал или используйте Cloud Shell на портале Azure и введите следующие команды:

az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth

Примечание.

Обязательно укажите ваш идентификатор подписки.

После успешной операции он должен выводить объект JSON, содержащий ваши tenantId, subscriptionIdclientIdclientSecretи несколько других свойств, таких как ниже.

{
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
}

Обратите внимание, что этот объект необходимо добавить в секреты GitHub.

Создание секрета GitHub

В репозитории GitHub перейдите в раздел Параметры>Секреты>Действия. Создайте новый секрет с именем AZURE_CREDENTIALS и вставьте весь объект JSON, полученный на предыдущем шаге.

Создайте еще один секрет для имени группы ресурсов с таким именем, как AZURE_RG, и еще один для подписки.

Screenshot of GitHub secrets creation and manage page.

Создание действия GitHub

  1. Сначала перейдите в репозиторий и выберите меню "Действия". Затем настройте рабочий процесс для создания пустого рабочего процесса в репозитории. При желании вы можете переименовать файл.

    Screenshot of GitHub new file creation, edit and preview.

  2. Замените содержимое файла приведенным ниже фрагментом кода.

    on: [push]
    name: Azure ARM
    jobs:
        build-and-deploy:
            runs-on: ubuntu-latest
            steps:
                # Checkout code
                - uses: actions/checkout@main
    
                  # Log into Azure
                - uses: azure/login@v1
                  with:
                      creds: ${{ secrets.AZURE_CREDENTIALS }}
    
                  # Deploy Bicep file
                - name: deploy
                  uses: azure/arm-deploy@v1
                  with:
                      subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
                      resourceGroupName: ${{ secrets.AZURE_RG }}
                      template: ./main.bicep
                      parameters: storagePrefix=stg
                      failOnStdErr: false
    

    Вы можете заменить префикс учетной записи хранения собственным.

    Примечание.

    Первая часть рабочего процесса определяет триггер и его имя. Остальные части определяют задание и используют несколько задач для извлечения кода, входа в Azure и развертывания Bicep-файла.

  3. Выберите Начать фиксацию и введите название и описание во всплывающем диалоговом окне. Затем выберите Выполнить фиксацию напрямую в главную ветвь, а затем Зафиксировать новый файл.

    Screenshot of GitHub commits a new file to the main branch.

  4. Перейдите на вкладку "Действия" и выберите только что созданное действие, которое должно выполняться.

    Screenshot of GitHub action running and deploying.

  5. Отслеживайте состояние и по завершении задания проверьте портал Azure, чтобы узнать, создана ли учетная запись хранения.

    Screenshot of GitHub action successful executed job.