Упражнение. Настройка среды Azure DevOps

Завершено

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

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

  • Добавьте пользователя, чтобы убедиться, что Azure DevOps может подключиться к подписке Azure.
  • Настройте проект Azure DevOps для этого модуля.
  • В Azure Boards переместите рабочий элемент для этого модуля в столбец "Выполнение".
  • Создайте среды Службы приложений Azure с помощью Azure CLI в Azure Cloud Shell.
  • Создайте переменные конвейера, определяющие имена сред службы приложений.
  • Создайте подключение к службе, позволяющее Azure Pipelines безопасно получить доступ к подписке Azure.

Добавление пользователя в Azure DevOps

Чтобы завершить этот модуль, вам потребуется ваша собственная подписка Azure . Вы можете бесплатно приступить к работе с Azure.

Хотя для работы с Azure DevOps не требуется подписка Azure, в этом модуле вы будете использовать Azure DevOps для развертывания ресурсов, существующих в подписке Azure. Чтобы упростить процесс, следует использовать одну и ту же учетную запись Майкрософт для входа в подписку Azure и организацию Azure DevOps.

Если вы используете разные учетные записи Майкрософт для входа в Azure и Azure DevOps, добавьте пользователя в организацию DevOps в учетной записи Майкрософт, которую вы используете для входа в Azure. Дополнительные сведения см. в статье Добавление пользователей в организацию или проект. При добавлении пользователя выберите уровень доступа Базовый.

Затем выйдите из Azure DevOps и снова войдите в учетную запись Майкрософт, используемую для входа в подписку Azure.

Получите проект Azure DevOps

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

Модули в этом учебном курсе являются частью последовательности, которая следует за веб-командой Tailspin на их пути стратегии DevOps. Для обучения каждый модуль имеет связанный проект Azure DevOps.

Запуск шаблона

Запустите шаблон, который настраивает организацию Azure DevOps.

Запустите шаблон

На сайте демонстрационного генератора Azure DevOps выполните следующие действия, чтобы запустить шаблон.

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

  2. На странице Создать новый проект выберите свою организацию Azure DevOps, а затем введите имя проекта, например Space Game — web — тесты на нефункциональность.

    снимок экрана: создание проекта с помощью демонстрационного генератора Azure DevOps.

  3. Выберите Да, я хочу форкнуть этот репозиторий, а затем выберите Разрешить.

  4. Выберите Создать проект.

    Выполнение шаблона занимает несколько минут.

  5. Выберите Перейти к проекту, чтобы перейти к проекту в Azure DevOps.

Важный

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

Настройка видимости проекта

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

На данный момент не требуется изменять какие-либо из этих параметров в целях этого модуля. Однако для личных проектов необходимо определить видимость и доступ, которые вы хотите предоставить другим пользователям. Например, если проект является открытым исходным кодом, вы можете сделать репозиторий GitHub и проект Azure DevOps общедоступным. Если проект является закрытым, обычно вы сделаете репозиторий GitHub и проект Azure DevOps закрытым.

Далее вы можете найти следующие ресурсы, которые помогут определить, какой вариант лучше всего подходит для вашего проекта:

Настройка проекта на локальном компьютере

Здесь вы загружаете проект Space Game в Visual Studio Code, настраиваете Git, клонируйте репозиторий локально и настройте исходящий удаленный, чтобы можно было скачать начальный код.

Заметка

Если вы уже завершили настройку проекта mslearn-tailspin-spacegame-web-deploy на вашем компьютере, вы можете перейти к следующему разделу.

Открытие интегрированного терминала

Visual Studio Code поставляется с интегрированным терминалом. Здесь вы редактируете файлы и работаете из командной строки.

  1. Запустите Visual Studio Code.

  2. В меню Вид выберите Терминал.

  3. В раскрывающемся списке выберите Git Bash. Если вы знакомы с другой оболочкой Unix, которую вы предпочитаете использовать, выберите эту оболочку.

    Снимок экрана Visual Studio Code с расположением оболочки Git Bash.

    В окне терминала можно выбрать любую оболочку, установленную в вашей системе. Например, можно выбрать Git Bash или PowerShell или другую оболочку.

    Здесь вы будете использовать Git Bash, часть Git для Windows, что упрощает выполнение команд Git.

    Заметка

    В Windows, если вы не видите Git Bash в списке в качестве параметра, убедитесь, что вы установили Git, а затем перезапустите Visual Studio Code.

  4. Выполните команду cd, чтобы перейти в каталог, в котором требуется работать. Выберите свой домашний каталог (~) или другой каталог, если хотите.

    cd ~
    

