arrow_back

VM Migration : planification

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

VM Migration : planification

Lab 1 heure universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP616

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

La méthodologie de migration dans le cloud structurée en quatre phases de Google Cloud fournit aux utilisateurs un chemin de migration défini et reproductible :

Diagramme du processus de migration en quatre phases

  1. Évaluez l'environnement actuel pour connaître et comprendre précisément les ressources existantes et définir des groupes de migration.

  2. Planifiez la manière de déplacer vos applications et créez l'infrastructure cloud de base pour l'hébergement de vos charges de travail. Cette planification inclut la gestion des identités, l'organisation et la structure du projet, la mise en réseau, le tri de vos applications et le développement d'une stratégie de migration hiérarchisée.

  3. Déployez les serveurs cloud ou sur site existants dans Google Cloud en utilisant l'un des outils de migration recommandés par Google Cloud, comme Velostrata de Google ou l'outil de migration à chaud de CloudEndure.

  4. Optimisez les charges de travail récemment migrées afin de profiter de tous les avantages de Google Cloud en termes de coûts et d'efficacité opérationnelle.

Cet atelier se concentre sur la phase Planifier et sur la manière de déployer votre infrastructure de base sur Google Cloud.

Points abordés

Terraform est un outil Open Source très répandu qui permet de définir et de provisionner l'infrastructure (infrastructure en tant que code). Au cours de cet atelier, vous allez configurer un réseau cloud, configurer l'accès et déployer votre première application de manière sécurisée et automatisée à l'aide de modèles de code préintégrés d'infrastructure en tant que code.

Plus précisément, vous allez apprendre à :

  • créer des identifiants d'accès pour l'automatisation dans Google Cloud ;
  • créer un environnement fonctionnel permettant d'utiliser Terraform ;
  • créer un réseau cloud privé virtuel (VPC) en mode personnalisé, avec des règles de pare-feu associées ;
  • générer une image sur Compute Engine ;
  • déployer une instance sur Compute Engine à l'aide de Terraform ;
  • référencer des ressources pour plusieurs déploiements Terraform.

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Configurer votre environnement

  1. Vérifiez que Terraform est installé dans l'environnement Cloud Shell :
terraform -v

Résultat de la commande :

Terraform v0.15.3 Remarque : Votre version peut être légèrement différente. Si elle ressemble au résultat renvoyé ci-dessus, vous pouvez poursuivre cet atelier.
  1. Clonez le dépôt git qui contient le code de l'atelier en exécutant la commande suivante :
git clone https://github.com/terraform-google-modules/cloud-foundation-training.git
  1. Définissez le répertoire actuel sur le répertoire réseau :
cd cloud-foundation-training/other/terraform-codelab/lab-networking

Tâche 2 : Configurer des variables

Dans cette section, vous allez définir des variables pour la configuration Terraform. Les variables vous permettent de paramétrer les configurations Terraform afin de pouvoir les réutiliser.

Si aucune variable n'est définie, Terraform vous invitera à les définir lors de son exécution.

Pour plus de simplicité, vous pouvez stocker les valeurs des variables dans un fichier terraform.tfvars que Terraform charge automatiquement lors de son exécution.

  1. Créez un fichier terraform.tfvars dans Cloud Shell :
touch terraform.tfvars
  1. Ouvrez le fichier terraform.tfvars dans l'éditeur de code :
edit terraform.tfvars Remarque : Vous pouvez également utiliser un éditeur de code CLI comme vi et nano si vous vous sentez plus à l'aise avec ce type d'outil.
  1. Collez ceci dans votre fichier terraform.tfvars :
project_id="<id de mon projet>"
  1. Modifiez la variable de l'ID du projet afin qu'elle corresponde à l'ID de votre projet Qwiklabs. Par exemple, <id de mon projet> doit être remplacé par qwiklabs-gcp-xx-xxxxxxxxxxxx.

Tâche 3 : Configurer des identifiants d'accès Google Cloud

Dans cette section, vous allez créer et télécharger des clés de compte de service à utiliser comme identifiants d'accès pour Google Cloud. Vous modifierez également vos fichiers modèles pour qu'ils utilisent ces identifiants d'accès.

