- Créer une paire de clé ssh dédiée pour Terraform
```bash
# NOMMER LE CLE TERRAFORM
ssh-keygen -t rsa -b 4096
```
### DASHBOARD GCP
- Créer un projet "terraform-demo"
- Créer un projet "terraform-demo"
- Séletionner le projet créé puis créer un compte de service dans l'onglet [IAM et administration](https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts?hl=fr) de la console GCP
- Séletionner le projet créé puis créer un compte de service dans l'onglet [IAM et administration](https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts?hl=fr) de la console GCP
- 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
- 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/
- Modifier l'id du projet ainsi que le chemin du fichier json contenant la clef dans le fichier variables.tf
### TERRAFORM.TFVARS
- Modifier le fichier terraform.tfvars en fonction de votre environnement
## UTILISATION
## UTILISATION
- Lançer Terraform:
- Lançer Terraform:
```bash
```bash
terraform init
terraform init
```
```
- Lançer Terraform:
- Lançer Terraform:
```bash
```bash
terraform plan
terraform plan
```
```
- Lançer Terraform:
- Lançer Terraform:
```bash
```bash
terraform apply
terraform apply
# Saisir yes quand demandé
# Saisir yes quand demandé
```
```
> L'adresse public de la VM est fournie en output du terraform apply http://public-ip:5000
- Se connecter en SSH à la VM pour créer l'application Flask:
```bash
nano app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_cloud():
return 'Hello Cloud!'
app.run(host='0.0.0.0')
```
- Installer Flask:
```bash
python3 -m pip install flask
```
- Lançer l'application:
```bash
python3 app.py
```
> Visiter l'adresse fournie en output du terraform apply
> Visiter l'adresse fournie en output du terraform apply