Skip to content

Cours - Outils de la formation


Un dépôt va vous fournir les corrections de TP durant la formation :

https://github.com/e-lie/formation-terraform-unified :

contient aussi ce site internet (tout en un)


Votre poste a été pré-configuré pour que l’utilitaire AWS trouve le fichier de configuration ad hoc.

Terminal window
$ cat ~/.aws/credentials
[default]
aws_access_key_id = <AWS_ACCESS_KEY_ID>
aws_secret_access_key = <AWS_SECRET_ACCESS_KEY>

On peut également utiliser des variables d’environnement pour s’identifier.

Terminal window
$ export AWS_ACCESS_KEY_ID=(your access key id)
$ export AWS_SECRET_ACCESS_KEY=(your secret access key)

Terraform est un outil open source créé par HashiCorp et écrit dans le langage de programmation Go.

Vous pouvez utiliser ce binaire pour déployer une infrastructure à partir de votre ordinateur portable ou d’un serveur de build ou à peu près n’importe quel autre ordinateur, et vous n’avez pas besoin d’exécuter une infrastructure supplémentaire pour y arriver.

En effet, sous le capot, le binaire terraform effectue des appels d’API en votre nom à un ou plusieurs fournisseurs, tels qu’AWS, Azure, Google Cloud, DigitalOcean, OpenStack, etc.

Cela signifie que Terraform peut tirer parti de l’infrastructure que ces fournisseurs utilisent déjà pour leurs serveurs d’API, ainsi que des mécanismes d’authentification que vous utilisez déjà avec ces fournisseurs (par exemple, les clés API que vous possédez déjà pour AWS).

Comment Terraform sait-il quels appels d’API à effectuer ?

La réponse est que vous créez des configurations Terraform, qui sont des fichiers texte qui spécifient l’infrastructure que vous souhaitez créer.

Ces configurations sont le « code » dans « l’infrastructure en tant que code ». Voici un exemple de configuration Terraform :

resource "aws_instance" "example" {
ami = "ami-0fb653ca2d3203ac1"
instance_type = "t2.micro"
}
resource "google_dns_record_set" "a" {
name = "demo.google-example.com"
managed_zone = "example-zone"
type = "A"
ttl = 300
rrdatas = [aws_instance.example.public_ip]
}

Cet extrait demande à Terraform d’effectuer des appels d’API vers AWS pour déployer un serveur, puis d’effectuer des appels d’API vers Google Cloud pour créer une entrée DNS (Domain Name System) pointant vers l’adresse IP du serveur AWS.

Terraform vous permet de déployer des ressources interconnectées sur plusieurs fournisseurs de cloud.

Vous pouvez définir l’ensemble de votre infrastructure (serveurs, bases de données, équilibreurs de charge, topologie du réseau, etc.) dans les fichiers de configuration Terraform et valider ces fichiers dans le contrôle de version.

Vous exécutez ensuite certaines commandes Terraform, telles que terraform apply, pour déployer cette infrastructure.

Le binaire terraform analyse votre code, le traduit en une série d’appels d’API aux fournisseurs de cloud spécifiés dans le code et effectue ces appels d’API aussi efficacement que possible en votre nom.


Démarrer le TP partie 1