Развертывание локального сервера Ubuntu, размещенного на Vagrant, и его подключение к службе "Дуга Azure"Deploy a local Ubuntu server hosted with Vagrant and connect it to Azure Arc

В этой статье приводятся рекомендации по развертыванию локальной виртуальной машины Ubuntu с помощью Vagrant и ее подключению в качестве ресурса сервера с поддержкой ARC в Azure.This article provides guidance for deploying a local Ubuntu virtual machine using Vagrant and connect it as an Azure Arc enabled server resource.

Предварительные требованияPrerequisites

  1. Клонировать репозиторий Azure ARC.Clone the Azure Arc Jumpstart repository.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Установите или обновите Azure CLI до версии 2,7 и более поздней.Install or update Azure CLI to version 2.7 and above. Используйте следующую команду, чтобы проверить текущую установленную версию.Use the following command to check your current installed version.

    az --version
    
  3. Vagrant полагается на базовую низкоуровневую оболочку.Vagrant relies on an underlying hypervisor. Для этого руководством мы будем использовать "Oracle VM VirtualBox".For this guide, we will be using "Oracle VM VirtualBox".

    1. Установите VirtualBox.Install VirtualBox.

      • Если вы являетесь пользователем macOS, выполните команду brew cask install virtualboxIf you are a macOS user, run brew cask install virtualbox
      • Если вы являетесь пользователем Windows, вы можете использовать шоколадный пакет .If you are a Windows user, you can use the Chocolatey package
      • Если вы являетесь пользователем Linux, то все методы установки пакета можно найти здесь .If you are a Linux user, all package installation methods can be found here
    2. Установка VagrantInstall Vagrant

      • Если вы являетесь пользователем macOS, выполните команду brew cask install vagrantIf you are a macOS user, run brew cask install vagrant
      • Если вы являетесь пользователем Windows, вы можете использовать шоколадный пакет .If you are a Windows user, you can use the Chocolatey package
      • Если вы являетесь пользователем Linux, посмотрите здесьIf you are a Linux user, look here
  4. Создайте субъект-службу Azure.Create an Azure service principal.

    Чтобы подключить виртуальную машину Vagrant к службе "Дуга Azure", требуется субъект-служба Azure, назначенная с ролью участника.To connect the Vagrant virtual machine to Azure Arc, an Azure service principal assigned with the Contributor role is required. Чтобы создать его, войдите в учетную запись Azure и выполните следующую команду.To create it, sign in to your Azure account and run the following command. Эту команду также можно выполнить в Azure Cloud Shell.You can also run this command in Azure Cloud Shell.

    az login
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor
    

    Пример:For example:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor
    

    Выходные данные должны выглядеть следующим образом:Output should look like this:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "AzureArcServers",
      "name": "http://AzureArcServers",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Примечание

    Мы настоятельно рекомендуем ограничить субъект-службу определенной подпиской Azure и группой ресурсов.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.

  5. Файл Vagrant выполняет сценарий в ОС виртуальной машины для установки всех необходимых артефактов и вставки переменных среды.The Vagrant file executes a script on the VM OS to install all the needed artifacts and to inject environment variables. Измените scripts/vars.sh сценарий оболочки в соответствии с созданным субъектом-службой Azure.Edit the scripts/vars.sh shell script to match the Azure service principal you created.

    • subscriptionId — Идентификатор подписки Azure;subscriptionId = your Azure subscription ID
    • appId = имя субъекта-службы AzureappId = your Azure service principal name
    • password — пароль субъекта-службы Azure.password = your Azure service principal password
    • tenantId — Идентификатор клиента Azure.tenantId = your Azure tenant ID
    • resourceGroup = Имя группы ресурсов AzureresourceGroup = Azure resource group name
    • location = Регион Azurelocation = Azure region

РазвертываниеDeployment

Как и любое Vagrant развертывание, требуется поле vagrantfile. и Vagrant .Like any Vagrant deployment, a vagrantfile and a Vagrant box is needed. На высоком уровне развертывание будет следующим:At a high-level, the deployment will:

  • Скачайте Vagrant файл образа Ubuntu 16,04Download the Ubuntu 16.04 image file Vagrant box
  • Выполнение скрипта установкиExecute the installation script

После редактирования scripts/vars.sh сценария в соответствии с используемой средой в Vagrantfile папке выполните команду vagrant up .After editing the scripts/vars.sh script to match your environment, from the Vagrantfile folder, run vagrant up. Поскольку это первый раз при создании виртуальной машины, первый запуск будет выполняться намного медленнее , чем раньше, поскольку развертывание загружает поле Ubuntu в первый раз.Since this is the first time creating the VM, the first run will be much slower than the ones to follow, because the deployment is downloading the Ubuntu box for the first time.

Снимок экрана команды "Vagrant Up".

После завершения загрузки начинается подготовка.Once the download is complete, the provisioning begins. Как показано на следующем снимке экрана, процесс занимает не более трех минут.As shown in the following screenshot, the process takes no longer than three minutes.

Снимок экрана завершенной команды "Vagrant Up".

После завершения будет развернута локальная виртуальная машина Ubuntu, подключенная как новый сервер с поддержкой ARC в Azure, в новой группе ресурсов.Upon completion, you will have a local Ubuntu VM deployed, connected as a new Azure Arc enabled server, inside a new resource group.

Снимок экрана сервера с поддержкой дуги Azure в портал Azure.

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

Частично автоматизированное развертывание (необязательно)Semi-automated deployment (optional)

Последний шаг — зарегистрировать виртуальную машину в качестве нового ресурса сервера с поддержкой дуги Azure.The last step is to register the VM as a new Azure Arc enabled server resource.

Еще один снимок экрана команды "Vagrant Up".

Если вы хотите получить демонстрацию или управлять фактическим процессом регистрации, выполните следующие действия.If you want to demo/control the actual registration process, complete the following steps:

  1. В install_arc_agent скрипте оболочки закомментируйте run connect command раздел и сохраните файл.In the install_arc_agent shell script, comment out the run connect command section and save the file. Можно также закомментировать или изменить создание группы ресурсов.You can also comment out or change the creation of the resource group.

    Снимок экрана команды "азкмажент Connect".

    Снимок экрана команды "az Group Create".

  2. Подключитесь к виртуальной машине по протоколу SSH с помощью vagrant ssh команды.SSH to the VM using the vagrant ssh command.

    Снимок экрана ключа SSH, подключающегося к компьютеру Vagrant.

  3. Выполните ту же azcmagent connect команду, с которой были внесены комментарии, используя переменные среды.Run the same azcmagent connect command you commented out using your environment variables.

    Еще один снимок экрана команды "азкмажент Connect".

Удаление развертыванияDelete the deployment

Чтобы удалить все развертывание, выполните vagrant destroy -f команду.To delete the entire deployment, run the vagrant destroy -f command. Vagrantfile. включает before: destroy триггер Vagrant, который будет выполнять сценарий для удаления группы ресурсов Azure перед уничтожением реальной виртуальной машины.The vagrantfile includes a before: destroy Vagrant trigger, which will run a script to delete the Azure resource group before destroying the actual VM.

Снимок экрана команды "Vagrant Destroy".