resource "azurerm_virtual_machine" "jumphost" { name = "wvm-${local.basename}" location = azurerm_resource_group.default.location resource_group_name = azurerm_resource_group.default.name network_interface_ids = [azurerm_network_interface.jumphost_nic.id] vm_size = "Standard_DS3_v2" delete_os_disk_on_termination = true delete_data_disks_on_termination = true storage_image_reference { publisher = "microsoft-dsvm" offer = "dsvm-win-2019" sku = "server-2019" version = "latest" } os_profile { computer_name = "jumphost" admin_username = var.jumphost_username admin_password = var.jumphost_password } os_profile_windows_config { provision_vm_agent = true enable_automatic_upgrades = true } identity { type = "SystemAssigned" } storage_os_disk { name = "disk-${local.basename}" caching = "ReadWrite" create_option = "FromImage" managed_disk_type = "StandardSSD_LRS" } } resource "azurerm_network_interface" "jumphost_nic" { name = "nic-${local.basename}" location = azurerm_resource_group.default.location resource_group_name = azurerm_resource_group.default.name ip_configuration { name = "configuration" private_ip_address_allocation = "Dynamic" subnet_id = azurerm_subnet.default.id } } resource "azurerm_network_security_group" "jumphost_nsg" { name = "nsg-${local.basename}" location = azurerm_resource_group.default.location resource_group_name = azurerm_resource_group.default.name security_rule { name = "RDP" priority = 1010 direction = "Inbound" access = "Allow" protocol = "Tcp" source_port_range = "*" destination_port_range = 3389 source_address_prefix = "*" destination_address_prefix = "*" } } resource "azurerm_network_interface_security_group_association" "syn_jumphost_nsg_association" { network_interface_id = azurerm_network_interface.jumphost_nic.id network_security_group_id = azurerm_network_security_group.jumphost_nsg.id } resource "azurerm_dev_test_global_vm_shutdown_schedule" "syn_jumphost_schedule" { virtual_machine_id = azurerm_virtual_machine.jumphost.id location = azurerm_resource_group.default.location enabled = true daily_recurrence_time = "2000" timezone = "W. Europe Standard Time" notification_settings { enabled = false } }