2 minutes
GCP et Terraform Chap. 1 - Préparation de l’environnement
Premier article d’une série consacrée à GCP piloté par Terraform.
On commence par une préparation générale de l’environnement.
GCP : Un compte avec 300€ pour s’amuser un peu
Création du compte
Vous pouvez créer un compte Google ou en utiliser un déjà existant.
La page d’accueil de GCP est ici : https://console.cloud.google.com/
gcloud, la CLI de GCP
Pour installer gcloud
, la CLI de Google qui vous permet d’interagir avec votre terminal,
les instructions sont ici.
Autre solution pour ne pas installer ça directement sur votre machine, vous pouvez
utiliser l’image Docker de Google gcloud
:
docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:latest gcloud version
Vous pouvez ensuite simplifier ça en :
alias gcloud="docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:latest gcloud"
Enfin, vous que ce soit en Docker ou avec l’installation classique, vous pouvez utiliser la CLI, à commencer par :
gcloud init
L’init va directement vous renvoyer vers une page Web pour vous authentifier et autoriser la CLI.
Terraform avec le provider GCP
Présentation, installation et configuration de Terraform
Je vous renvoie vers l’article que j’ai dédié à Terraform.
Autorisations
Il faut déjà sélectionner un projet ou créer un nouveau projet dans la console.
Il faut ensuite activer l’API.
Authentification
Pour autoriser les applications tierces à interagir avec les API Google :
gcloud auth application-default login
Organisation
Mon_repo
|- variables.tf
|- providers.tf
|- bucket.tf
|- ...
On va prendre deux habitudes :
- Séparer les ressources dans différents fichiers pour plus de clarté
- Écrire toutes les variables dans un fichier spécifiques (que nous allons appeler
variables.tf
mais peu importe)
Variables
A vous d’indquer les bonnes valeurs de variables
# variables.tf
variable "project_name" {
default = "mon-projet-123456"
type = string
}
variable "region" {
default = "europe-west9"
type = string
}
variable "zone" {
default = "europe-west9-a"
type = string
}
variable "location" {
default = "EUROPE-WEST9"
type = string
}
variable "domain_name" {
default = "mondomaine.fr"
type = string
}
variable "bucket_name" {
default = "sws-bucket"
type = string
}
Le provider GCP
Enfin, le premier fichier concerne le provider GCP :
# provider.tf
provider "google" {
project = var.project_name
region = var.region
zone = var.zone
}