Terraforme

Comment utiliser Terraform avec Google Cloud Platform?

Comment utiliser Terraform avec Google Cloud Platform?
Terraform est un outil utilisé pour gérer facilement l'infrastructure sous forme de codes. Il est développé par HashiCorp en tant que projet open source permettant aux développeurs cloud de gérer leur infrastructure en langage de très haut niveau (HCL). Le plus grand avantage de cet outil est qu'il fait abstraction des principaux services d'infrastructure tels que AWS, OpenStack, Vultr, Digital Ocean, Google Cloud et permet aux développeurs d'unifier leur configuration dans un seul format standard. En plus de cela, l'automatisation et l'exécution détaillée sont également possibles avec Terraform. Il est disponible sur les plates-formes Windows, Linux, MacOS et peut être utilisé avec n'importe quelle plate-forme cloud majeure avec un niveau modéré de connaissances techniques.

Ce guide montre comment utiliser Terraform avec la plate-forme Google Cloud. Ce guide suppose que l'utilisateur dispose d'un compte sur la plate-forme Google Cloud et qu'il est prêt à l'emploi, sinon il est possible de créer facilement un compte d'essai gratuit pendant un an. Cependant, Google Cloud nécessite la soumission d'un numéro de carte de crédit valide pour accéder à sa console ; donc assurez-vous qu'il est traité avant de continuer.

Exigences et conditions

La plate-forme Google Cloud se compose d'un grand nombre de services ; il est donc difficile de tous les couvrir dans un seul guide et, par conséquent, ce guide ne couvre que la section des instances de VM Google. Il montre comment installer un serveur Web Nginx dans une instance de machine virtuelle Ubuntu dans l'infrastructure Google Cloud.

Étant donné que le guide concerne Terraform, il doit évidemment être installé dans le système. De plus, une clé SSH doit être générée pour accéder à l'instance de VM.

Comment installer Terraform sur Ubuntu

Terraform peut être installé de deux manières différentes. La première méthode est la méthode manuelle, qui oblige l'utilisateur à le télécharger et à l'installer dans le système, l'alternative et la méthode la plus recommandée est la méthode automatisée, qui télécharge et installe le terraform dans le système avec quelques lignes de code. Suivez les commandes suivantes pour y arriver.

  1. Installez le package de décompression dans le système pour extraire le package terraform une fois qu'il est téléchargé.
sudo apt-get install décompresser
  1. Téléchargez et installez terraform à partir du lien donné. Notez qu'au moment où l'article est écrit la dernière version de terraform est 0.11.dix. À l'avenir, la version pourrait être différente. Alors faites toujours attention à leur site officiel pour obtenir des informations sur le dernier package terraform.
wget https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.Zip *: français
  1. Extraire le terraform dans le répertoire actuellement actif. Par défaut, c'est le répertoire Home dans Ubuntu.
décompresser terraform_0.11.10_linux_amd64.Zip *: français
  1. Déplacez le terraform dans le dossier binaire. Terraform n'a pas de fichier d'installation ; par conséquent, son fichier binaire doit être placé manuellement dans le fichier bin.
sudo mv terraform /usr/local/bin/
  1. Utilisez la commande suivante pour accéder à terraform à partir de la ligne de commande sans spécifier son répertoire.
terraforme --version

Comment générer votre propre clé SSH

Après avoir installé terraform, la prochaine étape importante consiste à générer votre propre paire de clés publiques/privées SSH pour communiquer avec l'instance de VM qui est sur le point d'être créée. La paire de clés SSH offre une sécurité renforcée par rapport à l'authentification traditionnelle par mot de passe/nom d'utilisateur ; donc suivre cette option est fortement recommandé même si ce n'est pas obligatoire.

1. Sur le shell Ubuntu, tapez la commande suivante pour générer la paire de clés SSH.

ssh-keygen

2. Au départ, il demande un nom pour la paire de clés, puis la phrase secrète pour la clé ssh. La clé publique est créée comme .pub, alors que la clé privée est créée en tant que . Les deux clés sont créées dans le répertoire actuellement actif. Conservez la clé privée en lieu sûr dans un emplacement sécurisé, car il est important d'accéder à l'instance de VM.

Configurer Google Cloud avec Terraform

