commit
566a8a1e26
@ -0,0 +1,8 @@ |
|||||||
|
from flask import Flask |
||||||
|
app = Flask(__name__) |
||||||
|
|
||||||
|
@app.route('/') |
||||||
|
def hello_cloud(): |
||||||
|
return 'Hello Cloud!' |
||||||
|
|
||||||
|
app.run(host='0.0.0.0') |
@ -0,0 +1,64 @@ |
|||||||
|
## TERRAFORM |
||||||
|
terraform { |
||||||
|
required_version = ">= 0.12" |
||||||
|
} |
||||||
|
|
||||||
|
## PROVIDER |
||||||
|
provider "google" { |
||||||
|
project = var.gcp_project |
||||||
|
credentials = file(var.gcp_auth_file) |
||||||
|
region = var.gcp_region |
||||||
|
} |
||||||
|
|
||||||
|
## NETWORK |
||||||
|
resource "google_compute_network" "vpc_network" { |
||||||
|
name = "my-custom-network" |
||||||
|
auto_create_subnetworks = false |
||||||
|
mtu = 1460 |
||||||
|
} |
||||||
|
|
||||||
|
resource "google_compute_subnetwork" "default" { |
||||||
|
name = "my-custom-subnet" |
||||||
|
ip_cidr_range = "10.0.1.0/24" |
||||||
|
region = var.gcp_region |
||||||
|
network = google_compute_network.vpc_network.id |
||||||
|
} |
||||||
|
|
||||||
|
# VM |
||||||
|
resource "google_compute_instance" "default" { |
||||||
|
name = "flask-vm" |
||||||
|
machine_type = "e2-micro" |
||||||
|
zone = "europe-west9-a" |
||||||
|
tags = ["ssh"] |
||||||
|
|
||||||
|
boot_disk { |
||||||
|
initialize_params { |
||||||
|
image = "debian-cloud/debian-11" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
## INSTALL FLASK |
||||||
|
metadata_startup_script = "sudo apt-get update; sudo apt-get install -yq build-essential python3-pip rsync; pip install flask" |
||||||
|
|
||||||
|
network_interface { |
||||||
|
subnetwork = google_compute_subnetwork.default.id |
||||||
|
|
||||||
|
access_config { |
||||||
|
# Include this section to give the VM an external IP address |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
## SSH |
||||||
|
resource "google_compute_firewall" "ssh" { |
||||||
|
name = "allow-ssh" |
||||||
|
allow { |
||||||
|
ports = ["22"] |
||||||
|
protocol = "tcp" |
||||||
|
} |
||||||
|
direction = "INGRESS" |
||||||
|
network = google_compute_network.vpc_network.id |
||||||
|
priority = 1000 |
||||||
|
source_ranges = ["0.0.0.0/0"] |
||||||
|
target_tags = ["ssh"] |
||||||
|
} |
@ -0,0 +1,4 @@ |
|||||||
|
# GCP Settings |
||||||
|
gcp_project = "terraform-demo-381114" |
||||||
|
gcp_region = "europe-west9" |
||||||
|
gcp_auth_file = "./auth/terraform-demo-381114-158cfce10778.json" |
@ -0,0 +1,17 @@ |
|||||||
|
# GCP authentication file |
||||||
|
variable "gcp_auth_file" { |
||||||
|
type = string |
||||||
|
description = "GCP authentication file" |
||||||
|
} |
||||||
|
|
||||||
|
# define GCP region |
||||||
|
variable "gcp_region" { |
||||||
|
type = string |
||||||
|
description = "GCP region" |
||||||
|
} |
||||||
|
|
||||||
|
# define GCP project name |
||||||
|
variable "gcp_project" { |
||||||
|
type = string |
||||||
|
description = "GCP project name" |
||||||
|
} |
Loading…
Reference in new issue