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

Завершено

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

Вы изучите следующие темы:

  • Настройте проект Azure DevOps.
  • Управление рабочими элементами с помощью Azure Boards.
  • Создайте среду службы приложение Azure.
  • Создайте переменные конвейера в 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 - Docker.

    Screenshot of creating a project through Azure DevOps Demo Generator.

  3. Выберите Да, я хочу создать вилку для этого репозитория >Авторизовать. При появлении запроса авторизуйте доступ к учетной записи GitHub.

    Важно!

    Этот параметр необходимо выбрать, чтобы шаблон смог подключиться к репозиторию GitHub. Не забудьте выбрать проверка box, даже если вы уже закрепили репозиторий Space Game. Шаблон будет использовать существующий вилку.

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

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

Важно!

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

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

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

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

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

Перемещение рабочего элемента в раздел "Выполняется"

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

Это задание работы дает вам список проверка для работы. Он дает другим участникам команды представление о том, над чем вы работаете, и сколько работы осталось. Рабочий элемент также помогает применять ограничения, выполняемые в процессе работы (WIP), чтобы команда не работала слишком много в один раз.

Здесь вы переместите первый элемент, создайте версию контейнера веб-сайта с помощью Docker, в столбец Docker, а затем назначьте себе рабочий элемент.

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

  1. В Azure DevOps перейдите в Boards. Затем выберите "Доски" в меню.

    Screenshot of Azure DevOps showing the location of the Boards menu.

  2. В разделе "Создание версии контейнера веб-сайта с помощью рабочего элемента Docker" щелкните стрелку вниз в нижней части карта, а затем назначьте рабочий элемент себе.

    Screenshot of Azure Boards showing the location of the down arrow.

  3. Переместите рабочий элемент из столбца Список дел в столбец "Выполнение".

    Screenshot of Azure Boards showing the card in the Doing column.

В конце этого модуля вы переместите карта в столбец Done после завершения задачи.

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

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

В этом модуле вы будете использовать Azure CLI для запуска ресурсов, необходимых для развертывания и запуска экземпляра Служба приложений. Доступ к Azure CLI можно получить из терминала или с помощью Visual Studio Code.

Важно!

Для выполнения упражнений в этом модуле необходимо иметь собственную подписку Azure.

Запуск cloud Shell inn портал Azure

  1. Перейдите на портал Azure и войдите в систему.

  2. Выберите Cloud Shell в строке меню и выберите интерфейс Bash.

    Screenshot of the Azure portal showing the location of the Cloud Shell menu item.

    Примечание.

    Cloud Shell требует, чтобы ресурс хранилища Azure сохранял все файлы, создаваемые в Cloud Shell. При первом открытии Cloud Shell вам будет предложено создать группу ресурсов, учетную запись хранения и общий доступ Файлы Azure. Эта настройка автоматически используется для всех будущих сеансов Cloud Shell.

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

Регион — это один или несколько центров обработки данных Azure, расположенных в определенном географическом расположении. Восточная часть США, западная часть США и Северная Европа являются несколькими примерами регионов. Каждый ресурс Azure, например экземпляр Служба приложений, выделяется для определенного региона.

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

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

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

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

    az configure --defaults location=<REGION>
    

    В этом примере в качестве региона по умолчанию задается westus2 :

    az configure --defaults location=westus2
    

Создание переменных Bash

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

  1. Из Cloud Shell создайте случайное число. Это упрощает создание глобальных уникальных имен для определенных служб на следующем шаге.

    resourceSuffix=$RANDOM
    
  2. Создайте глобально уникальные имена для веб-приложения Служба приложений и Реестр контейнеров Azure. Используя двойные кавычки в этих командах, Bash запрашивает интерполяцию переменных с помощью встроенного синтаксиса.

    webName="tailspin-space-game-web-${resourceSuffix}"
    registryName="tailspinspacegame${resourceSuffix}"
    
  3. Создайте еще две переменные Bash для хранения имен группы ресурсов и плана службы приложений.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Создание ресурсов Azure

Примечание.

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

  1. Выполните следующую az group create команду, чтобы создать группу ресурсов с помощью имени, определенного ранее.

    az group create --name $rgName
    
  2. Выполните следующую az acr create команду, чтобы создать Реестр контейнеров Azure с помощью имени, определенного ранее.

    az acr create --name $registryName \
      --resource-group $rgName \
      --sku Standard \
      --admin-enabled true
    
  3. Выполните следующую az appservice plan create команду, чтобы создать план Служба приложений с помощью имени, определенного ранее.

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

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

    Важно!

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

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

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --deployment-container-image-name $registryName.azurecr.io/web:latest
    
  5. Выполните следующую az webapp list команду, чтобы указать имя узла и состояние экземпляра Служба приложений.

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Запишите имя узла для запущенной службы. Вам потребуется позже при проверке работы. Приведем пример:

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  6. Выполните следующую az acr list команду, чтобы получить список сервера входа Реестр контейнеров Azure экземпляра. Это имя сервера потребуется позднее при создании переменных конвейера.

    az acr list \
      --resource-group $rgName \
      --query "[].{loginServer: loginServer}" \
      --output table
    

    Обратите внимание на сервер входа. Вам потребуется позже при настройке конвейера. Приведем пример:

    LoginServer
    ---------------------------------
    tailspinspacegame4692.azurecr.io    
    

Важно!

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

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

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

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

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

  1. В Azure DevOps перейдите в проект Space Game — web - Docker .

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

    Screenshot of Azure Pipelines showing the Library menu option.

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

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

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

  6. Для имени переменной введите WebAppName. В качестве значения введите имя созданного выше экземпляра Служба приложений, например tailspin-space-game-web-4692.

    Важно!

    Задайте имя экземпляра Служба приложений, а не имя узла. В этом примере вы введете tailspin-space-game-web-4692 , а не tailspin-space-game-web-4692.azurewebsites.net.

  7. Повторите процесс, чтобы добавить другую переменную с именем RegistryName со значением сервера входа Реестр контейнеров Azure, например tailspinspacegame4692.azurecr.io.

  8. Выберите Разрешения конвейера, а затем нажмите +, чтобы добавить конвейер. Выберите mslearn-tailspin-spacegame-web-docker, чтобы предоставить конвейеру разрешение на доступ к группе переменных.

  9. Нажмите Сохранить в верхней части страницы, чтобы сохранить переменные. Ваша группа переменных должна выглядеть следующим образом:

    Screenshot of Azure Pipeline showing the variable group. The group contains two variables.

Создание необходимых подключений к службе

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

Важно!

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

  1. В Azure DevOps перейдите в проект Space Game — web - Docker .

  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 не удается подключиться, у вас есть возможность войти во второй раз.

  9. Выберите новое подключение к службе, а затем выберите "Реестр Docker", а затем нажмите кнопку "Далее".

  10. В верхней части страницы выберите Реестр контейнеров Azure.

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

    Поле значение
    Отток подписок Ваша подписка Azure
    Реестр контейнеров Azure Выберите созданный ранее объект
    Имя подключения службы Подключение реестра контейнеров
  12. Убедитесь, что выбрано разрешение на доступ ко всем конвейерам .

  13. Выберите Сохранить, когда вы закончите.