Skip to content

jlambert229/terraform-vsphere-deploy

Repository files navigation

Readme

GitHub release (latest by date) GitHub GitHub last commit terraform-logo-badge vmware-logo-badge

This project uses terraform to complete the following tasks.

  • Create a random pet name for the vsphere deployment.
  • Pulls variable values and secrets from Consul and Vault.
  • Deploys a vsphere virtual machine from an Ubuntu Server 20. template.
  • Configures the new Ubuntu VM with cloud-init:
    • configures IP address and routing information
    • runs shell scripts with cloud-init from the scripts directory.

Requirements

Name Version
consul 2.15.1
random 3.3.1
vault 3.6.0
vsphere 2.1.1

Providers

Name Version
cloudinit 2.2.0
consul 2.15.1
random 3.3.1
template 2.2.0
vault 3.6.0

Modules

Name Source Version
vsphere-vm-mk4 ./modules/vsphere-vm-mk4 n/a

Resources

Name Type
random_pet.server resource
cloudinit_config.user_data data source
consul_keys.consul data source
template_file.metadata data source
vault_generic_secret.vmw data source

Inputs

Name Description Type Default Required
consul_address consul server address. string "http:<ip>:8500" no
vault_address vault server address. string "http:<ip>:8200" no
# vm_deploy_data

map(object({
    vsphere_datastore  = string
    vsphere_network    = string
    vm_num_cpus        = number
    vm_memory          = number
    vm_dhcp            = string
    vm_ipv4_address    = string
    vm_ipv4_netmask    = number
    vm_ipv4_gateway    = string
    vm_dns_server_list = list(string)
    vm_user_data       = string
  }))

Outputs

Name Description
vm_output n/a

About

terraform project to deploy vsphere vms.

Resources

License

Stars

Watchers

Forks

Packages

No packages published