Compare commits

..
5 Commits
Author SHA1 Message Date
gregandev 72232d84a4 maj Dockerfile 2023-03-19 23:58:42 +01:00
gregandev 4b40fcf844 correction README.md + clean up app/deploy.sh 2023-03-19 23:56:29 +01:00
gregandev 820f540bdb correction README.md 2023-03-19 23:43:19 +01:00
gregandev ad84c675f4 correction README.md 2023-03-19 23:39:18 +01:00
gregandev 5aaf23e181 clean up 2023-03-19 23:36:16 +01:00
7 changed files with 43 additions and 54 deletions
+11 -5
View File
@@ -19,7 +19,7 @@ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(l
sudo apt-get update && sudo apt-get install terraform sudo apt-get update && sudo apt-get install terraform
``` ```
- Créer une paire de clé ssh dédiée pour Terraform - Créer une paire de clé ssh dédiée pour Terraform dans ~/.ssh
```bash ```bash
# NOMMER LE CLE TERRAFORM # NOMMER LE CLE TERRAFORM
ssh-keygen -t rsa -b 4096 ssh-keygen -t rsa -b 4096
@@ -41,16 +41,17 @@ ssh-keygen -t rsa -b 4096
### TERRAFORM.TFVARS ### TERRAFORM.TFVARS
- Modifier le fichier terraform.tfvars en fonction de votre environnement - Modifier le fichier terraform.tfvars en fonction de votre environnement (gcp_project_id et gcp_auth_file)
## UTILISATION ## UTILISATION
- Lançer Terraform: - Initialiser Terraform:
```bash ```bash
cd terraform-demo
terraform init terraform init
``` ```
- Lançer Terraform: - Dry run:
```bash ```bash
terraform plan terraform plan
``` ```
@@ -61,4 +62,9 @@ terraform apply
# Saisir yes quand demandé # Saisir yes quand demandé
``` ```
> Visiter l'adresse fournie en output du terraform apply > Visiter l'adresse fournie en output du terraform apply (Web-server-URL = "http://SERVER_IP:5000")
- Stopper Terraform:
```bash
terraform destroy
```
-8
View File
@@ -1,8 +0,0 @@
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_cloud():
return 'Hello Cloud!'
app.run(host='0.0.0.0')
-6
View File
@@ -1,13 +1,7 @@
FROM python:3.8-slim-bullseye FROM python:3.8-slim-bullseye
WORKDIR /python-docker WORKDIR /python-docker
COPY ./requirements.txt requirements.txt COPY ./requirements.txt requirements.txt
RUN python3 -m pip install -r requirements.txt RUN python3 -m pip install -r requirements.txt
COPY ./ . COPY ./ .
EXPOSE 5000 EXPOSE 5000
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"] CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
-3
View File
@@ -4,6 +4,3 @@ sudo apt-get update
sudo apt-get install -yq docker.io sudo apt-get install -yq docker.io
sudo docker build --network=host -t flaskapp . sudo docker build --network=host -t flaskapp .
sudo docker run -d -p 5000:5000 flaskapp:latest sudo docker run -d -p 5000:5000 flaskapp:latest
#python3 -m pip install flask
#python3 app.py >> log.txt 2>&1 &
#nohup python3 -u ./app.py > output.log &
+22 -22
View File
@@ -79,35 +79,35 @@ resource "google_compute_instance" "default" {
### COPY DES FICHIERS ### COPY DES FICHIERS
provisioner "file" { provisioner "file" {
source = "app/" source = "app/"
destination = "./" destination = "./"
connection { connection {
host = google_compute_instance.default.network_interface.0.access_config.0.nat_ip host = google_compute_instance.default.network_interface.0.access_config.0.nat_ip
type = "ssh" type = "ssh"
user = var.gcp_ssh_user user = var.gcp_ssh_user
timeout = "500s" timeout = "500s"
private_key = "${file(var.gcp_ssh_priv_key_file)}" private_key = file(var.gcp_ssh_priv_key_file)
} }
} }
### START DEPLOY.SH ### START DEPLOY.SH
provisioner "remote-exec" { provisioner "remote-exec" {
inline = [ inline = [
"chmod +x ~/deploy.sh", "chmod +x ~/deploy.sh",
"cd ~", "cd ~",
"./deploy.sh" "./deploy.sh"
] ]
connection { connection {
host = google_compute_instance.default.network_interface.0.access_config.0.nat_ip host = google_compute_instance.default.network_interface.0.access_config.0.nat_ip
type = "ssh" type = "ssh"
user = var.gcp_ssh_user user = var.gcp_ssh_user
timeout = "500s" timeout = "500s"
private_key = "${file(var.gcp_ssh_priv_key_file)}" private_key = file(var.gcp_ssh_priv_key_file)
} }
} }
} }
## GET VM PUBLIC IP ## GET VM PUBLIC IP
output "Web-server-URL" { output "Web-server-URL" {
value = join("",["http://",google_compute_instance.default.network_interface.0.access_config.0.nat_ip,":5000"]) value = join("", ["http://", google_compute_instance.default.network_interface.0.access_config.0.nat_ip, ":5000"])
} }
+6 -6
View File
@@ -1,8 +1,8 @@
# GCP Settings # GCP Settings
gcp_project_id = "terraform-demo-381114" # A MODIFIER gcp_project_id = "terraform-demo-381114" # A MODIFIER
gcp_region = "europe-west9" gcp_region = "europe-west9"
gcp_zone = "europe-west9-a" gcp_zone = "europe-west9-a"
gcp_auth_file = "./auth/terraform-demo-381114-158cfce10778.json" # A MODIFIER gcp_auth_file = "./auth/terraform-demo-381114-158cfce10778.json" # A MODIFIER
gcp_ssh_user = "devops" # A MODIFIER OU PAS gcp_ssh_user = "devops" # A MODIFIER OU PAS
gcp_ssh_pub_key_file = "~/.ssh/terraform.pub" gcp_ssh_pub_key_file = "~/.ssh/terraform.pub"
gcp_ssh_priv_key_file = "~/.ssh/terraform" gcp_ssh_priv_key_file = "~/.ssh/terraform"