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 thescripts
directory.
Name | Version |
---|---|
consul | 2.15.1 |
random | 3.3.1 |
vault | 3.6.0 |
vsphere | 2.1.1 |
Name | Version |
---|---|
cloudinit | 2.2.0 |
consul | 2.15.1 |
random | 3.3.1 |
template | 2.2.0 |
vault | 3.6.0 |
Name | Source | Version |
---|---|---|
vsphere-vm-mk4 | ./modules/vsphere-vm-mk4 | n/a |
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 |
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
}))
Name | Description |
---|---|
vm_output | n/a |