Настройка Git

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

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

  1. Задайтеимени пользователя.
  2. Задайте адрес электронной почты для коммита.
  3. кэшировать пароль GitHub.

Заметка

Если вы уже используете двухфакторную аутентификацию с GitHub, создайте личный токен доступа. При появлении запроса используйте токен вместо пароля.

Относитесь к токену доступа как к паролю. Держите его в безопасном месте.

Настройка проекта в Visual Studio Code

На пути обучения по сборке приложений с помощью Azure DevOps вы сначала создали форк, а затем клонировали репозиторий Git. Репозиторий содержит исходный код для веб-сайта Space Game. Ваш форк был подключен к вашим проектам в Azure DevOps, чтобы сборка выполнялась, когда вы отправляете изменения в GitHub.

Важный

В этой схеме обучения мы переключимся в другой репозиторий Git, mslearn-tailspin-spacegame-web-deploy. При запуске шаблона для создания проекта Azure DevOps процесс автоматически создал форк репозитория.

В этой части клонируйте форк локально, чтобы можно было изменить и настроить вашу конфигурацию конвейера.

Клонируйте ваш форк локально

Теперь у вас есть копия веб-проекта Space Game в вашем аккаунте GitHub. Теперь вы скачаете или клонируетекопию на свой компьютер для работы с ней.

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

Чтобы клонировать веб-проект Space Game на компьютер:

  1. Перейдите в форк веб-проекта Space Game (mslearn-tailspin-spacegame-web-deploy) на GitHub.

  2. Выберите код. Затем на вкладке HTTPS выберите кнопку рядом с URL-адресом, который отображается, чтобы скопировать URL-адрес в буфер обмена.

    снимок экрана, показывающий, как найти URL-адрес и копировать кнопку из репозитория GitHub.

  3. В Visual Studio Code перейдите в окно терминала.

  4. В терминале перейдите в каталог, где вы хотите работать. Выберите свой домашний каталог (~) или другой каталог, если хотите.

    cd ~
    
  5. Выполните команду git clone. Замените URL-адрес, показанный здесь содержимым буфера обмена:

    git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-deploy.git
    
  6. Перейдите в каталог mslearn-tailspin-spacegame-web-deploy. Это корневой каталог репозитория.

    cd mslearn-tailspin-spacegame-web-deploy
    

Настройка вышестоящего удаленного

Удаленный — это репозиторий Git, в котором члены команды сотрудничают (например, репозиторий на GitHub). Здесь вы перечисляете ваши удалённые репозитории и добавляете удалённый репозиторий, указывающий на копию репозитория от Microsoft, чтобы получить последнюю версию примера кода.

  1. Запустите эту команду git remote, чтобы вывести список удалённых:

    git remote -v
    

    Вы видите, что у вас есть доступ к репозиторию как для получения (скачивания), так и загрузки (отправки данных).

    origin  https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (fetch)
    origin  https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (push)
    

    Источник указывает репозиторий на сайте GitHub. При форке кода из другого репозитория, исходный удаленный (тот, из которого вы форкнули) часто называется родительским.

  2. Выполните следующую команду git remote add, чтобы создать удаленный вышестоящий, указывающий на репозиторий Майкрософт:

    git remote add upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git
    
  3. Запустите git remote еще раз, чтобы увидеть изменения:

    git remote -v
    

    Вы видите, что у вас по-прежнему есть доступ к загрузке (fetch) и отправке (push) в ваш репозиторий. Теперь у вас также есть доступ к репозиторию Майкрософт:

    origin  https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (fetch)
    origin  https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (push)
    upstream        https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git (fetch)
    

Откройте проект в файловом проводнике

В Visual Studio Code окно терминала указывает корневой каталог веб-проекта Space Game. Чтобы просмотреть структуру проекта и работать с файлами, из файлового менеджера будет открыт проект.

  1. Самый простой способ открыть проект — открыть Visual Studio Code в текущем каталоге. Для этого выполните следующую команду из интегрированного терминала:

    code -r .
    

    В проводнике отображается каталог и дерево файлов.

  2. Откройте интегрированный терминал. Терминал помещает вас в корень веб-проекта.

