Упражнение: Настройка среды
В этом разделе описано, как настроить организацию 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 DevOps.
Если вы используете разные учетные записи Майкрософт для входа в Azure и Azure DevOps, добавьте пользователя в свою организацию DevOps в учетную запись Майкрософт, используемую для входа в Azure. Дополнительные сведения см. в статье Добавление пользователей в организацию или проект. При добавлении пользователя выберите уровень доступа Базовый.
Затем выйдите из Azure DevOps и снова войдите в учетную запись Майкрософт, используемую для входа в подписку Azure.
Получите проект Azure DevOps
Здесь необходимо убедиться, что ваша организация Azure DevOps настроена для завершения остальной части этого модуля. Вы настроили его, запустив шаблон, создающий проект в Azure DevOps.
Модули в этом пути обучения являются частью прогресса. Вы следите за веб-командой Tailspin в их путешествии по DevOps. Для обучения каждый модуль имеет связанный проект Azure DevOps.
Запуск шаблона
Запустите шаблон, который настраивает организацию Azure DevOps.
На сайте демонстрационного генератора Azure DevOps выполните следующие действия, чтобы запустить шаблон:
Выберите «Sign In» и примите условия использования.
На странице Создание проекта выберите организацию Azure DevOps. Затем введите имя проекта, например Космическая игра - веб - параметры развертывания.
Выберите Да, я хочу форкнуть этот репозиторий. Затем выберите Авторизовать.
Выберите Создать проект.
Выполнение шаблона занимает несколько минут.
Выберите Перейти к проекту, чтобы перейти к проекту в Azure DevOps.
Важный
Страница Очистка среды Azure DevOps в этом модуле содержит важные действия по очистке. Очистка помогает убедиться, что вы не упустите бесплатные минуты сборки. Следуйте инструкциям по очистке, даже если этот модуль не завершен.
Настройка видимости проекта
Изначально ваш форк репозитория Space Game на GitHub общедоступен, в то время как проект, созданный шаблоном Azure DevOps, по умолчанию закрыт. Доступ к общедоступному репозиторию на GitHub может любой пользователь, а частный репозиторий доступен только вам и пользователям, с которыми вы хотите поделиться им. Аналогичным образом, в Azure DevOps общедоступные проекты предоставляют доступ только для чтения пользователям, не прошедшим проверку подлинности, в то время как частные проекты требуют предоставления пользователям доступа и проверки подлинности для доступа к службам.
На данный момент не требуется изменять какие-либо из этих параметров в целях этого модуля. Однако для личных проектов необходимо определить видимость и доступ, которые вы хотите предоставить другим пользователям. Например, если проект является открытым исходным кодом, вы можете сделать репозиторий GitHub и проект Azure DevOps общедоступным. Если проект является закрытым, обычно вы сделаете репозиторий GitHub и проект Azure DevOps закрытым.
Далее вы можете найти следующие ресурсы, которые помогут определить, какой вариант лучше всего подходит для вашего проекта:
- Использование частных и общедоступных проектов
- Инструкция по быстрому началу : как сделать частный проект общедоступным
- Настройка видимости репозитория
Перемещение рабочего элемента в "Выполнение"
В этой части в Azure Boards вы назначаете себе рабочий элемент, связанный с этим модулем. Вы также перемещаете рабочий элемент в состояние "Выполнение". На практике ваша команда создаст рабочие элементы в начале каждого спринтаили итерации.
Назначение работы таким образом предоставляет контрольный список, от которого можно отталкиваться. Он дает вашей команде представление о том, над чем вы работаете, и сколько работы осталось. Кроме того, она помогает команде соблюдать ограничения на текущие задачи (WIP), чтобы команда не брала на себя слишком много задач одновременно.
Напомним, что команда урегулировала эти основные вопросы для текущего спринта:
Заметка
В организации Azure DevOps рабочие элементы нумеруются последовательно. В проекте число каждого рабочего элемента может не совпадать с тем, что вы видите здесь.
Здесь вы перемещаете пятый элемент, Улучшить скорость выпуска, в столбец "В процессе". Затем вы назначаете себя рабочему элементу. Улучшить частоту выпуска относится к выбору модели развертывания, которая позволяет быстро вносить изменения для пользователей.
Чтобы настроить рабочий элемент, выполните следующие действия.
В Azure DevOps перейдите к Boards, а затем выберите Boards в меню.
В нижней части рабочего элемента Улучшить периодичность выпуска выберите кнопку со стрелкой вниз. Затем назначьте рабочий элемент себе.
Переместите рабочий элемент из столбца "To Do" в столбец "Doing".
В конце этого модуля вы переместите карточку в столбец Готово после завершения задачи.
Настройка проекта локально
Здесь вы загружаете проект 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, создайте токен личного доступа. По запросу используйте токен вместо пароля.
Относитесь к токену доступа как к паролю. Держите его в безопасном месте.
Настройка проекта в 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). Здесь вы перечисляете свои удалённые репозитории и добавляете удалённый репозиторий, указывающий на копию репозитория Microsoft, чтобы получить самую последнюю версию примера кода.
Выполните следующую команду
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)
Источник указывает репозиторий на сайте GitHub. Когда вы форкаете код из другого репозитория, исходный удаленный репозиторий (из которого вы форкали) часто называется upstream.
Выполните команду
git remote add
, чтобы создать удалённый репозиторий с именем upstream, который указывает на репозиторий Microsoft.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 в системный ПУТЬ. Для этого сделайте:
- В Visual Studio Code выберите F1 или выберите Вид>Палитра команд для доступа к ней.
- В командной палитре введите shell-команду : установите команду 'code' в PATH.
- Повторите предыдущую процедуру, чтобы открыть проект в файловом менеджере.
Теперь вы настроены для работы с исходным кодом Space Game и конфигурацией Azure Pipelines в локальной среде разработки.
Создание сред службы приложений Azure
Здесь вы создадите среды, определяющие этапы конвейера. Вы создаете один экземпляр службы приложений, соответствующий каждому этапу: Dev, Testи Staging.
В предыдущих модулях вы использовали Azure CLI для создания экземпляров службы приложений. Здесь вы будете делать то же самое.
Важный
Для выполнения упражнений в этом модуле вам потребуется собственная подписка Azure.
Создание Cloud Shell с помощью портала Azure
- Перейдите на портал Azure и войдите.
- В меню выберите Cloud Shell. При появлении запроса выберите интерфейс Bash.
Выбор региона Azure
Здесь вы указываете регион по умолчанию или географическое расположение, где будут созданы ресурсы Azure.
В Cloud Shell выполните следующую команду
az account list-locations
, чтобы получить список регионов, доступных в подписке Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
В столбце Name в выходных данных выберите регион, близкий к вам. Например, выберите eastasia или westus2.
Запустите
az configure
, чтобы задать регион по умолчанию. Замените <РЕГИОН> именем выбранного региона.az configure --defaults location=<REGION>
В этом примере westus2 в качестве региона по умолчанию:
az configure --defaults location=westus2
Создайте экземпляры службы приложений
Здесь вы создадите экземпляры службы приложений для трех этапов развертывания: Dev, Test, и Подготовка. Вы добавите слот развертывания для стадии промежуточного позже в этом модуле.
Заметка
В целях обучения здесь используются параметры сети по умолчанию. Эти параметры делают сайт доступным из Интернета. На практике вы можете настроить виртуальную сеть Azure так, чтобы ваш веб-сайт находился в сети, не маршрутизируемой из интернета, но доступной только для вашей команды. Позже, когда вы будете готовы, вы можете перенастроить сеть, чтобы сделать веб-сайт доступным для пользователей.
В Cloud Shell создайте случайное число, которое делает доменное имя веб-приложения уникальным:
webappsuffix=$RANDOM
Выполните следующую команду
az group create
, чтобы создать группу ресурсов с именем tailspin-space-game-rg.az group create --name tailspin-space-game-rg
Выполните следующие команды, чтобы создать два плана службы приложений.
az appservice plan create \ --name tailspin-space-game-test-asp \ --resource-group tailspin-space-game-rg \ --sku B1 \ --is-linux az appservice plan create \ --name tailspin-space-game-prod-asp \ --resource-group tailspin-space-game-rg \ --sku P1V2 \ --is-linux
Важный
Если номер SKU B1 недоступен в рамках подписки Azure, выбрать другой план, например S1 (standard).
Помните, что план службы приложений определяет ресурсы ЦП, памяти и хранилища, предоставляемые для запуска веб-приложения.
Первая команда задает план B1. Этот план выполняется на базовом уровне . Среды службы приложений используют этот план для этапов тестирования разработки и тестирования. План Basic B1 предназначен для приложений с низкими требованиями по трафику, например, в среде разработки или тестирования.
Вторая команда задает план P1V2, который выполняется на уровне Premium. Этот план используется для подготовка. План Премиум P1V2 предназначен для производственных рабочих нагрузок. Он выполняется на выделенных экземплярах виртуальных машин.
Уровень плана "Базовый" не предлагает дополнительных слотов для развертывания. Но план Premium действительно это делает. Поэтому вам потребуется тариф Premium для среды Staging.
Выполните следующие команды
az webapp create
, чтобы создать три экземпляра службы приложений, по одному для каждой из сред разработки, тестированияи промежуточных сред.az webapp create \ --name tailspin-space-game-web-dev-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-test-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-test-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-prod-asp \ --runtime "DOTNET|6.0"
Обратите внимание, что здесь вы применяете тот же план App Service, B1 Basic, к экземплярам App Service для Dev и Test. Вы применяете план службы приложений Премиум P1V2 к экземпляру службы приложений для этапа.
Выполните следующую команду
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, вы добавили одну переменную для каждого экземпляра службы приложений, соответствующего этапам Dev, Testи Staging в вашем конвейере. Здесь вы делаете то же самое.
Каждый этап конфигурации вашего конвейера использует эти переменные для определения, в какой экземпляр служб приложений выполнять развертывание.
Чтобы добавить переменные, выполните следующие действия.
В Azure DevOps перейдите в проект Space Game — web — шаблоны развертывания.
В разделе Конвейерывыберите Библиотеку.
Выберите и группу переменных.
В разделе Свойствадля имени группы переменных введите release.
В разделе Переменныевыберите + Добавить.
Введите имя переменной WebAppNameDev. В качестве значения введите имя экземпляра службы приложений, соответствующей вашей среде разработки , например tailspin-space-game-web-dev-1234.
Повторите шаги 5 и 6 дважды, чтобы создать переменные для тестовых и промежуточных сред, как показано в этой таблице.
Имя переменной Пример значения WebAppNameTest tailspin-space-game-web-test-1234 WebAppNameStaging tailspin-space-game-web-staging-1234 Обязательно замените каждое значение примера экземпляром службы приложений, соответствующим вашей среде.
Важный
Задайте имя экземпляра службы приложений (App Service), а не имя узла. В этом примере введите tailspin-space-game-web-dev-1234, а не tailspin-space-game-web-dev-1234.azurewebsites.net.
В верхней части страницы выберите Сохранить, чтобы сохранить переменную в конвейере.
Ваша группа переменных похожа на эту группу:
Создание сред разработки, тестирования и промежуточного хранения
В предыдущих модулях вы создали среды для разработки, тестированияи промежуточной среды. Здесь вы повторяете процесс.
Чтобы создать среды для разработки, для тестированияи стадии:
В Azure Pipelines выберите среды.
Чтобы создать среду разработки, выполните следующие действия.
- Выберите Создать среду.
- В поле Имявведите dev.
- Оставьте оставшиеся поля по умолчанию.
- Выберите Создать.
Чтобы создать среду теста, выполните следующие действия.
- Вернитесь на страницу сред.
- Выберите Создать среду.
- В разделе Имявведите тест.
- Выберите Создать.
Чтобы создать среду промежуточного, выполните следующие действия.
- Вернитесь на страницу сред.
- Выберите Создать среду.
- В разделе "Имя "введите "staging" .
- Выберите Создать.
Создание подключения к службе
Здесь вы создадите подключение к службе, позволяющее Azure Pipelines получить доступ к подписке Azure. Azure Pipelines использует это подключение к службе для развертывания веб-сайта в Службе приложений. Вы создали аналогичное подключение к службе в предыдущем модуле.
Важный
Убедитесь, что вы вошли на портал Azure и Azure DevOps под одной учетной записью Майкрософт.
В Azure DevOps перейдите в проект Space Game – web – шаблоны развертывания.
В нижнем углу страницы выберите параметры проекта.
В разделе Пайплайнывыберите подключения служб.
Выберите Новое подключение службы, затем выберите Azure Resource Manager, после чего Далее.
В верхней части страницы субъект-служба (автоматический). Затем нажмите кнопку Далее.
Заполните следующие поля:
Поле Ценность Уровень области Подписка Подписка Подписка Azure Группа ресурсов tailspin-space-game-rg Имя подключения службы Менеджер ресурсов - Tailspin - Космическая игра Во время процесса может появиться запрос на вход в учетную запись Майкрософт.
Убедитесь, что выбрано «Предоставить разрешение на доступ ко всем конвейерам».
Выберите Сохранить.
Azure DevOps выполняет тестовое подключение, чтобы убедиться, что он может подключиться к подписке Azure. Если Azure DevOps не удается подключиться, у вас есть возможность войти во второй раз.
Извлеките ветвь из GitHub
Здесь вы получите ветвь blue-green
из GitHub. Затем проверьтеи переключитесь на эту ветвь.
Эта ветвь содержит проект Space Game, с которым вы работали в предыдущих модулях, а также конфигурацию для Azure Pipelines, с которой можно начать.
В Visual Studio Code откройте интегрированный терминал.
Выполните следующие команды
git
, чтобы получить ветвь с именемblue-green
из репозитория Майкрософт и переключиться на нее.git fetch upstream blue-green git checkout -B blue-green upstream/blue-green
Формат этих команд позволяет получить начальный код из репозитория Microsoft GitHub, известного как
upstream
. Вскоре вы будете отправлять эту ветвь в репозиторий GitHub, известный какorigin
.В качестве дополнительного шага откройте azure-pipelines.yml из Visual Studio Code. Ознакомьтесь с начальной конфигурацией.
Конфигурация напоминает те, которые вы создали в предыдущих модулях в этом пути обучения. Он собирает только конфигурацию релиза приложения. Для краткости он пропускает триггеры, ручные утверждения и тесты, настроенные в предыдущих модулях.
В целях обучения эта конфигурация содействует внесению изменений из любой ветви на Dev, Testи Staging. Более надежный подход может способствовать внесению изменений только из выпускной ветки или
main
. Ты использовал этот надежный подход в модуле , создавая многоэтапный конвейер, используя Azure Pipelines.
Запуск конвейера и просмотр развернутого веб-сайта
Здесь вы отправляете начальную конфигурацию в GitHub, чтобы вы были в курсе работы с командой. Позже вы добавите слот в промежуточную среду , чтобы реализовать сине-зеленое обновление.
В Visual Studio Code откройте интегрированный терминал.
Выполните следующую команду
git commit
, чтобы добавить пустую запись в историю коммитов.git commit --allow-empty -m "Trigger the pipeline"
Этот шаг предназначен для обучения. Это не типично. Мы предоставляем начальный код, который вам не нужно изменять сейчас. Флаг
--allow-empty
гарантирует, что следующий шаг успешно отправляет ветвь в GitHub и запускает Azure Pipelines для запуска.Если вы опустили этот шаг, то команда
git push
, выполняемая на следующем шаге, не будет выполнять никаких действий. Таким образом, это не инициирует запуск Azure Pipelines.Выполните следующую команду
git push
, чтобы отправить ветвь в репозиторий GitHub.git push origin blue-green
В Azure Pipelines перейдите к сборке. Затем отслеживайте выполнение сборки. При появлении запроса выберите Разрешение, чтобы дать права на развертывание для разных этапов.
После завершения запуска конвейера переходите на страницу итогов, чтобы просмотреть состояние конвейера.
Перейдите по URL-адресу, соответствующему каждому этапу. Веб-приложение должно быть развернуто в каждой среде.