Que couvrirons-nous?
Dans ce guide, nous verrons comment nous pouvons provisionner une instance AWS RDS DB en utilisant Terraform. Laissez-nous d'abord par l'installation de Terraform sur Ubuntu 20.04.
Installation de Terraform
Hashicorp fournit le package Terraform officiel pour Ubuntu / Debian, Centos / Rhel, Fedora et Amazon Linux. À côté de cela, il maintient également le binaire pré-compilé et peut également être compilé à partir de la source. Pour ce guide, nous utilisons le package par défaut fourni par le référentiel du package Debian pour installer Terraform sur Ubuntu 20.04.
Étape 1. Première installation gnupg, Software-Properties-Common et Curl Packages pour vérifier la signature GPG de Hashicorp et installer le référentiel requis:
$ sudo apt-get update && sudo apt-get install -y gnupg logiciel-properties-commun curl
Étape 2. Ajoutez maintenant le Hashicorp gpg clé en utilisant la commande:
$ curl -fssl https: // apt.sorties.hashicorp.com / gpg | sudo apt-key ajouter -
Étape 3. Continuez en ajoutant le référentiel requis:
$ sudo apt-add-repository "deb [arch = amd64] https: // apt.sorties.hashicorp.com $ (lsb_release -cs) Main "
Étape 4. Enfin, exécutez la commande de mise à jour pour ajouter le référentiel et installer Terraform:
$ sudo apt-get update && sudo apt-get install terraform
Étape 5. Vérifiez si Terraform est installé en exécutant la commande:
$ Terraform - Version
Construire une infrastructure AWS RDS utilisant Terraform
Maintenant que nous avons installé Terraform sur notre machine locale, nous pouvons continuer notre tâche de travailler avec AWS. Comme mentionné précédemment, Terraform utilise plusieurs fichiers de configuration pour les ressources de provision et chacun de ces fichiers doit être placé dans leur dossier de travail / répertoire respectif. Créons un répertoire à cet effet:
Étape 1. Créez un dossier pour contenir vos fichiers de configuration et modifier le répertoire dans ce dossier:
$ Mkdir Linuxhint-Terraform && CD Linuxhint-Terraform
Étape 2. Faire un 'principal.TF«Fichier qui contiendra la définition de notre infrastructure:
$ nano main.TF
Maintenant, mettez la configuration suivante à l'intérieur:
Terraform
requis_providers
aws =
source = "hashicorp / aws"
version = "~> 3.27 "
required_version = "> = 0.14.9 "
fournisseur "aws"
région = "US-West-2"
Access_key = "Your-Access-Key"
Secret_key = "Votre secret-Key"
ressource "aws_db_instance" "rds_instance"
alloué_storage = 20
identifier = "rds-tterraform"
Storage_type = "GP2"
moteur = "mysql"
moteur_version = "8.0.27 "
instance_class = "db.T2.micro "
name = "votre nom-db"
username = "Votre-Db-username"
mot de passe = "votre mot de passe"
publicly_accessible = true
skip_final_snapshot = true
tags =
Name = "examplerDSserveRinstance"
Ce fichier contient toute la configuration à déployer à l'aide de Terraform, remplacez simplement le texte en gras par vos propres détails de configuration. Explorons chacune des sections utilisées dans le fichier ci-dessus:
1. Terraform: il définit les paramètres de terraform. Les «fournisseurs requis» définissent le fournisseur à utiliser avec la terraform et la «source» est un paramètre facultatif pour le nom d'hôte, un espace de noms et le type de fournisseur. Dans le code ci-dessus, la source est définie comme «Hashicorp / AWS» qui, comme tous les fournisseurs, est installée à partir du registre Terraform. Le fournisseur ci-dessus pointe vers 'enregistrement.terraform.io / hashicorp / aws '.
L'attribut de version définit la version du fournisseur que vous souhaitez utiliser.
2. Fournisseur: Cela spécifie la plate-forme cloud avec laquelle vous allez interagir (AWS, Azure, GCP, etc.). Cela contrôle également la région que vous déployez vos ressources et les informations d'identification de sécurité pour votre utilisateur.
3. Ressource: il comprend des composants qui construisent une infrastructure comme les bases de données, le stockage, le réseau, etc. La première chaîne, ici "aws_instance«, Définit le type de ressource et le second définit un nom personnalisé que vous souhaitez utiliser. Ces deux sont combinés pour former un ID unique pour cette ressource, ici c'est 'aws_instance.Rds_instance'. De la même manière, nous pouvons également inclure des tailles de machine, des noms d'images disque ou des ID VPC.
Pour valider ou vérifier votre configuration, utilisez la commande:
$ Terraform Valider
Initialisation du répertoire Terraform
Pour télécharger et installer le fournisseur que nous avons défini dans notre configuration et autres fichiers, nous devons initialiser le répertoire contenant ce fichier:
$ Terraform init
De l'image ci-dessus, notre init La commande est réussie et il y a également de nouveaux fichiers créés ici. Il y a aussi une autre commande `` Plan Terraform '', bien qu'il ne soit pas obligatoire de l'utiliser, mais il a des avantages, par exemple.:
Terraform ne mentionne pas cette commande dans sa documentation, car lorsque vous exécutez la commande `` Terraform Apply '', le même plan sera à nouveau présenté.
Construire l'infrastructure
Pour construire notre infrastructure, utilisez la commande:
$ terraform s'applique
Ceci sera d'abord sorti le plan d'exécution décrivant les tâches que Terraform effectuera pour amener l'état de votre infrastructure à celui défini dans votre fichier de configuration. Après cela, il s'arrête et vous demandera de confirmer le plan de continuer. Si tout est défini comme vous le souhaitez, tapez «oui» pour continuer:
Si vous êtes prêt à continuer, tapez «oui».
Il faudra un certain temps pour terminer le processus. Une fois ce processus terminé, le message ci-dessous apparaît:
Sur votre console de gestion AWS, l'instance RDS sera répertoriée:
Détruire les ressources
Lorsque vous avez terminé et que vous n'avez plus besoin des ressources AWS que vous avez créées, vous pouvez simplement les supprimer en utilisant la commande:
$ terraform détruire
Conclusion
Dans ce guide, nous avons appris à provisionner une instance RDS sur AWS en utilisant Terraform. Vous pouvez également essayer de configurer une instance EC2 de la même manière.