Если команда code завершается ошибкой, необходимо добавить Visual Studio Code в системную переменную PATH. Для этого сделайте:

  1. В Visual Studio Code выберите F1 или выберите Представление>палитры команд для доступа к палитре команд.
  2. В палитре команд введите команду оболочки : установите команду code в PATH.
  3. Повторите предыдущую процедуру, чтобы открыть проект в проводнике.

Теперь вы готовы работать с исходным кодом Space Game и конфигурацией Azure Pipelines в вашей локальной среде разработки.

Создание сред службы приложений Azure

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

В предыдущих модулях вы использовали Azure CLI для создания экземпляров службы приложений. Здесь вы сделаете то же самое.

Важный

Помните, что для выполнения упражнений в этом модуле требуется собственная подписка Azure.

Создание Cloud Shell с помощью портала Azure

  1. Перейдите на портал Azure и войдите.
  2. В строке меню выберите Cloud Shell. При появлении запроса выберите интерфейс Bash.

Выбор региона Azure

Здесь вы указываете регион по умолчанию или географическое расположение, в котором создаются ресурсы Azure.

  1. В Cloud Shell выполните следующую команду az account list-locations, чтобы получить список регионов, доступных в подписке Azure.

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. В столбце Name в выходных данных выберите регион, близкий к вам. Например, выберите eastasia или westus2.

  3. Запустите az configure, чтобы задать регион по умолчанию. Замените <РЕГИОН> именем выбранного региона.

    az configure --defaults location=<REGION>
    

    Ниже приведен пример, который задает westus2 в качестве региона по умолчанию:

    az configure --defaults location=westus2
    

Создайте экземпляры службы приложений

Здесь вы создадите экземпляры службы приложений для трех этапов развертывания: разработка, тестированиеи подготовка.

Заметка

Для обучения используйте параметры сети по умолчанию. Эти параметры делают сайт доступным из Интернета. На практике вы можете настроить виртуальную сеть Azure таким образом, чтобы ваш веб-сайт находился в сети, которая не является маршрутизируемой из Интернета и доступна только вашей команде. Позже, когда вы будете готовы, вы можете перенастроить сеть, чтобы сделать веб-сайт доступным для пользователей.

  1. В Cloud Shell создайте случайное число, которое делает доменное имя веб-приложения уникальным.

    webappsuffix=$RANDOM
    
  2. Выполните следующую команду az group create, чтобы создать группу ресурсов с именем tailspin-space-game-rg.

    az group create --name tailspin-space-game-rg
    
  3. Выполните следующую команду az appservice plan create, чтобы создать план службы приложений, который называется tailspin-space-game-asp.

    az appservice plan create \
      --name tailspin-space-game-asp \
      --resource-group tailspin-space-game-rg \
      --sku B1 \
      --is-linux
    

    Аргумент --sku задает план B1, который работает на уровне Базовый. Аргумент --is-linux указывает использовать рабочие процессы Linux.

    Важный

    Если номер SKU B1 недоступен в рамках подписки Azure, выбрать другой план, например S1 (standard).

  4. Выполните следующие команды az webapp create, чтобы создать три экземпляра службы приложений, по одному для каждой из сред разработки ,, тестирования ,, и промежуточных ,.

    az webapp create \
      --name tailspin-space-game-web-dev-$webappsuffix \
      --resource-group tailspin-space-game-rg \
      --plan tailspin-space-game-asp \
      --runtime "DOTNET|6.0"
    
    az webapp create \
      --name tailspin-space-game-web-test-$webappsuffix \
      --resource-group tailspin-space-game-rg \
      --plan tailspin-space-game-asp \
      --runtime "DOTNET|6.0"
    
    az webapp create \
      --name tailspin-space-game-web-staging-$webappsuffix \
      --resource-group tailspin-space-game-rg \
      --plan tailspin-space-game-asp \
      --runtime "DOTNET|6.0"
    

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

  5. Выполните следующую команду az webapp list, чтобы указать имя узла и состояние каждого экземпляра службы приложений.

    az webapp list \
      --resource-group tailspin-space-game-rg \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

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

    HostName                                                 State
    -------------------------------------------------------  -------
    tailspin-space-game-web-dev-21017.azurewebsites.net      Running
    tailspin-space-game-web-test-21017.azurewebsites.net     Running
    tailspin-space-game-web-staging-21017.azurewebsites.net  Running
    
  6. В качестве дополнительного шага перейдите к одному или нескольким перечисленным именам, чтобы убедиться, что они работают и отображается страница по умолчанию.

    Вы увидите эту страницу:

    снимок экрана домашней страницы по умолчанию в Службе приложений Azure.