Terraform requiert les droits d'accès à vos projets et/ou à vos environnements dans Google Cloud. Bien que le fournisseur Google Cloud de Terraform propose plusieurs méthodes pour obtenir des identifiants, dans cet atelier, vous allez créer et télécharger un fichier d'identifiants associé à un compte de service Google Cloud. L'authentification par compte de service Google Cloud fait partie des bonnes pratiques.

Créer et télécharger des identifiants d'accès de compte de service par défaut

  1. Dans votre session Cloud Shell, utilisez la commande suivante afin de créer un compte de service pour exécuter Terraform :
gcloud iam service-accounts create terraform --display-name terraform

Résultat de la commande :

Created service account [terraform].
  1. Dressez la liste de vos comptes de service pour obtenir l'adresse e-mail de votre nouveau compte Terraform :
gcloud iam service-accounts list

Résultat de la commande :

DISPLAY NAME: Compute Engine default service account EMAIL: 631585931190-compute@developer.gserviceaccount.com DISABLED: False DISPLAY NAME: Qwiklabs User Service Account EMAIL: qwiklabs-gcp-02-8eb8debc8fd5@qwiklabs-gcp-02-8eb8debc8fd5.iam.gserviceaccount.com DISABLED: False DISPLAY NAME: terraform EMAIL: terraform@qwiklabs-gcp-02-8eb8debc8fd5.iam.gserviceaccount.com DISABLED: False
  1. Créez et téléchargez une clé pour pouvoir utiliser le compte de service Terraform, en remplaçant <adresse e-mail du compte de service> par l'adresse e-mail Terraform générée à partir de la commande précédente :
gcloud iam service-accounts keys create ./credentials.json --iam-account <adresse e-mail du compte de service>

Résultat de la commande :

created key [...] of type [json] as [./credentials.json] for [terraform@.iam.gserviceaccount.com]

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à créer un compte de service et une clé, vous recevez une note d'évaluation.

Créer un compte de service et une clé (Nom CS : terraform)
  1. Attribuez à votre compte de service le rôle de propriétaire sur votre projet en exécutant la commande suivante et en remplaçant <id de mon projet> par votre ID de projet Qwiklabs et <adresse e-mail du compte de service> par l'adresse e-mail de votre compte de service Terraform :
gcloud projects add-iam-policy-binding <id de mon projet> --member=serviceAccount:<adresse e-mail du compte de service> --role=roles/owner

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à attribuer un rôle de propriétaire à votre compte de service sur le projet, une note d'évaluation s'affichera.

Accorder à votre compte de service le rôle de propriétaire sur votre projet

Tâche 4 : Configurer l'état à distance

Terraform met en correspondance votre configuration et les ressources créées en définissant un état Terraform. Par défaut, cet état est stocké dans un fichier local. Toutefois, il est recommandé de le stocker à distance sur Cloud Storage.

Dans cette section, vous allez créer un bucket Cloud Storage pour stocker l'état Terraform et mettre à jour votre configuration Terraform afin qu'elle renvoie vers ce bucket.

Créer et configurer un bucket Cloud Storage

  1. Créez un bucket pour stocker l'état Terraform. Les buckets Cloud Storage doivent être uniques. Veillez donc à ajouter en préfixe de son nom l'ID de votre projet Google Cloud Qwiklabs, comme indiqué dans la commande ci-dessous :
gsutil mb gs://<id de mon projet>-state-bucket

Résultat de la commande :

Creating gs://-state-bucket/...

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si le bucket Cloud Storage a correctement été créé, une note d'évaluation s'affichera.

Créer et configurer un bucket Cloud Storage
  1. Ouvrez la configuration backend stockée dans backend.tf :
edit backend.tf
  1. Mettez à jour le nom du bucket afin qu'il corresponde au nom choisi et enregistrez le fichier :
terraform { backend "gcs" { bucket = "my-state-bucket" # Change this to <id de mon projet>-state-bucket prefix = "terraform/lab/network" } }

Tâche 5 : Exécuter Terraform

Maintenant que vous avez configuré les identifiants et l'état à distance, vous êtes prêt à exécuter Terraform. Lorsque vous utiliserez Terraform, vous suivrez généralement ces étapes pour déployer et nettoyer un environnement, comme indiqué dans l'image suivante.

D&#39;abord, configurer les fichiers de configuration, puis préparer le déploiement (planifier), déployer les ressources (appliquer), vérifier le déploiement et nettoyer les ressources (détruire)

Exécuter Terraform pour la première fois

  1. Tout d'abord, initialisez Terraform pour télécharger la dernière version des fournisseurs Google et Random. Pour ce faire, exécutez la commande suivante dans Cloud Shell :
terraform init
  • Si vous exécutez cette commande et que vous recevez un message d'erreur indiquant que votre bucket Cloud Storage n'existe pas, vérifiez que le nom est correct dans backend.tf. Exécutez ensuite les commandes ci-dessous :
rm -rf .terraform/ terraform init

Cela nettoiera votre état Terraform local et permettra une bonne initialisation.

  1. Exécutez une étape de planification pour valider la syntaxe de la configuration et afficher un aperçu de ce qui sera créé :
terraform plan

Le résultat de la planification indique que Terraform va créer huit ressources pour votre réseau.

  1. Exécutez maintenant la commande terraform apply pour appliquer ces modifications :
terraform apply

Le résultat doit ressembler à ceci :

Plan: 8 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
  1. Saisissez yes (oui) dans l'invite. Une fois l'application terminée, un résultat semblable aux lignes suivantes doit s'afficher :
Apply complete! Resources: 8 added, 0 changed, 0 destroyed.
  1. Une fois les modifications appliquées, vous pouvez afficher la liste des ressources à l'état Terraform à l'aide de la commande terraform show :
terraform show

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à exécuter Terraform pour la première fois, vous recevez une note d'évaluation.

Exécuter Terraform pour la première fois

Tâche 6 : Ajouter un sous-réseau

Le répertoire que vous avez téléchargé comprend un module définissant votre réseau et vos sous-réseaux. Vous ajouterez un sous-réseau aux VM hôtes migrées.

Créer un réseau supplémentaire

  1. Ouvrez la configuration réseau stockée dans network.tf. La configuration réseau de ce fichier est gérée via le module réseau :
edit network.tf
  1. Ajoutez un sous-réseau supplémentaire dans le bloc subnets du fichier (à la ligne 40). Vous pouvez choisir vos propres nom et plage CIDR, par exemple 10.10.30.0/24.
module "vpc" { ... subnets = [ ... { # Creates your first subnet in {{{project_0.default_region|Region}}} and defines a range for it subnet_name = "my-first-subnet" subnet_ip = "10.10.10.0/24" subnet_region = "{{{project_0.default_region|Region}}}" }, # Add your subnet here { subnet_name = "my-third-subnet" subnet_ip = "10.10.30.0/24" subnet_region = "{{{project_0.default_region|Region}}}" }, ] }
  1. Vous devez également ajouter une section définissant les plages secondaires pour votre sous-réseau (ligne 49), qui peut être une liste vide :
secondary_ranges = { my-first-subnet = [] my-gke-subnet = [ { # Define a secondary range for Kubernetes pods to use range_name = "my-gke-pods-range" ip_cidr_range = "192.168.64.0/24" }, ] # Add your subnet's secondary range below this line my-third-subnet = [] }
  1. Exécutez maintenant la commande terraform apply pour ajouter votre nouveau sous-réseau :
terraform apply Remarque : Si vous recevez un message d'erreur du type Error waiting to create Subnetwork (Erreur lors de l'attente de la création du sous-réseau), réexécutez la commande ci-dessus.

Le résultat doit ressembler à ceci :

Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
  1. Saisissez yes (oui) dans l'invite. Une fois l'application terminée, un résultat semblable aux lignes suivantes doit s'afficher.
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à appliquer les modifications visant à ajouter un sous-réseau à l'aide du script Terraform, vous recevez une note d'évaluation.

Ajouter un sous-réseau

Tâche 7 : Autoriser le trafic https

L'atelier inclut du code pour la gestion des règles de pare-feu dans Terraform. Vous pouvez aller plus loin en ajoutant d'autres règles de pare-feu pour le trafic entrant ou sortant.

  1. Ouvrez la configuration de pare-feu stockée dans firewall.tf :
edit firewall.tf
  1. Modifiez la règle allow-http pour également autoriser le trafic HTTPS sur le port 443 (ligne 51) :
resource "google_compute_firewall" "allow-http" { name = "allow-http" network = module.vpc.network_name project = google_project_service.compute.project allow { protocol = "tcp" ports = ["80", "443"] # Edit this line } # Allow traffic from everywhere to instances with an http-server tag source_ranges = ["0.0.0.0/0"] target_tags = ["allow-http"] }
  1. Exécutez maintenant la commande terraform apply pour mettre à jour la règle de pare-feu :
terraform apply

Le résultat doit ressembler à ceci :

Plan: 0 to add, 1 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
  1. Saisissez yes (oui) dans l'invite. Une fois l'application terminée, un résultat semblable aux lignes suivantes doit s'afficher.
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à appliquer les modifications visant à mettre à jour une règle de pare-feu à l'aide du script Terraform, vous recevez une note d'évaluation.

Autoriser le trafic HTTPS

Tâche 8 : Ajouter un résultat Terraform

Les résultats Terraform permettent de collecter les informations les plus importantes et les plus pertinentes concernant votre environnement. Ces informations s'adressent aux utilisateurs comme aux processus système. Il peut s'agir d'adresses IP clés, de noms d'instance ou d'autres informations.

Dans cette section, vous allez ajouter un résultat pour partager l'ID de votre nouveau sous-réseau.

  1. Ouvrez la configuration réseau stockée dans outputs.tf :
edit outputs.tf
  1. Ajoutez une section qui affiche le nom de votre nouveau sous-réseau, en fonction des résultats existants. Veuillez noter que les sous-réseaux sont indexés par zéro :
# Add you new output below this line output "my_subnet_name" { value = module.vpc.subnets_names[2] }
  1. Exécutez maintenant la commande terraform apply pour mettre à jour la règle de pare-feu :
terraform apply
  1. Saisissez yes (oui) lorsque vous êtes invité à ajouter une valeur.

  2. Affichez les résultats à l'aide de la commande terraform output :

terraform output

Résultat de la commande :

first_subnet_name = "my-first-subnet" my_subnet_name = "my-third-subnet" network_name = "my-custom-network"

Tâche 9 : Créer la première VM

Vous allez poursuivre le travail effectué précédemment en créant une VM et en la déployant sur votre réseau. Vous apprendrez également à créer une image de base et des informations de configuration de couches dynamiques pour les VM.

Pour créer une image, vous devez commencer par lancer une VM où vous installerez le logiciel que vous souhaitez inclure dans votre image.

Lancer la première VM

  1. Lancez une VM à l'aide de gcloud sur votre premier sous-réseau :
gcloud compute instances create build-instance --zone={{{project_0.default_zone|zone}}} --machine-type=e2-standard-2 --subnet=my-first-subnet --network-tier=PREMIUM --maintenance-policy=MIGRATE --image=debian-10-buster-v20221206 --image-project=debian-cloud --boot-disk-size=100GB --boot-disk-type=pd-standard --boot-disk-device-name=build-instance-1 --tags=allow-ssh
  1. Connectez-vous en SSH à la VM :
gcloud compute ssh build-instance --zone={{{project_0.default_zone|zone}}}

Résultat de la commande :

WARNING: The public SSH key file for gcloud does not exist. WARNING: The private SSH key file for gcloud does not exist. WARNING: You do not have an SSH key for gcloud. WARNING: SSH keygen will be executed to generate a key. This tool needs to create the directory [/home/user/.ssh] before being able to generate SSH keys. Do you want to continue (Y/n)?
  1. Saisissez "Y" (Oui). Ensuite, lorsque vous êtes invité à saisir une phrase secrète, appuyez deux fois sur ENTRÉE.

  2. Installez Apache sur la VM :

sudo apt-get update && sudo apt-get install apache2 -y
  1. Quittez la session SSH :
exit

Tâche 10 : Capturer l'image de base

Maintenant que vous disposez d'une machine exécutant le logiciel nécessaire, vous pouvez la capturer en tant qu'image de base pour lancer d'autres VM identiques.

Créer une image

  1. Arrêtez la VM. Il est toujours préférable d'arrêter les VM avant de capturer des images si possible :
gcloud compute instances stop build-instance --zone={{{project_0.default_zone|zone}}}
  1. Créez une image à partir du disque de démarrage :
gcloud compute images create apache-one \ --source-disk build-instance \ --source-disk-zone {{{project_0.default_zone|zone}}} \ --family my-apache-webserver

En incluant le paramètre family, nous avons lié notre image à une famille. Cela nous permet d'obtenir facilement des informations ou de déployer la dernière image de cette famille.

  1. Utilisez gcloud pour obtenir des informations sur la dernière image my-apache-webserver :
gcloud compute images describe-from-family my-apache-webserver

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à créer une image à partir du disque de démarrage, vous recevez une note d'évaluation.

Créer une image à partir du disque de démarrage

Tâche 11 : Modifier la configuration Terraform

Maintenant que nous disposons d'une image à partir de laquelle travailler, nous souhaiterions la déployer via Terraform. Cependant, il est préférable de séparer les configurations Terraform en unités logiques et les instances de VM en éléments de couches d'application.

Nous allons donc définir et modifier une autre configuration Terraform, spécifique à une application, et laisser notre configuration de réseau de côté.

Définir la configuration d'application Terraform

  1. Dans Cloud Shell, accédez au répertoire d'application de l'atelier :
cd ../lab-app
  1. Copiez les fichiers d'identifiants et de variables à partir de votre configuration réseau :
cp ../lab-networking/credentials.json . cp ../lab-networking/terraform.tfvars .
  1. Mettez à jour la configuration backend de votre code d'application Terraform en modifiant backend.tf :
edit backend.tf Remarque : Vous pouvez réutiliser le même bucket Cloud Storage et simplement indiquer un autre préfixe pour l'état d'application. Veillez à modifier le paramètre du bucket afin qu'il corresponde au bucket que vous avez utilisé auparavant. terraform { backend "gcs" { bucket = "<id de mon projet>-state-bucket" # Edit this this line to match your lab-networking/backend.tf file prefix = "terraform/lab/vm" } }
  1. Vous devez également mettre à jour la source de données d'état distant Terraform. L'état distant Terraform est très utile pour le partage d'informations ou de résultats entre plusieurs projets, par exemple, pour une équipe de mise en réseau centrale qui partage des informations de sous-réseau avec des équipes d'application. Assurez-vous de mettre à jour le paramètre du bucket afin qu'il corresponde au bucket que vous avez utilisé auparavant :
data "terraform_remote_state" "network" { backend = "gcs" config = { bucket = "<id de mon projet>-state-bucket" # Update this too prefix = "terraform/lab/network" } }

Tâche 12 : Déployer une VM via Terraform

Vous pouvez désormais configurer Terraform pour qu'il renvoie à notre image lors du lancement d'une instance. Avant de lancer l'instance, analysons les détails de cette configuration Terraform.

Passer en revue la configuration de la VM

  1. La configuration Terraform pour votre VM est stockée dans vm.tf :
edit vm.tf
  1. Comme nous avons ajouté un tag à notre image dans une famille d'images, nous pouvons récupérer la dernière image de cette famille via Terraform. Si nécessaire, mettez à jour cette source de données afin qu'elle corresponde au nom de famille de l'image que vous avez choisi :
data "google_compute_image" "apache" { family = "my-apache-webserver" project = var.project_id }
  1. Nous pouvons également utiliser une référence pour choisir le nom du sous-réseau sur lequel effectuer le déploiement. La déclaration data.terraform_remote_state.network.my_subnet_name récupère automatiquement le résultat my_subnet_name à partir de la configuration réseau que vous avez créée précédemment :
resource "google_compute_instance" "app" { ... network_interface { subnetwork = data.terraform_remote_state.network.my_subnet_name subnetwork_project = var.project_id access_config { # Include this section to give the VM an external ip address } } ... } Remarque : N'oubliez pas de remplacer la zone par votre zone dans le fichier vm.tf.
  1. Si cette configuration vous semble correcte, vous pouvez exécuter la commande terraform apply pour déployer la VM :
terraform init terraform apply
  1. Saisissez yes (oui) lorsque vous êtes invité à ajouter une valeur.

L'adresse IP externe de votre VM s'affichera.

Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: ip = "35.185.255.154"
  1. Ouvrez l'URL http://<votre ip> dans votre navigateur Web pour voir un message de bienvenue.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à déployer une instance de VM à l'aide de Terraform, vous recevez une note d'évaluation.

Déployer la VM

Tâche 13 : Mettre à jour la VM de l'application

Grâce à la définition de la configuration de la VM via Terraform, vous pouvez modifier de manière déclarative la configuration de l'application en modifiant simplement votre configuration Terraform.

  1. Ouvrez votre fichier vm.tf :
edit vm.tf
  1. Modifiez le paramètre metadata_startup_script pour obtenir un nouveau message de bienvenue :
resource "google_compute_instance" "app" { ... metadata_startup_script = "echo '<!doctype html><html><body><h1>New message!</h1></body></html>' | sudo tee /var/www/html/index.html" # Edit this line tags = ["allow-ping", "allow-http", "allow-ssh"] }
  1. Exécutez Terraform pour recréer votre VM avec la nouvelle configuration :
terraform apply
  1. Saisissez yes (oui) lorsque vous êtes invité à ajouter une valeur.

Vous devez obtenir un résultat semblable à celui-ci :

Apply complete! Resources: 1 added, 0 changed, 1 destroyed. Outputs: ip = 34.83.209.192
  1. Une fois la VM entièrement recréée, ouvrez l'URL http://<votre adresse ip> dans votre navigateur Web pour voir le message de bienvenue.
Remarque : Si le message Apply cancelled (Application annulée) s'affiche, saisissez à nouveau la commande terraform apply.

Tâche 14 : Détruire l'infrastructure

La configuration Terraform vous permet également de démonter facilement l'infrastructure une fois que vous avez fini de l'utiliser. Cela peut être particulièrement utile en cas de développement temporaire ou d'infrastructure de test.

Mettre à jour la configuration de la VM

  1. Détruisez l'infrastructure de la VM via Terraform :
terraform destroy

Vous serez invité à confirmer que vous souhaitez détruire la VM.

An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: - destroy Terraform will perform the following actions: - google_compute_instance.app Plan: 0 to add, 0 to change, 1 to destroy. Do you really want to destroy all resources? Terraform will destroy all your managed infrastructure, as shown above. There is no undo. Only 'yes' will be accepted to confirm. Enter a value: yes
  1. Saisissez yes (oui) lorsque vous êtes invité à ajouter une valeur.

Dès que vous aurez confirmé votre choix, Terraform commencera à détruire votre infrastructure.

google_compute_instance.app: Destroying... (ID: my-app-instance) google_compute_instance.app: Still destroying... (ID: my-app-instance, 10s elapsed) google_compute_instance.app: Still destroying... (ID: my-app-instance, 20s elapsed) google_compute_instance.app: Still destroying... (ID: my-app-instance, 30s elapsed) google_compute_instance.app: Destruction complete after 36s Destroy complete! Resources: 1 destroyed.
  1. N'hésitez pas à détruire l'infrastructure réseau également. Elle sera automatiquement détruite à l'expiration de votre atelier.

Félicitations !

C'est ainsi que s'achève l'atelier d'auto-formation "La migration du centre de données : fondations et déploiements automatisés". Au cours de cet atelier, vous avez réalisé l'ensemble du workflow permettant d'automatiser le déploiement de vos ressources réseau dans Google Cloud. Vous avez configuré les identifiants d'accès, configuré Terraform, créé des ressources (réseau VPC, sous-réseau et règles de pare-feu), modifié les ressources existantes, vérifié soigneusement les capacités de ces ressources, puis vous les avez générées.

Vous avez également appris à créer une première VM, à capturer une image de base, à mettre à jour les configurations Terraform et à déployer la VM via Terraform.

Terminer votre quête

Cet atelier d'auto-formation fait partie de la quête VM Migration. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez cette quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à cette quête pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Atelier suivant

Continuez sur votre lancée en suivant l'atelier Migrate for Anthos : Qwik Start ou découvrez un autre atelier Google Cloud Skills Boost, par exemple Migration de VM : présentation des évaluations StratoZone.

Étapes suivantes et informations supplémentaires

Si vous souhaitez en savoir plus, consultez les liens ci-dessous pour découvrir des ressources supplémentaires à gérer via Terraform :

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 8 décembre 2023

Dernier test de l'atelier : 8 décembre 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.