Simple Terraform demo for GCP to deploy a Flask app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
greglebreton 72232d84a4 maj Dockerfile 1 year ago
app maj Dockerfile 1 year ago
auth maj 1 year ago
docs maj 1 year ago
README.md correction README.md + clean up app/deploy.sh 1 year ago
main.tf correction README.md 1 year ago
terraform.tfvars correction README.md 1 year ago
variables.tf correction README.md 1 year ago

README.md

TERRAFORM / GCP

Demo Terraform déployant une application Flask dans un conteneur Docker sur GCP

PRE REQUIS

PREPARATION

MACHINE LOCALE

  • Installer Terraform:
# LINUX INSTALL
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform
  • Créer une paire de clé ssh dédiée pour Terraform dans ~/.ssh
# NOMMER LE CLE TERRAFORM
ssh-keygen -t rsa -b 4096

DASHBOARD GCP

  • Créer un projet "terraform-demo"
  • Séletionner le projet créé puis créer un compte de service dans l'onglet IAM et administration de la console GCP
  • Ajouter les rôles suivant:
    • Compute admin
    • Compute network admin
    • Service account admin
  • Activer les APIs nécessaires (compute engine API, storage API, cloud billing API)

SERVICES ACCOUNT

  • Créer une clé au sein du compte de service avec les droits sur le compute engine (pour créer les VMs), et télécharger le fichier json contenant la clé pour le mettre dans le dossier auth/

TERRAFORM.TFVARS

  • Modifier le fichier terraform.tfvars en fonction de votre environnement (gcp_project_id et gcp_auth_file)

UTILISATION

  • Initialiser Terraform:
cd terraform-demo
terraform init
  • Dry run:
terraform plan
  • Lançer Terraform:
terraform apply
# Saisir yes quand demandé

Visiter l'adresse fournie en output du terraform apply (Web-server-URL = "http://SERVER_IP:5000")

  • Stopper Terraform:
terraform destroy