Упражнение. Настройка среды 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 для использования Azure DevOps, но здесь вы используете Azure DevOps для развертывания в ресурсах Azure, существующих в подписке 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 выполните следующие действия.
Выберите вход и примите условия использования.
На странице "Создание проекта" выберите организацию Azure DevOps. Введите имя проекта, например Space Game - web - Multistage.
Выберите Да, я хочу создать вилку для этого репозитория >Авторизовать.
Если появится окно, авторизуйтесь в учетной записи GitHub.
Внимание
Этот параметр необходимо выбрать, чтобы шаблон подключится к репозиторию GitHub. Выберите его, даже если вы уже вилировали проект веб-сайта Space Game . В шаблоне используется существующая вилка.
Выберите "Создать проект".
Выполнение шаблона занимает несколько минут.
Чтобы перейти к проекту в Azure DevOps, выберите "Перейти к проекту".
Внимание
В этом модуле страница "Очистка среды Azure DevOps" содержит важные действия по очистке. Очистка позволяет гарантировать, что вам хватит бесплатных минут сборки. Даже если вы не завершите этот модуль, обязательно выполните действия по очистке.
Настройка видимости проекта
Изначально для вашего вилки репозитория Space Game на GitHub установлено общедоступное значение, пока для проекта, созданного шаблоном Azure DevOps, задано частное значение. Доступ к общедоступный репозиторий на GitHub можно получить любым пользователям, в то время как частный репозиторий доступен только для вас, и пользователи, с которыми вы хотите поделиться им. Аналогичным образом, в Azure DevOps общедоступные проекты предоставляют доступ только для чтения пользователям, не прошедшим проверку подлинности, в то время как частные проекты требуют предоставления пользователям доступа и проверки подлинности для доступа к службам.
На данный момент не требуется изменять какие-либо из этих параметров в целях этого модуля. Однако для личных проектов необходимо определить видимость и доступ, которые вы хотите предоставить другим пользователям. Например, если проект открытый код, вы можете сделать репозиторий GitHub и проект Azure DevOps общедоступным. Если проект является закрытым, обычно вы сделаете репозиторий GitHub и проект Azure DevOps закрытым.
Далее вы можете найти следующие ресурсы, которые помогут определить, какой вариант лучше всего подходит для вашего проекта:
- Использование частных и общедоступных проектов
- Краткое руководство. Предоставление общедоступного частного проекта
- Настройка видимости репозитория
Перемещение рабочего элемента в раздел "Выполняется"
Здесь вы назначаете себе рабочий элемент в Azure Boards. Вы также перемещаете рабочий элемент в состояние "Выполнение ". На практике вы и ваша команда будете создавать рабочие элементы в начале каждого спринта или рабочей итерации.
Это задание работы дает вам список проверка для работы. Он дает другим участникам команды представление о том, над чем вы работаете, и сколько работы осталось. Рабочий элемент также помогает применять ограничения, выполняемые в процессе работы (WIP), чтобы команда не работала слишком много в один раз.
Напомним, что команда урегулировала следующие основные вопросы для текущего спринта.
Примечание.
В организации Azure DevOps рабочие элементы нумеруются последовательно. В проекте число каждого рабочего элемента может не совпадать с тем, что вы видите здесь.
Здесь вы перемещаете первый элемент, создайте конвейер с несколькими этапами в столбец "Выполнение ". Затем вы назначаете себя рабочему элементу. Создание многоэтапного конвейера связано с определением каждого этапа развертывания веб-сайта Space Game .
Чтобы настроить рабочий элемент, выполните указанные ниже действия.
В Azure DevOps перейдите в раздел Boards. Затем в меню выберите "Доски".
В карточке Создание многоэтапного конвейера щелкните стрелку вниз. Затем назначьте рабочий элемент себе.
Переместите рабочий элемент из столбца Список дел в столбец "Выполнение".
В конце этого модуля вы переместите карта в столбец "Готово" после завершения задачи.
Локальная настройка проекта
Здесь вы загружаете проект Space Game в Visual Studio Code, настраиваете Git, клонируйте репозиторий локально и установите вышестоящий удаленный, чтобы можно было скачать начальный код.
Примечание.
Если вы уже настроили проект mslearn-tailspin-spacegame-web-deploy локально, вы можете перейти к следующему разделу.
Открытие интегрированного терминала
Visual Studio Code поставляется с интегрированным терминалом. Здесь можно редактировать файлы и работать из командной строки.
Запустите Visual Studio Code.
В меню "Вид" выберите терминал.
В раскрывающемся списке выберите Git Bash. Если вы знакомы с другой оболочкой Unix, которую вы предпочитаете использовать, выберите эту оболочку.
В окне терминала можно выбрать любую оболочку, установленную в вашей системе. Например, можно выбрать Git Bash или PowerShell или другую оболочку.
Здесь вы будете использовать Git Bash, часть Git для Windows, что упрощает выполнение команд Git.
Примечание.
В Windows, если вы не видите Git Bash в списке в качестве параметра, убедитесь, что вы установили Git, а затем перезапустите Visual Studio Code.
Выполните команду
cd
, чтобы перейти в каталог, в котором вы будете работать. Выберите свой домашний каталог (~
) или другой каталог, если хотите.cd ~
Настройка Git
Если вы не знакомы с Git и GitHub, сначала выполните несколько команд, чтобы связать удостоверение с Git и пройти проверку подлинности с помощью GitHub. Дополнительные сведения см. в разделе "Настройка Git".
Как минимум, необходимо выполнить следующие действия. Выполните команды из интегрированного терминала.
- Задайте имя пользователя.
- Задайте адрес электронной почты фиксации.
- Кэшируйте пароль 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 на компьютер:
Перейдите в вилку веб-проекта Space Game (mslearn-tailspin-spacegame-web-deploy) на сайте GitHub.
Выберите Код. Затем на вкладке HTTPS нажмите кнопку рядом с URL-адресом, чтобы скопировать URL-адрес в буфер обмена.
В Visual Studio Code перейдите в окно терминала.
В терминале перейдите в каталог, где вы хотите работать. Выберите свой домашний каталог (
~
) или другой каталог, если хотите.cd ~
Выполните команду
git clone
. Замените URL-адрес, показанный здесь содержимым буфера обмена:git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-deploy.git
Перейдите в каталог
mslearn-tailspin-spacegame-web-deploy
. Это корневой каталог репозитория.cd mslearn-tailspin-spacegame-web-deploy
Настройка вышестоящего удаленного репозитория
Удаленный — это репозиторий Git, в котором участники группы совместно работают (например, репозиторий на GitHub). Здесь вы выводите список удаленных репозиториев и добавляете удаленный репозиторий, указывающий на копию репозитория Майкрософт, чтобы вы могли получить актуальный пример кода.
Выполните следующую
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. При вводе кода из другого репозитория исходный удаленный (который вы вилировали из) часто называется вышестоящий.
Выполните команду
git remote add
, чтобы создать удаленный именованный вышестоящий репозиторий, указывающий на репозиторий Майкрософт:git remote add upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git
Запустите
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) upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git (fetch)
Откройте проект в обозревателе файлов
В Visual Studio Code окно терминала указывает на корневой каталог веб-проекта Space Game. Чтобы просмотреть ее структуру и работать с файлами, из проводника вы откроете проект.
Самый простой способ открыть проект заключается в повторном открытии Visual Studio Code в текущем каталоге. Для этого во встроенном терминале выполните следующую команду.
code -r .
В обозревателе вы увидите каталог и дерево файлов.
Откройте интегрированный терминал. Вы будете перемещены в корень веб-проекта.
Если выполнение команды code
завершается неудачно, необходимо добавить Visual Studio Code в системную переменную PATH. Для этого:
- В Visual Studio Code выберите F1 или Представление>Палитра команд для доступа к палитре команд.
- В палитре команд введите команду shell: установите команду "code" в PATH.
- Повторите предыдущую процедуру, чтобы открыть проект в проводнике.
Теперь вы настроили работу с исходным кодом Space Game и конфигурацией Azure Pipelines из локальной среды разработки.
Создание сред службы приложение Azure
Здесь вы создадите среды, определяющие этапы конвейера. Вы создаете один экземпляр Служба приложений для каждого этапа: разработка, тестирование и промежуточное выполнение.
В разделе "Создание конвейера выпуска с помощью Azure Pipelines" вы создали Служба приложений через портал Azure. Хотя портал — отличный способ изучить возможности, доступные в Azure или выполнять основные задачи, создание таких компонентов, как Служба приложений, может быть емким.
В этом модуле вы используете Azure CLI для создания трех Служба приложений экземпляров. Доступ к Azure CLI можно получить из терминала или с помощью Visual Studio Code. В этом упражнении вы будете обращаться к Azure CLI из Azure Cloud Shell. Этот браузерный интерфейс оболочки размещается в облаке. В Cloud Shell Azure CLI настраивается для использования с вашей подпиской Azure.
Внимание
Чтобы выполнить упражнения в этом модуле, вам потребуется собственная подписка Azure.
Создание Cloud Shell с помощью портал Azure
Перейдите на портал Azure и выполните вход.
В меню выберите Cloud Shell. При появлении запроса выберите интерфейс Bash .
Примечание.
Cloud Shell требует, чтобы ресурс хранилища Azure сохранял все файлы, создаваемые в Cloud Shell. При первом открытии Cloud Shell вам будет предложено создать группу ресурсов, учетную запись хранения и Файлы Azure общий ресурс. Эта настройка автоматически используется для всех будущих сеансов Cloud Shell.
Выбор региона Azure
Регион — это один или несколько центров обработки данных Azure в географическом расположении. К примерам регионов относятся восточная часть США, западная часть США и Северная Европа. Каждому ресурсу Azure, включая экземпляр Служба приложений, назначается регион.
Чтобы упростить выполнение команд, начните с выбора региона по умолчанию. После указания региона по умолчанию последующие команды используют этот регион, если не указать другой регион.
В Cloud Shell для перечисления регионов, доступных из подписки Azure, выполните следующую
az account list-locations
команду.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
В столбце
Name
в выходных данных выберите регион, близкий к вам. Например, выберитеeastasia
илиwestus2
.Запустите
az configure
, чтобы задать регион по умолчанию. Замените<REGION>
имя выбранного региона.az configure --defaults location=<REGION>
Этот пример задает
westus2
регион по умолчанию:az configure --defaults location=westus2
Создание экземпляров Служба приложений
Здесь вы создадите экземпляры Служба приложений для трех этапов развертывания: Dev, Test и Staging. Ниже приведен краткий обзор следующего процесса.
Создайте случайное число, которое делает доменное имя веб-приложения уникальным.
Этот шаг предназначен для обучения. На практике вы выберете доменное имя, соответствующее имени приложения или службы.
Создайте группу ресурсов, содержащую все Служба приложений экземпляры.
В целях обучения вы создадите одну группу ресурсов, содержащую все Служба приложений экземпляры. На практике можно создать отдельную группу ресурсов для каждого экземпляра Служба приложений, чтобы лучше управлять жизненным циклом каждого экземпляра.
Создание плана службы приложений.
План Служба приложений определяет ресурсы ЦП, памяти и хранилища для веб-приложения. Здесь вы используете план B1 Basic . Этот план предназначен для приложений с низкими требованиями к трафику. Планы уровня "Стандартный" и "Премиум" предназначены для рабочих нагрузок. Эти планы выполняются на выделенных экземплярах виртуальных машин.
Создайте экземпляры Службы приложений по одной для каждой из сред: Разработки, Тестирование и Промежуточное хранения.
Получите имя узла для каждой среды.
Убедитесь, что каждая среда запущена, и что домашняя страница доступна.
Примечание.
Для обучения здесь используются параметры сети по умолчанию. Эти параметры делают сайт доступным из Интернета. На практике вы можете настроить виртуальную сеть Azure, которая помещает веб-сайт в сеть, которая не является маршрутизируемой в Интернете, и что доступ к ней можно получить только вам и вашей команде. Позже вы можете перенастроить сеть, чтобы сделать веб-сайт доступным для пользователей.
Чтобы создать экземпляры Службы приложений, выполните следующие действия.
Из Cloud Shell создайте случайное число, которое делает доменное имя веб-приложения уникальным.
webappsuffix=$RANDOM
Чтобы создать группу ресурсов с именем tailspin-space-game-rg, выполните следующую
az group create
команду.az group create --name tailspin-space-game-rg
Чтобы создать план Служба приложений с именем tailspin-space-game-asp, выполните следующую
az appservice plan create
команду.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 (цен. категория "Стандартный").
Выполните приведенные ниже команды
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 к каждому Служба приложений экземпляру. На практике вы назначите план, соответствующий ожидаемой рабочей нагрузке.
Например, для сред, которые сопоставляют этапы разработки и тестирования , B1 Basic могут быть подходящими, так как вам нужно, чтобы только ваша команда могла получить доступ к средам.
Для промежуточной среды вы выберете план, соответствующий рабочей среде. Этот план, скорее всего, обеспечит больше ресурсов ЦП, памяти и хранилища. В рамках плана можно выполнять тесты производительности, такие как нагрузочные тесты, в среде, которая похожа на рабочую среду. Тесты можно запускать, не влияя на динамический трафик на сайт.
Чтобы указать имя узла и состояние каждого Служба приложений экземпляра, выполните следующую
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
В качестве дополнительного шага перейдите к одному или нескольким именам узлов. Убедитесь, что они выполняются, и отобразится домашняя страница по умолчанию.
Вот что вы видите:
Внимание
Страница Очистка среды Azure DevOps в этом модуле содержит важные инструкции по очистке. Очистка помогает убедиться, что вы не взимаете плату за ресурсы Azure после завершения работы с этим модулем. Обязательно выполните действия по очистке, даже если не завершите этот модуль.
Создание переменных конвейера в Azure Pipelines
В разделе "Создание конвейера выпуска с помощью Azure Pipelines" вы добавили переменную в конвейер, который хранит имя веб-приложения в Служба приложений. Здесь вы делаете то же самое. Но на этот раз вы добавляете одну переменную для каждого экземпляра Служба приложений, соответствующего этапу разработки, тестирования или промежуточного хранения в конвейере.
Эти имена можно жестко закодировать в конфигурации конвейера, но если вы определяете их как переменные, конфигурация будет более повторно использована. Кроме того, если имена Служба приложений экземпляров изменяются, можно обновить переменные и активировать конвейер без изменения конфигурации.
Чтобы добавить переменные, выполните следующие действия.
В Azure DevOps перейдите в проект Space Game — web - Multistage .
В разделе "Конвейеры" выберите библиотеку.
Выберите и группу переменных.
В разделе "Свойства" введите "Выпуск " для имени группы переменных.
В разделе "Переменные" нажмите кнопку +Добавить.
Для имени переменной введите WebAppNameDev. В качестве значения введите имя экземпляра Служба приложений, соответствующего вашей среде разработки, например tailspin-space-game-web-dev-1234.
Повторите предыдущие два шага дважды, чтобы создать переменные для сред тестирования и промежуточного хранения . Ниже приведены некоторые примеры.
Имя переменной Пример значения 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.
В начале страницы щелкните Сохранить, чтобы сохранить переменную в конвейере.
Ваша группа переменных похожа на эту группу:
Создание сред разработки и тестирования
В разделе Создание конвейера выпуска с помощью Azure Pipelines вы создали среду для среды разработки. Здесь вы повторяете процесс для сред разработки и тестирования. Позже вы настроите промежуточную среду, которая включает дополнительные критерии.
Чтобы создать среды разработки и тестирования, выполните следующие действия.
В Azure Pipelines выберите "Среды".
Чтобы создать среду разработки, выполните следующие действия:
- Нажмите Создать среду.
- В поле Имя введите dev.
- В остальных полях оставьте значения по умолчанию.
- Нажмите кнопку создания.
Чтобы создать тестовую среду, выполните следующие действия:
- Вернитесь на страницу Среды.
- Выберите новую среду.
- В поле Имя введите test.
- Нажмите кнопку создания.
Создание подключения службы
Здесь вы создадите подключение к службе, позволяющее Azure Pipelines получить доступ к подписке Azure. Azure Pipelines использует это подключение к службе для развертывания веб-сайта в Служба приложений. Вы создали аналогичное подключение к службе в предыдущем модуле.
Внимание
Убедитесь, что вы вошли в портал Azure и Azure DevOps под одной учетной записью Майкрософт.
В Azure DevOps перейдите в проект Space Game — web - Multistage .
В левом нижнем углу страницы выберите Параметры проекта.
В разделе Конвейеры выберите Подключения к службе.
Выберите новое подключение к службе, а затем выберите Azure Resource Manager и нажмите кнопку "Далее".
В начале страницы щелкните Субъект-служба (автоматически). Затем выберите Далее.
Заполните следующие поля:
Поле значение Уровень области Подписка Отток подписок Ваша подписка Azure Группа ресурсов tailspin-space-game-rg Имя подключения службы Resource Manager — Tailspin — Space Game Во время процесса может появиться запрос на вход в учетную запись Майкрософт.
Убедитесь, что выбрано разрешение на доступ ко всем конвейерам.
Выберите Сохранить.
Чтобы убедиться, что он может подключиться к подписке Azure, Azure DevOps выполняет тестовое подключение. Если Azure DevOps не удается подключиться, у вас есть возможность войти во второй раз.