Using Terraform to Create a New VPC and Public Subnet in GCP

Using Terraform to Create a New VPC and Public Subnet in GCP
Written by Abhishek JalanApril 18, 2020
3 min read
Terraform
5 VIEWS 1 LIKES 0 DISLIKES SHARE
1 LIKES 0 DISLIKES 5 VIEWS SHARE
Abhishek Jalan

Founder of Wikiance, DevOps Engineer

Creating a virtual private network and subnetworks is the foundation of using resources or any infrastructure within GCP

In this hands-on lab, we will learn how to use Terraform to create a VPC and public subnet.

Create a Service Account

  • From Google Cloud console's main navigation, choose IAM & Admin > Service Accounts.
  • Click Create service account.
  • Give your service account a name.
  • Click Create.
  • In the roles dropdown, select Project > Owner.
  • Click Continue and then Done.

Log in to the Host Instance and Ensure Terraform Is Installed

From Google Cloud navigation, choose Compute Engine > VM instances.

Click SSH next to terraform-instance.

Use root privileges:

sudo -i

Change into the root directory:

cd /

Input the path to communicate with Terraform into the /etc/profile file:

echo "PATH='$PATH:/downloads/'" >> /etc/profile

Run the following in order to be able to call Terraform:

source /etc/profile

Call Terraform:

terraform

Create a Service Account Key within the Instance

Allow the SDK to communicate with GCP:

gcloud auth login

Click on the link given, allow the cloud_user email to retrieve the key, and copy and paste the key into your terminal.

Create the service account key:

gcloud iam service-accounts keys create /downloads/instance.json --iam-account <SERVICE_ACCOUNT>

Create and Deploy the Configuration File

Create a main.tf file:

vim main.tf

Paste the following configuration:

provider "google" {
  version = "3.5.0"
  credentials = file("/downloads/instance.json")
  project = ""
  region  = "us-central1"
  zone    = "us-central1-c"
}
resource "google_compute_network" "vpc_network" {
  name = "terraform-network"
}
resource "google_compute_subnetwork" "public-subnetwork" {
  name          = "terraform-subnetwork"
  ip_cidr_range = "10.2.0.0/16"
  region        = "us-central1"
  network       = google_compute_network.vpc_network.name
  }

Save and exit the file by pressing Escape followed by :wq.

Use terraform init , terraform validate , terraform plan, and then terraform apply.

GCP
Google
Terraform
vpc
networking
5 VIEWS 1 LIKES 0 DISLIKES SHARE
1 LIKES 0 DISLIKES 5 VIEWS SHARE
Was this blog helpful?
You must be Logged in to comment
Code Block
Abhishek Jalan
Founder of Wikiance, DevOps Engineer
14 Blog Posts
4 Discussion Threads
Trending Categories
37
Software1
DevOps15
Frontend Development4
Backend Development2
Server Administration1
Linux Administration5
Data Center0
Sentry0
Terraform2
Ansible0
Docker3
Penetration Testing0
Kubernetes0
NGINX0
JenkinsX0
Jenkins2
SSL0
Ethical-Hacking1
Python0
NodeJs1
RedHat0
Github0
AngularJs0
Google Cloud Platform (GCP)0
SonarQube0
Amazon Web Service (AWS)0
VMware0
Blockchain0
Snipe-IT1
MongoDB0