mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-16 01:24:05 -08:00
137 lines
3.6 KiB
Terraform
137 lines
3.6 KiB
Terraform
|
# Network
|
||
|
|
||
|
resource "azurerm_virtual_network" "main" {
|
||
|
name = "${var.prefix}-vnet"
|
||
|
location = var.location
|
||
|
resource_group_name = var.resource_group_name
|
||
|
address_space = ["10.0.0.0/16"]
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|
||
|
|
||
|
resource "azurerm_subnet" "main" {
|
||
|
name = "${var.prefix}-subnet"
|
||
|
resource_group_name = var.resource_group_name
|
||
|
virtual_network_name = azurerm_virtual_network.main.name
|
||
|
address_prefixes = ["10.0.0.0/24"]
|
||
|
}
|
||
|
|
||
|
resource "azurerm_network_security_group" "ssh" {
|
||
|
name = "${var.prefix}-nsg"
|
||
|
location = var.location
|
||
|
resource_group_name = var.resource_group_name
|
||
|
|
||
|
security_rule {
|
||
|
name = "AllowSSH"
|
||
|
priority = 1001
|
||
|
direction = "Inbound"
|
||
|
access = "Allow"
|
||
|
protocol = "Tcp"
|
||
|
source_port_range = "*"
|
||
|
destination_port_range = "22"
|
||
|
source_address_prefix = "*"
|
||
|
destination_address_prefix = "*"
|
||
|
}
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|
||
|
|
||
|
resource "azurerm_public_ip" "main" {
|
||
|
name = "${var.prefix}-pip"
|
||
|
location = var.location
|
||
|
resource_group_name = var.resource_group_name
|
||
|
allocation_method = "Static"
|
||
|
sku = "Standard"
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|
||
|
|
||
|
resource "azurerm_network_interface" "main" {
|
||
|
name = "${var.prefix}-nic"
|
||
|
location = var.location
|
||
|
resource_group_name = var.resource_group_name
|
||
|
|
||
|
ip_configuration {
|
||
|
name = "${var.prefix}-ipconfig"
|
||
|
subnet_id = azurerm_subnet.main.id
|
||
|
private_ip_address_allocation = "Dynamic"
|
||
|
public_ip_address_id = azurerm_public_ip.main.id
|
||
|
}
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|
||
|
|
||
|
resource "azurerm_network_interface_security_group_association" "ssh" {
|
||
|
network_interface_id = azurerm_network_interface.main.id
|
||
|
network_security_group_id = azurerm_network_security_group.ssh.id
|
||
|
}
|
||
|
|
||
|
# Disk
|
||
|
|
||
|
resource "azurerm_managed_disk" "data" {
|
||
|
name = "${var.prefix}-disk"
|
||
|
location = var.location
|
||
|
resource_group_name = var.resource_group_name
|
||
|
storage_account_type = "PremiumV2_LRS"
|
||
|
create_option = "Empty"
|
||
|
disk_size_gb = "16"
|
||
|
zone = 1
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|
||
|
|
||
|
resource "azurerm_virtual_machine_data_disk_attachment" "data" {
|
||
|
managed_disk_id = azurerm_managed_disk.data.id
|
||
|
virtual_machine_id = azurerm_linux_virtual_machine.main.id
|
||
|
lun = "1"
|
||
|
caching = "None"
|
||
|
}
|
||
|
|
||
|
# VM
|
||
|
|
||
|
resource "azurerm_linux_virtual_machine" "main" {
|
||
|
name = "${var.prefix}-vm"
|
||
|
location = var.location
|
||
|
resource_group_name = var.resource_group_name
|
||
|
network_interface_ids = [azurerm_network_interface.main.id]
|
||
|
dedicated_host_id = var.dedicated_host_id
|
||
|
zone = 1
|
||
|
|
||
|
size = var.vm_size
|
||
|
|
||
|
admin_username = "benchmark"
|
||
|
|
||
|
admin_ssh_key {
|
||
|
username = "benchmark"
|
||
|
public_key = var.ssh_public_key
|
||
|
}
|
||
|
|
||
|
os_disk {
|
||
|
caching = "ReadWrite"
|
||
|
storage_account_type = "Premium_LRS"
|
||
|
}
|
||
|
|
||
|
source_image_reference {
|
||
|
publisher = "Canonical"
|
||
|
offer = "0001-com-ubuntu-server-jammy"
|
||
|
sku = "22_04-lts-gen2"
|
||
|
version = "latest"
|
||
|
}
|
||
|
|
||
|
identity {
|
||
|
type = "SystemAssigned"
|
||
|
}
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|
||
|
|
||
|
resource "azurerm_virtual_machine_extension" "entra_login" {
|
||
|
name = "AADSSHLoginForLinux"
|
||
|
virtual_machine_id = azurerm_linux_virtual_machine.main.id
|
||
|
publisher = "Microsoft.Azure.ActiveDirectory"
|
||
|
type = "AADSSHLoginForLinux"
|
||
|
type_handler_version = "1.0"
|
||
|
|
||
|
tags = var.tags
|
||
|
}
|