Expérimentation avec terraform et Google Compute Engine (GCE) pour créer quelques VM jetables avec un compte acloudguru.com
- gcloud (
gcloud --help
) - terraform (
terraform --help
) - Se connecter sur un compte Google Cloud : https://console.cloud.google.com/
- Navigateur :
- Terminal :
gcloud auth application-default login
- Activer Google Storage :
gcloud services enable storage.googleapis.com
- Configurer l'utilisation d'un projet :
export PROJECT_ID=playground-s-11-5dab122a
export TF_VAR_project_id=${PROJECT_ID}
- variables.tf définit les variables terraform.
- provider.tf définit le provider terraform ("google").
- backend.tf.dist permet de générer une configuration pour le stockage de l'état terraform dans un bucket.
- firewall.tf configure des règles de pare-feu.
- manager.tf créé une VM (compute instance) avec une IP publique.
- workers.tf créé plusieurs VM sans IP publique.
- ansible_inventory.tf génère
inventory/hosts
à partir de templates/hosts.tmpl
# Téléchargement des modules terraform
terraform init
terraform plan
# Création de l'infrastructure
terraform apply -auto-approve
# Suppression de l'infrastructure
terraform destroy -auto-approve
# Se connecter
gcloud auth login
# Variantes possibles :
# gcloud auth login --no-launch-browser
# Lister les projets
gcloud projects list
# Configurer l'utilisation d'un projet
gcloud config set project ${PROJECT_ID}
# Lister les VM
gcloud compute instances list
# se connecter en SSH à une machine
gcloud compute ssh --zone "us-west1-a" "worker-01"
# Configurer ~/.ssh/config pour simplifier l'accès SSH avec ansible
gcloud compute config-ssh
gcloud compute config-ssh --remove