windows-vm
claranet/windows-vm/azurerm
Terraform module composition (feature) for ARM Windows Virtual Machine (VM)
Azure Windows Virtual Machine     This module creates a Windows Virtual Machine with Windows Remote Management (WinRM) activated. The Windows Virtual Machine comes with: Azure Monitor Agent activated and configured A link to an Azure Monitor Data Collection Rule for logging An optional link to a Load Balancer or Application Gateway A link to the Recovery Vault and one of its policies to back up the Virtual Machine Optional certificates retrieved from Azure Key Vault This code is mostly based on Tom Harvey work: https://github.com/terraform-providers/terraform-provider-azurerm/tree/master/examples/virtual-machines/provisioners/windows F
| Name | Type | Description | Default |
|---|---|---|---|
| vm_size | string | Size (SKU) of the Virtual Machine to create. | required |
| environment | string | Project environment. | required |
| subnet | object({ id = string }) | ID of the Subnet in which to create the Virtual Machine. | required |
| stack | string | Project stack name. | required |
| admin_password | string | Password for the Virtual Machine administrator account. | required |
| azure_monitor_data_collection_rule | object({ id = string }) | Data Collection Rule ID from Azure Monitor for metrics and logs collection. Used | required |
| backup_policy | object({ id | Backup policy parameters from the Recovery Vault to attach the Virtual Machine t | required |
| client_name | string | Client name/account used in naming. | required |
| diagnostics_storage_account_name | string | Name of the Storage Account in which boot diagnostics are stored. | required |
| key_vault | object({ id = string }) | ID of the Key Vault to use for Virtual Machine certificate (value to `null` to d | required |
| nic_extra_tags | map(string) | Extra tags to set on the network interface. | {} |
| availability_set | object({ id = string }) | ID of the Availability Set in which to locate the Virtual Machine. | null |
| key_vault_certificates | object({ names = op | Key Vault certificates object. ``` names = List of Key Vault certificates | {} |
| certificate_validity_in_months | number | The created certificate validity in months. | 48 |
| zone_id | number | Index of the Availability Zone which the Virtual Machine should be allocated in. | null |
| disk_controller_type | string | Specifies the Disk Controller Type used for this Virtual Machine. Possible value | null |
| spot_instance_max_bid_price | number | The maximum price you're willing to pay for this Virtual Machine in US dollars; | -1 |
| entra_login_extension_version | string | Virtual Machine extension version for Entra ID (aka AAD) login extension. | "1.0" |
| nic_accelerated_networking_enabled | bool | Should accelerated networking be enabled? Defaults to `true`. | true |
| patching_reboot_setting | string | Specifies the reboot setting for platform scheduled patching. Possible values ar | "IfRequired" |
| public_ip_extra_tags | map(string) | Extra tags to set on the Public IP. | {} |
| os_disk_tagging_enabled | bool | Should OS disk tagging be enabled? Defaults to `true`. | true |
| spot_instance_eviction_policy | string | Specifies what should happen when the Virtual Machine is evicted for price reaso | "Deallocate" |
| storage_data_disk_config | map(object({ name | Map of objects to configure storage data disk(s). | {} |
| hotpatching_enabled | bool | Should the Virtual Machine be patched without requiring a reboot? | false |
| static_private_ip | string | Static private IP address. Dynamic addressing if not set. | null |
| entra_login_enabled | bool | Enable login with Entra ID (aka AAD). | false |
| entra_login_admin_objects_ids | list(string) | Entra ID (aka AAD) objects IDs allowed to connect as administrator on the Virtua | [] |
| azure_monitor_agent_auto_upgrade_enabled | bool | Automatically update agent when publisher releases a new version of the agent. | false |
| public_ip_custom_name | string | Custom name for the Public IP. Generated if not set. | null |
| … and 10 more inputs | |||
public_domain_name_label — Public domain name of the Virtual Machine.winrm_key_vault_certificate_data — RAW Key Vault certificate data represented as a hexadecimal string.resource_maintenance_configuration_assignment — Maintenance configuration assignment resource object.admin_password — Administrator password of the Virtual Machine.public_ip_id — Public IP ID of the Virtual Machine.public_ip_name — Public IP name of the Virtual Machine.nic_id — ID of the network interface attached to the Virtual Machine.terraform_module — Information about this Terraform module.resource_network_interface — Network interface resource object.resource_key_vault_certificate — WinRM Key Vault certificate resource object.id — ID of the Virtual Machine.name — Name of the Virtual Machine.nic_name — Name of the network interface attached to the Virtual Machine.nic_ip_configuration_name — Name of the IP configuration for the network interface attached to the Virtual Machine.private_ip_address — Private IP address of the Virtual Machine.resource — Windows Virtual Machine resource object.resource_public_ip — Public IP resource object.admin_username — Administrator username of the Virtual Machine.public_ip_address — Public IP address of the Virtual Machine.winrm_key_vault_certificate_id — ID of the generated WinRM Key Vault certificate.winrm_key_vault_certificate_name — Name of the generated WinRM Key Vault certificate.winrm_key_vault_certificate_thumbprint — X509 thumbprint of the Key Vault certificate represented as a hexadecimal string.hostname — Hostname of the Virtual Machine.identity_principal_id — Object ID of the Virtual Machine Managed Service Identity.Azure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,