Важный

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

Создание переменных конвейера в Azure Pipelines

В задаче по запуску функциональных тестов в Azure Pipelinesвы добавили переменную для каждого экземпляра App Service. Экземпляры соответствуют этапам разработки, тестированияи промежуточного в вашем конвейере. Здесь вы будете следовать тому же шаблону.

Каждый этап в конфигурации конвейера использует переменные для определения, в каком экземпляре приложения будет выполнено развертывание.

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

  1. В Azure DevOps перейдите к проекту Space Game - web - Нефункциональные тесты.

  2. В разделе Конвейерывыберите Библиотека.

    снимок экрана Azure Pipelines с параметром меню

  3. Выберите и группу переменных.

  4. Для имени группы переменных в разделе Свойствавведите Release.

  5. В разделе Переменныевыберите + Добавить.

  6. Введите имя переменной WebAppNameDev. В качестве значения введите имя экземпляра службы приложений, соответствующего среде разработки, например tailspin-space-game-web-dev-1234.

  7. Повторите шаги 5 и 6 еще дважды, чтобы создать переменные для вашей тестовой среды и среды промежуточного развертывания, как показано в этой таблице:

    Имя переменной Пример значения
    WebAppNameTest tailspin-space-game-web-test-1234
    WebAppNameStaging tailspin-space-game-web-staging-1234

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

    Важный

    Убедитесь, что вы задаете имя экземпляра службы приложений, а не его имя узла. В этом примере следует ввести tailspin-space-game-web-dev-1234, а не tailspin-space-game-web-dev-1234.azurewebsites.net.

  8. Чтобы сохранить переменную в конвейере, выберите Сохранить в верхней части страницы.

    Ваша группа переменных похожа на эту группу:

    снимок экрана Azure Pipelines, показывающий группу переменных. Группа содержит три переменных.

Создание сред разработки, тестирования и промежуточного хранения

В выполнении функциональных тестов в Azure Pipelinesвы создали среды для разработки, тестированияи промежуточного тестирования. Здесь вы повторите этот процесс.

Чтобы создать среду разработки , тестирования и промежуточную среду :

  1. В Azure Pipelines выберите среды.

    снимок экрана Azure Pipelines с расположением пункта меню

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

    1. Выберите Создать среду.
    2. В разделе Имявведите dev.
    3. Оставьте оставшиеся поля по умолчанию.
    4. Выберите Создать.
  3. Чтобы создать тестовую среду , выполните следующие действия.

    1. Вернитесь на страницу сред.
    2. Выберите Создать среду.
    3. В разделе Имявведите тест.
    4. Выберите Создать.
  4. Чтобы создать промежуточную среду , выполните следующие действия.

    1. Вернитесь на страницу сред.
    2. Выберите Создать среду.
    3. Под номером Имявведите подготовка.
    4. Выберите Создать.

Создание подключения к службе

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

Важный

Убедитесь, что вы вошли на портал Azure и Azure DevOps под одной учетной записью Майкрософт.

  1. В Azure DevOps перейдите к проекту Space Game — web — нефункциональные тесты.

  2. В нижнем углу страницы выберите параметры проекта.

  3. В разделе Конвейервыберите Подключения служб.

  4. Выберите Новое подключение службы, затем выберите Azure Resource Manager, далее выберите Далее.

  5. В верхней части страницы, учетная запись службы (автоматически). Затем выберите Далее.

  6. Заполните следующие поля:

    Поле Ценность
    Уровень области подписки
    Подписка Подписка Azure
    Группа ресурсов tailspin-space-game-rg
    Имя подключения службы Resource Manager - Tailspin - Space Game

    Во время процесса может появиться запрос на вход в учетную запись Майкрософт.

  7. Убедитесь, что выбрано предоставить разрешение на доступ ко всем конвейерам.

  8. Выберите Сохранить.

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