1+ vSphere ESXi node that is managed by the above vCenter instance
1 VirtuallyGhetto Nested ESXi 6.5 or 6.7 OVA file deployed as a VM on the above ESXi node
This VM will be used as a VM template by Terraform for deploying the nested ESXi nodes.
Windows PowerShell or PowerShell Core for running the Enable-VmVappProperties.ps1 script in the root of the project, which will set all VM vApp properties on the template VM to user configurable, which is a requirement in Terraform v0.11.7 and earlier.
Copy all terraform.tfvars.example files in the project to terraform.tfvars files
Note: Terraform tfvars files tend to contain sensitive information, and should not be checked into source control, which is why there is an entry for this in the .gitignore file.
Update all values in each tfvars file per your environment.
Init, Plan, Apply, & Destroy
terragrunt init: This will initialize your environment, including: download all terraform modules necessary, create the S3 bucket for storing remote state, create the DynamoDB table for lock management.
terragrunt plan: This will analyze the state of your environment, and list what components need to be deployed, modified, and/or destroyed.
terragrunt apply: If approved, this will deploy the environment per your specifications.
terragrunt destroy: If approved, this will tear down the environment when you're done.