Une fois les deux segments susmentionnés terminés, allez-y et créez un compte d'essai gratuit dans Google Cloud. Étant donné que la création d'un compte est un processus simple, il n'est pas décrit ici. Après avoir accédé à la console Google Cloud, suivez les étapes suivantes pour configurer Google Cloud avec terraform.

  1. Accédez à l'URL suivante.
    https://console.nuage.Google.com
  1. Cliquez sur le bouton « Mes projets » dans le coin supérieur gauche de la console.
  2. Créez un nouveau projet ou utilisez un projet existant pour ce guide. La finalité du « projet » est de regrouper différents services dans le Google Cloud. Le projet est le nœud le plus élevé de cette hiérarchie de services, et le reste des services passe en dessous. Un service créé sous un projet n'est pas accessible depuis un autre projet. Une fois le projet créé, copiez et conservez son ID dans un endroit sûr. Dans la capture d'écran suivante, l'ID du projet est somme-charismatique-202020, et il peut en être un différent dans votre console cloud. 
  3. Accédez à l'URL Web suivante pour télécharger le fichier d'informations d'identification au format JSON afin d'authentifier l'utilisateur lors de la connexion à la plate-forme Google Cloud. Il s'agit du compte administrateur ; assurez-vous donc que ce fichier d'informations d'identification est en sécurité dans un emplacement sécurisé. https://console.nuage.Google.com/apis/credentials/serviceaccountkey 
  4. Créer un fichier et le renommer en main.tf. Ce fichier est le fichier de configuration de terraform, puis utilisez le bloc de code suivant comme premières lignes de code. Le nom du fournisseur sert à indiquer le fournisseur avec lequel se connecter. Terraform prend en charge un grand nombre de plates-formes cloud ; par conséquent, le nom de la plate-forme cloud doit être explicitement indiqué. Ici, c'est Google, ce qui signifie qu'il se connecte à la plateforme cloud de Google. Outre l'en-tête, il y a 3 attributs dans le bloc, l'attribut « identifiants » sert à spécifier le nom du fichier d'identifiants téléchargé ci-dessus, le nom du projet est l'emplacement dans Google Cloud où l'instance de VM est créée. L'identifiant créé à l'étape 3 est utilisé comme nom de projet ici. La région est l'emplacement géographique où l'instance de VM est créée. Il y a plusieurs régions. Utilisez ce lien pour vous référer à toutes les régions disponibles. https://cloud.Google.com/appengine/docs/locations fournisseur "google"
    informations d'identification = "$file("CREDENTIALS_FILE.json")"
    projet     = "PROJECT_NAME"
    région      = "REGION_NAME"

  1. Utilisez la commande suivante pour installer les plugins pour terraform. La commande suivante scanne automatiquement le fichier de configuration terraform et identifie les plugins à installer, en plus elle télécharge également les informations du fournisseur pour terraform. Ce guide utilise la plate-forme Google Cloud ; par conséquent, il télécharge les informations du fournisseur Google Cloud Terraform. La commande identifie le fournisseur à partir du nom indiqué au mot-clé « provider » dans le fichier de configuration terraform. terraform init
  1. Utilisez les deux blocs de code suivants pour définir plus d'informations pour l'instance de VM. Dès le début, il utilise le plugin d'identification aléatoire pour générer un nombre aléatoire à 8 chiffres, puis attribue ce nombre à la variable instance_id pour l'utiliser comme préfixe pour le nom de l'instance de VM. Dans le deuxième bloc de code, il crée une instance de VM avec le nom « nucuta-vm-. Le type de machine est le package de serveur utilisé pour héberger l'instance de VM. Reportez-vous à cette URL Web pour trouver les types de machines disponibles. https://cloud.Google.com/compute/docs/machine-types. La zone est l'emplacement exact de la région. Il y a principalement 3 zones disponibles dans chaque région, a, b, c. Chaque zone a sa propre configuration matérielle/logicielle. Utilisez cette URL Web pour faire référence à toutes les zones disponibles et à leur configuration matérielle. https://cloud.Google.com/compute/docs/regions-zones/ ressource "random_id" "instance_id"
    longueur_octet = 8

    ressource "google_compute_instance" "nucuta"
    nom = "nucuta-vm-$random_id.instance_id.hex"
    machine_type = "f1-micro"
    zone = "asie-sud1-a"
  1. Utilisez le bloc de code suivant à l'intérieur du bloc de code "google_compute_instance". Il spécifie le système d'exploitation à utiliser. Utilisez cette URL Web pour trouver tous les systèmes d'exploitation disponibles pour la plate-forme Google Cloud. https://cloud.Google.com/compute/docs/images. Il dit image, car les systèmes d'exploitation sont stockés sous forme de fichiers « image ». Lorsque le fichier de configuration terraform est en cours d'exécution, le fichier image est extrait et son système d'exploitation est installé dans l'instance de VM comme sur un ordinateur ordinaire. L'attribut image est dans ce format, projet d'image/famille d'images. disque de démarrage système
    initialize_params
    image = "ubuntu-os-cloud/ubuntu-1604-lts"

  1. Utilisez le code suivant dans le bloc de code "google_compute_instance". Il spécifie le script de démarrage à exécuter sur l'instance de VM nouvellement créée. Ce script est exécuté dès la création de l'instance de VM. Dans l'exemple suivant, il met à jour le référentiel d'informations sur les packages locaux avec les dernières informations, puis il met à jour tous les packages avec dist-upgrade, puis il installe le package nginx. Assurez-vous d'utiliser l'indicateur -y pour rendre le processus non interactif, ce qui signifie qu'il s'exécute et exécute automatiquement le processus sans nécessiter l'intervention de l'utilisateur. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade ;
    sudo apt-get -y install nginx"
  1. Utilisez le bloc de code suivant dans le bloc de code "google_compute_instance". Le bloc de code suivant spécifie l'interface réseau, qui est utilisée pour connecter l'instance de VM actuelle avec d'autres instances de VM, appareils et réseaux. Le bloc Access_config est utilisé pour allouer à l'instance de VM une adresse IP externe pour y accéder depuis Internet. interface réseau
    réseau = "par défaut"
    access_config

  1. Enfin, utilisez le bloc de code suivant dans le bloc de code "google_compute_instance". Il spécifie le nom d'utilisateur et la clé SSH publique. Assurez-vous que la clé SSH publique générée est dans le même dossier que le fichier de configuration terraform. Le nom d'utilisateur doit être le nom du compte à partir duquel la clé SSH a été créée, par exemple si le nom du compte est root, alors son nom d'utilisateur est root. métadonnées
    sshKeys = "dilanga:$file("dilanga.pub")"

  1. Le bloc de code final devrait ressembler à ceci 
  2. Utilisez le bloc de code suivant dehors du bloc de code "google_compute_instance". Par défaut, l'instance de VM bloque tout le trafic entrant et sortant. Étant donné que ce guide crée un serveur Web, les ports 80 et 443 doivent être ouverts pour permettre aux utilisateurs d'y accéder via Internet. Dès le début, l'attribut name crée un profil dans le pare-feu de calcul google pour cette règle, l'attribut network spécifie à quelle interface réseau la règle s'applique, le bloc allow autorise les protocoles et ses ports spécifiés sous celui-ci. Le protocole Icmp est utilisé pour envoyer une requête ping au serveur Web afin de s'assurer qu'il est accessible au public. Le ping est souvent utilisé par de nombreux services pour connaître la disponibilité d'un site Web. ressource "google_compute_firewall" "default"
    nom    = "nginx-firewall"
    réseau = "par défaut"
     
    Autoriser
    protocole = "tcp"
    ports    = ["80","443"]

     
    Autoriser
    protocole = "icmp"

  3. Utilisez le bloc de code suivant dehors de "google_compute_instance" pour imprimer l'adresse IP publique de l'instance de VM actuelle. sortie "ip"
    value = "$google_compute_instance.nucuta.interface réseau.0.access_config.0.nat_ip"
  4. Utilisez la commande suivante pour vérifier le fichier de configuration et le fichier d'informations d'identification. Il prévisualise également à quoi ressemble le résultat final une fois le fichier de configuration exécuté. plan de terraforme
  5. puis utilisez la commande suivante pour exécuter le fichier de configuration. terraform appliquer
  6. Utilisez maintenant l'adresse IP publique sur n'importe quel navigateur Web pour accéder au serveur Web de l'instance de VM.
  7. Utilisez la commande suivante pour accéder à l'instance de VM via SSH afin de gérer le serveur. Assurez-vous que la clé privée se trouve dans le répertoire actuel ou spécifiez le chemin d'accès à la clé privée.
  8. ssh -je @

    Conclusion

    Cela devrait vous suffire pour commencer.  Le fichier de configuration complet, main.tf, est montré ci-dessous. Les textes surlignés peuvent être modifiés en fonction des besoins de l'utilisateur.

    fournisseur "google"
    informations d'identification = "$file("dilannga_credentials.json")"
    projet     = "somme-charismatique-202020"
    région      = "asie-sud1"

     
    ressource "random_id" "instance_id"
    longueur_octet = 8

     
    ressource "google_compute_instance" "nucuta"
    nom         = "nucuta-vm-$random_id.instance_id.hex"
    machine_type = "f1-micro"
    zone         = "asie-sud1-a"
     
    disque de démarrage système
    initialize_params
    image = "ubuntu-os-cloud/ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade ;
    sudo apt-get -y install nginx"
     
    interface réseau
    réseau = "par défaut"
     
    access_config
     


     
    métadonnées
    sshKeys = "dilanga:$file("dilanga.pub")"


     
    ressource "google_compute_firewall" "default"
    nom    = "nginx-firewall"
    réseau = "par défaut"
     
    Autoriser
    protocole = "tcp"
    ports    = ["80","443"]

     
    Autoriser
    protocole = "icmp"


     
    sortie "ip"
    value = "$google_compute_instance.nucuta.interface réseau.0.access_config.0.nat_ip"
Comment modifier les paramètres de la souris et du pavé tactile à l'aide de Xinput sous Linux
La plupart des distributions Linux sont livrées avec la bibliothèque "libinput" par défaut pour gérer les événements d'entrée sur un système. Il peut ...
Remappez les boutons de votre souris différemment pour différents logiciels avec X-Mouse Button Control
Peut-être que vous avez besoin d'un outil qui pourrait faire changer le contrôle de votre souris avec chaque application que vous utilisez. Si tel est...
Examen de la souris sans fil Microsoft Sculpt Touch
J'ai lu récemment sur le Microsoft Sculpt Touch souris sans fil et j'ai décidé de l'acheter. Après l'avoir utilisé pendant un certain temps, j'ai déci...