Share via


Utiliser un plan Terraform pour déployer une instance Windows Google Cloud Platform et la connecter à Azure Arc

Cet article propose une aide relative à l’utilisation du plan Terraform fourni pour déployer une instance de Google Cloud Platform (GCP) Windows Server et la connecter en tant que ressource de serveur avec Azure Arc.

Prérequis

  1. Clonez le référentiel Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Installez ou mettez à jour Azure CLI vers la version 2.7 ou une version ultérieure. Utilisez la commande suivante pour vérifier la version installée actuellement.

    az --version
    
  3. Installer Terraform >= 0.12

  4. Compte Google Cloud Platform avec facturation activée :créez un compte d’essai gratuit. Pour créer des machines virtuelles Windows Server, vous devez mettre à niveau votre compte pour activer la facturation. Sélectionnez Facturation dans le menu, puis sélectionnez Mettre à niveau en bas à droite.

    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.

    Clause d’exclusion de responsabilité : pour éviter des frais imprévus, suivez la section « Supprimer le déploiement » à la fin de cet article.

  5. Créez un principal de service Azure.

    Pour connecter la machine virtuelle GCP à Azure Arc, un principal de service Azure auquel est affecté le rôle Contributeur est requis. Pour le créer, connectez-vous à votre compte Azure et exécutez la commande suivante. Vous pouvez également exécuter cette commande dans 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>"
    

    Par exemple :

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

    La sortie doit ressembler à ceci :

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

    Remarque

    Nous vous recommandons vivement d’étendre le principal du service à un abonnement Azure et à un groupe de ressources spécifiques.

Créer un nouveau projet GCP

  1. Accédez à la console d’API Google et connectez-vous avec votre compte Google. Une fois connecté, créez un nouveau projet nommé Azure Arc demo. Après l’avoir créé, veillez à copier l’ID du projet car il est généralement différent du nom du projet.

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

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

  2. Une fois que le nouveau projet est créé et sélectionné dans la liste déroulante en haut de la page, vous devez activer l’accès à l’API Compute Engine pour le projet. Cliquez sur + Activer les API et les services et recherchez moteur de calcul. Sélectionnez ensuite Activer pour activer l’accès à l’API.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Configurez ensuite une clé de compte de service que Terraform utilisera pour créer et gérer des ressources dans votre projet GCP. Accédez à la page Créer une clé de compte de service. Sélectionnez Nouveau compte de service dans la liste déroulante, attribuez-lui un nom, sélectionnez le projet, puis le rôle Propriétaire et le type de clé JSON et sélectionnez Créer. Cela permet de télécharger un fichier JSON contenant toutes les informations d’identification nécessaires pour que Terraform gère les ressources. Copiez le fichier JSON téléchargé dans le répertoire azure_arc_servers_jumpstart/gcp/windows/terraform.

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

Déploiement

Avant d’exécuter le plan Terraform, vous devez définir, puis exporter les variables d’environnement qui seront utilisées par le plan. Ces variables sont basées sur le principal de service Azure que vous venez de créer, votre abonnement Azure et votre locataire, ainsi que le nom du projet GCP.

  1. Récupérez votre ID d’abonnement et votre ID de locataire Azure à l’aide de la commande az account list.

  2. Le plan Terraform crée des ressources à la fois dans Microsoft Azure et dans Google Cloud Platform. Il exécute ensuite un script sur une machine virtuelle GCP pour installer l’agent Azure Arc et tous les artefacts nécessaires. Ce script nécessite certaines informations sur vos environnements GCP et Azure. Modifiez scripts/vars.sh et mettez à jour chacune des variables avec les valeurs appropriées.

    • TF_VAR_subscription_id = votre ID d’abonnement Azure
    • TF_VAR_client_id = votre ID de l’application du principal de service Azure
    • TF_VAR_client_secret = mot de passe de votre principal de service Azure
    • TF_VAR_tenant_id = ID de votre locataire Azure
    • TF_VAR_gcp_project_id = ID du projet GCP
    • TF_VAR_gcp_credentials_filename = Nom de fichier JSON des informations d’identification GCP
  3. À partir de l’interface CLI, accédez au répertoire azure_arc_servers_jumpstart/gcp/windows/terraform du référentiel cloné.

  4. Exportez les variables d’environnement que vous avez modifiées en exécutant scripts/vars.sh avec la commande source, comme indiqué ci-dessous. Terraform exige que ces variables soient définies pour que le plan s’exécute correctement.

    source ./scripts/vars.sh
    
  5. Exécutez la commande terraform init qui télécharge le fournisseur Terraform AzureRM.

    A screenshot of the terraform init command.

  6. Exécutez ensuite la commande terraform apply --auto-approve et patientez jusqu’à ce que le plan se termine. Une fois le script Terraform terminé, vous avez déployé une machine virtuelle Windows Server 2019 dans GCP et lancé un script pour télécharger l’agent Azure Arc sur la machine virtuelle et connecter la machine virtuelle en tant que nouveau serveur compatible avec Azure Arc dans un nouveau groupe de ressources Azure. Le provisionnement par l’agent dure quelques minutes. Profitez-en pour aller prendre un café.

    A screenshot of the terraform apply command.

  7. Au bout de quelques minutes, vous devez être en mesure d’ouvrir le portail Azure et d’accéder au groupe de ressources arc-gcp-demo. La machine virtuelle Windows Server créée dans GCP est visible en tant que ressource.

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

Déploiement semi-automatisé (facultatif)

Le plan Terraform installe automatiquement l’agent Azure Arc et connecte la machine virtuelle à Azure en tant que ressource managée en exécutant un script PowerShell au premier démarrage de la machine virtuelle.

A screenshot of the azcmagent connect command.

Si vous souhaitez contrôler le processus d’inscription proprement dit ou en voir une démonstration, procédez comme suit :

  1. Avant d’exécuter la commande terraform apply, ouvrez main.tf, placez en commentaire la ligne windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content et enregistrez le fichier.

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

  2. Exécutez terraform apply --auto-approve comme indiqué ci-dessus.

  3. Ouvrez la console GCP et accédez à la page de l’instance de calcul, puis sélectionnez la machine virtuelle qui a été créée.

    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. Créez un utilisateur et un mot de passe pour la machine virtuelle en sélectionnant Définir le mot de passe et en spécifiant un nom d’utilisateur.

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

  5. Établissez une connexion RDP à la machine virtuelle en sélectionnant le bouton RDP sur la page de la machine virtuelle dans GCP et connectez-vous avec le nom d’utilisateur et le mot de passe que vous venez de créer.

    A screenshot showing how to RDP into a GCP instance.

  6. Une fois connecté, ouvrez PowerShell ISE en tant qu’administrateur. Vérifiez que vous exécutez la version x64 de PowerShell ISE et pas la version x86. Sélectionnez ensuite Fichier > Nouveau pour créer un fichier .ps1 vide. Collez-y ensuite la totalité du contenu de ./scripts/install_arc_agent.ps1. Cliquez sur le bouton de lecture pour exécuter le script. Quand cette opération est terminée, vous devez voir la sortie qui indique la réussite de l’intégration de la machine.

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

Suppression du déploiement

Pour supprimer toutes les ressources que vous avez créées dans le cadre de cette démonstration, utilisez la commande terraform destroy --auto-approve comme indiqué ci-dessous.

A screenshot of the terraform destroy command.

Vous pouvez également supprimer la machine virtuelle GCP directement à partir de la console GCP.

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