Added hosts as modules

This commit is contained in:
Gal Szkolnik 2023-08-01 06:47:20 +00:00
parent 111b454307
commit fcab4a6b95
4 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,41 @@
variable "username" {
type = string
description = "VMs admin username"
}
variable "ssh_public_key" {
type = string
description = "SSH public signature's of the admin"
}
variable "machine_type" {
type = string
description = "Machine type/size"
default = "Standard_B1s" # Defaulting to the 750 free hours tier machine.
}
variable "host_name" {
type = string
description = "Name of VM instance"
}
variable "resource_group_name" {
type = string
description = "Azure resource group name"
}
variable "location" {
type = string
description = "location of resource"
default = "eastus"
}
variable "local_network_cidr" {
type = string
description = "CIDR Range of the local virtual network"
}
variable "local_subnet_cidr" {
type = string
description = "CIDR Range of the local subnet, usually contained within the local_network_cidr"
}

View File

@ -0,0 +1,10 @@
output "resources" {
value = {
host = azurerm_linux_virtual_machine.deployed_host
nic = azurerm_network_interface.host_network_interface
net = azurerm_virtual_network.local_network
subnet = azurerm_subnet.local_subnet
pub_ip = azurerm_public_ip.host_public_ip
}
sensitive = false
}

View File

@ -0,0 +1,26 @@
resource "azurerm_linux_virtual_machine" "deployed_host" {
admin_username = var.username
location = var.location
name = var.host_name
resource_group_name = var.resource_group_name
secure_boot_enabled = true
size = var.machine_type
vtpm_enabled = true
admin_ssh_key {
public_key = var.ssh_public_key
username = var.username
}
boot_diagnostics {
}
os_disk {
caching = "ReadWrite"
storage_account_type = "Premium_LRS"
}
source_image_reference {
offer = "0001-com-ubuntu-server-jammy"
publisher = "canonical"
sku = "22_04-lts-gen2"
version = "latest"
}
network_interface_ids = [ azurerm_network_interface.host_network_interface.id ]
}

View File

@ -0,0 +1,34 @@
resource "azurerm_virtual_network" "local_network" {
address_space = [ var.local_network_cidr ]
location = var.location
name = "${var.host_name}-vnet"
resource_group_name = var.resource_group_name
}
resource "azurerm_subnet" "local_subnet" {
address_prefixes = [ var.local_subnet_cidr ]
name = "default"
resource_group_name = var.resource_group_name
virtual_network_name = azurerm_virtual_network.local_network.name
}
resource "azurerm_public_ip" "host_public_ip" {
name = "${var.host_name}-ip"
allocation_method = "Static"
domain_name_label = var.host_name
location = var.location
resource_group_name = var.resource_group_name
sku = "Standard"
}
resource "azurerm_network_interface" "host_network_interface" {
name = "${var.host_name}-nic"
location = var.location
resource_group_name = var.resource_group_name
ip_configuration {
name = "ipconfig1"
private_ip_address_allocation = "Dynamic"
public_ip_address_id = azurerm_public_ip.host_public_ip.id
subnet_id = azurerm_subnet.local_subnet.id
}
}