Skip to content

tomarv2/terraform-google-vm

Repository files navigation

Terraform module to create Google Virtual Machine

Versions

  • Module tested for Terraform 1.0.1.
  • GCP provider version 4.11.0.
  • main branch: Provider versions not pinned to keep up with Terraform releases.
  • tags releases: Tags are pinned with versions (use ).

Usage

Option 1:

terrafrom init
terraform plan -var='teamid=tryme' -var='prjid=project1'
terraform apply -var='teamid=tryme' -var='prjid=project1'
terraform destroy -var='teamid=tryme' -var='prjid=project1'

Note: With this option please take care of remote state storage

Option 2:

Recommended method (stores remote state in S3 using prjid and teamid to create directory structure):

  • Create python 3.8+ virtual environment
python3 -m venv <venv name>
  • Install package:
pip install tfremote --upgrade
  • Set below environment variables:
export TF_GCLOUD_BUCKET=<remote state bucket name>
export TF_GCLOUD_PREFIX=<remote state bucket prefix>
export TF_GCLOUD_CREDENTIALS=<gcp credentials.json>
  • Updated examples directory with required values.

  • Run and verify the output before deploying:

tf -c=gcloud plan -var='teamid=foo' -var='prjid=bar'
  • Run below to deploy:
tf -c=gcloud apply -var='teamid=foo' -var='prjid=bar'
  • Run below to destroy:
tf -c=gcloud destroy -var='teamid=foo' -var='prjid=bar'

NOTE:


Virtual Machine

module "vm" {
  source = "git::git@github.com:tomarv2/terraform-google-vm.git"

  user_data_file_path = "user_data.sh"
  # --------------------------------------------------
  # Do not change the teamid, prjid once set.
  teamid = var.teamid
  prjid  = var.prjid
}

Please refer to examples directory link for references.

About

Terraform module for GCP Virtual Machine

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •