This file contains 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 characters
#!/bin/bash | |
# | |
# author: Gary A. Stafford | |
# site: https://programmaticponderings.com | |
# license: MIT License | |
# purpose: Create GCP VM instance and associated resources | |
# usage: sh ./part1_create_vm.sh | |
# Constants - CHANGE ME! | |
readonly PROJECT='ansible-gce-demo' | |
readonly SERVICE_ACCOUNT='ansible@ansible-gce-demo.iam.gserviceaccount.com' | |
readonly ZONE='us-east1-b' | |
# Create GCE VM with disk storage | |
time gcloud compute instances create web-1 \ | |
--project $PROJECT \ | |
--zone $ZONE \ | |
--machine-type n1-standard-1 \ | |
--network default \ | |
--subnet default \ | |
--network-tier PREMIUM \ | |
--maintenance-policy MIGRATE \ | |
--service-account $SERVICE_ACCOUNT \ | |
--scopes https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ | |
--tags apache-http-server \ | |
--image centos-7-v20190116 \ | |
--image-project centos-cloud \ | |
--boot-disk-size 200GB \ | |
--boot-disk-type pd-standard \ | |
--boot-disk-device-name compute-disk | |
# Create firewall rule to allow ingress traffic from port 80 | |
time gcloud compute firewall-rules create default-allow-http \ | |
--project $PROJECT \ | |
--description 'Allow HTTP from anywhere' \ | |
--direction INGRESS \ | |
--priority 1000 \ | |
--network default \ | |
--action ALLOW \ | |
--rules tcp:80 \ | |
--source-ranges 0.0.0.0/0 \ | |
--target-tags apache-http-server |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment