Created
April 23, 2024 22:32
-
-
Save FelipeAlafy/448b4d26611ef5a0a7e3b9f64d1870e4 to your computer and use it in GitHub Desktop.
Revisions
-
FelipeAlafy created this gist
Apr 23, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,91 @@ # First Task gcloud config set project PROJECT_ID_CAN_BE_FOUND_ON_YOUR_LAB gcloud config set compute/region REGION gcloud config set compute/zone ZONE gcloud compute instances create nucleus-webserver1 --machine-type=e2-micro #Seccond task - copy and past the following lines into your cloud console to create the startup.sh file which will be the base for your template startup script cat << EOF > startup.sh #! /bin/bash apt-get update apt-get install -y nginx service nginx start sed -i -- 's/nginx/Google Cloud Platform - '"\$HOSTNAME"'/' /var/www/html/index.nginx-debian.html EOF -- Other commands: gcloud compute instance-templates create lb-backend-template \ --region=REGION \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata-from-file startup-script=startup.sh #Creating the pool gcloud compute target-pools create nginx-pool gcloud compute instance-groups managed create lb-backend-group --base-instance-name nginx --template=lb-backend-template --size=2 --target-pool nginx-pool --zone=us-east1-b #Creating a firewall for tcp:80 gcloud compute firewall-rules create www-firewall --allow tcp:80 #Allowing tcp connection through the firewall gcloud compute firewall-rules create permit-tcp-rule-586 \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 --target-pool nginx-pool # Creating an external IPV4 address gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global # Health check for port 80 gcloud compute health-checks create http http-basic-check --port 80 # Forwarding Rule to the nginx-pool gcloud compute forwarding-rules create nginx-lb \ --region REGION \ --ports=80 \ --target-pool nginx-pool # Creating a basic http check gcloud compute http-health-checks create http-basic-check #Defining the ports to http:80 to the mangened group gcloud compute instance-groups managed set-named-ports lb-backend-group --named-ports http:80 #Backend service gcloud compute backend-services add-backend web-backend-service --instance-group=lb-backend-group --instance-group-zone=ZONE --global #URL Map gcloud compute url-maps create web-map-http --default-service web-backend-service #Proxy gcloud compute target-http-proxies create http-lb-proxy --url-map web-map-http #Forwarding rule to the proxy gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80 #Adding the VM Instances to the firewall, it won't load at the browser if you don't do the followings steps, neither count as done gcloud compute instances add-tags NAME_OF_INSTANCE_1 --tags http-server,https-server gcloud compute instances add-tags NAME_OF_INSTANCE_2 --tags http-server,https-server gcloud compute firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tc p:80 --source-ranges=0.0.0.0/0 --target-tags=http-server # OPTIONAL # you can check your instances from the loadbalancer external ip address only http will work, because of the certification need for https http://[EXTERNAL_IP]:80