Используйте план Terraform, чтобы развернуть экземпляр Google Cloud Platform Windows и подключить его к службе Azure Arc

В этой статье приводятся рекомендации по использованию предоставленного плана Terraform для развертывания экземпляра Windows Server Google Cloud Platform (GCP) и его подключения в качестве ресурса сервера с поддержкой Azure Arc.

Необходимые компоненты

  1. Клонируйте репозиторий Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Установите или обновите Azure CLI до версии 2.7 или более поздней. Чтобы проверить текущую установленную версию, используйте приведенную ниже команду.

    az --version
    
  3. Установите Terraform >= 0.12

  4. Учетная запись Google Cloud Platform с включенным сервисом выставления счетов:Создайте бесплатную пробную учетную запись. Чтобы создать виртуальные машины Windows Server, необходимо обновить учетную запись, чтобы включить выставление счетов. В меню выберите пункт Выставление счетов и щелкните Обновить в правом нижнем углу.

    First screenshot showing how to enable billing on a GCP account.

    Second screenshot showing how to enable billing on a GCP account.

    Third screenshot showing how to enable billing on a GCP account.

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

  5. Создайте субъект-службу Azure.

    Для подключения виртуальной машины GCP к службе Azure Arc требуется назначенный субъект-служба Azure с ролью участника. Чтобы создать его, войдите в учетную запись Azure и выполните приведенную ниже команду. Эту команду также можно выполнить в Azure Cloud Shell.

    az login
    az account set -s <Your Subscription ID>
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
    

    Например:

    az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Выходные данные должны выглядеть так:

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

    Примечание.

    Мы настоятельно рекомендуем ограничить субъект-службу определенной подпиской Azure и группой ресурсов.

Создание нового проекта GCP

  1. Перейдите к консоли API-интерфейсов Google и войдите с учетной записью Google. После входа создайте новый проект с именем Azure Arc demo. После его создания необходимо скопировать идентификатор проекта, так как он обычно отличается от имени проекта.

    First screenshot of the New Project page in the GCP console.

    Second screenshot of the New Project page in the GCP console.

  2. После создания и выбора нового проекта в раскрывающемся списке в верхней части страницы необходимо включить доступ к API подсистемы вычислений для проекта. Щелкните + включить интерфейсы API и службы и выполните поиск подсистемы вычислений. Затем выберите Включить, чтобы включить доступ к API.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Затем настройте ключ учетной записи службы, который будет использовать Terraform для создания ресурсов и управления ими в проекте GCP. Перейдите на страницу создания ключа для учетной записи службы. Выберите в раскрывающемся списке пункт Создать учетную запись службы, присвойте ей имя, выберите проект и роль "Владелец", укажите тип ключа "JSON" и щелкните Создать. При этом загрузится файл JSON со всеми учетными данными, необходимыми для управления ресурсами в Terraform. Скопируйте загруженный файл JSON в каталог azure_arc_servers_jumpstart/gcp/windows/terraform.

    A screenshot of how to create a service account in the GCP console.

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

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

  1. Получите идентификатор подписки и идентификатор арендатора Azure с помощью команды az account list.

  2. План Terraform создает ресурсы как в Microsoft Azure, так и в Google Cloud Platform. Затем он выполняет сценарий на виртуальной машине GCP, чтобы установить агент Azure Arc и все необходимые артефакты. Для этого скрипта требуются определенные сведения о средах GCP и Azure. Измените scripts/vars.sh и обновите каждую из переменных с помощью соответствующих значений.

    • TF_VAR_subscription_id — идентификатор подписки Azure;
    • TF_VAR_client_id — идентификатор приложения субъекта-службы Azure;
    • TF_VAR_client_secret — ваш пароль субъекта-службы Azure
    • TF_VAR_tenant_id — идентификатор клиента Azure;
    • TF_VAR_gcp_project_id — идентификатор проекта GCP;
    • TF_VAR_gcp_credentials_filename — имя файла JSON для учетных данных GCP
  3. В интерфейсе командной строки перейдите в каталог azure_arc_servers_jumpstart/gcp/windows/terraform клонированного репозитория.

  4. Экспортируйте измененные переменные среды, запустив scripts/vars.sh с помощью команды настройки источника, как показано ниже. Terraform требует задания этих переменных для правильного выполнения плана.

    source ./scripts/vars.sh
    
  5. Выполните команду terraform init, которая обеспечивает скачивание поставщика AzureRM для Terraform.

    A screenshot of the terraform init command.

  6. Затем выполните команду terraform apply --auto-approve и дождитесь завершения плана. После завершения сценария Terraform разверните виртуальную машину Windows Server 2019 GCP и запустите сценарий для загрузки агента Azure Arc на виртуальную машину и подключения виртуальной машины в качестве нового сервера с поддержкой Azure Arc в новой группе ресурсов Azure. Операция подготовки агента займет несколько минут, поэтому стоит взять чашку кофе.

    A screenshot of the terraform apply command.

  7. Через несколько минут вы сможете открыть портал Azure и перейти к группе ресурсов arc-gcp-demo. Виртуальная машина Windows Server, созданная в GCP, будет отображаться как ресурс.

    A screenshot of an Azure Arc-enabled server in the Azure portal.

Полуавтоматическое развертывание (необязательно)

План Terraform автоматически устанавливает агент Azure Arc и подключает виртуальную машину к Azure в качестве управляемого ресурса, выполняя сценарий PowerShell при первой загрузке виртуальной машины.

A screenshot of the azcmagent connect command.

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

  1. Перед выполнением команды terraform apply откройте main.tf, закомментируйте строку windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content и сохраните файл.

    A screenshot showing main.tf being commented out to disable automatic onboarding of an Azure Arc agent.

  2. Выполните terraform apply --auto-approve, как описано выше.

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

    A screenshot of a server in the GCP console.

    A screenshot showing how to reset a password for a Windows Server in the GCP console.

  4. Создайте пользователя и пароль для виртуальной машины, выбрав Задать пароль и указав имя пользователя.

    A screenshot showing how to set a username and password for a Windows Server in the GCP console.

  5. Подключитесь к виртуальной машине по протоколу RDP, нажав кнопку RDP на странице виртуальной машины в консоли GCP и выполнив вход с использованием только что созданного имени пользователя и пароля.

    A screenshot showing how to RDP into a GCP instance.

  6. После входа откройте интегрированную среду сценариев PowerShell от имени администратора. Убедитесь, что вы используете 64-разрядную версию интегрированной среды сценариев PowerShell, а не версию x86. После открытия выберите Файл > Создать, чтобы создать пустой файл .ps1. Затем вставьте все содержимое ./scripts/install_arc_agent.ps1. Нажмите кнопку «Выполнить», чтобы выполнить скрипт. По завершении вы увидите итоговые данные об успешном подключении компьютера.

    Screenshot showing the Windows PowerShell integrated scripting environment with an Azure Arc agent connection script.

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

Чтобы удалить все ресурсы, созданные в этом примере, используйте команду terraform destroy --auto-approve, как показано ниже.

A screenshot of the terraform destroy command.

Кроме того, виртуальную машину GCP можно удалить непосредственно из консоли GCP.

A screenshot showing how to delete a virtual machine from the GCP console.