64 lines
No EOL
1.7 KiB
HCL
64 lines
No EOL
1.7 KiB
HCL
provider "stackit" {
|
|
default_region = var.stackit_region
|
|
service_account_key_path = var.stackit_service_account_key_path
|
|
}
|
|
|
|
resource "stackit_key_pair" "example_keypair" {
|
|
name = "example-keypair"
|
|
public_key = chomp(file("~/.ssh/id_rsa.pub"))
|
|
}
|
|
|
|
resource "stackit_network_interface" "example_nic" {
|
|
project_id = var.stackit_project_id
|
|
network_id = stackit_network.example_network.network_id
|
|
security = false
|
|
}
|
|
|
|
locals {
|
|
servers = flatten([
|
|
for zone, count in {
|
|
eu01-3 = 2,
|
|
eu01-1 = 1,
|
|
eu01-2 = 1
|
|
} : [
|
|
for index in range(count) : {
|
|
name = "example-server-${zone}-${index}"
|
|
availability_zone = zone
|
|
}
|
|
]
|
|
])
|
|
}
|
|
|
|
resource "stackit_server" "example_server" {
|
|
for_each = { for server in local.servers : server.name => server }
|
|
|
|
project_id = var.stackit_project_id
|
|
name = each.value.name
|
|
boot_volume = {
|
|
size = 64
|
|
source_type = "image"
|
|
source_id = "a2c127b2-b1b5-4aee-986f-41cd11b41279" // Ubuntu 24.04
|
|
performance_class = "storage_premium_perf12"
|
|
}
|
|
availability_zone = each.value.availability_zone
|
|
machine_type = "n3.14d.g1"
|
|
network_interfaces = [
|
|
stackit_network_interface.example_nic.network_interface_id
|
|
]
|
|
}
|
|
|
|
resource "stackit_network" "example_network" {
|
|
project_id = var.stackit_project_id
|
|
name = "example-network"
|
|
ipv4_prefix_length = 24
|
|
ipv4_nameservers = ["1.1.1.1", "8.8.8.8"]
|
|
}
|
|
|
|
resource "stackit_public_ip" "example_public_ip" {
|
|
project_id = var.stackit_project_id
|
|
network_interface_id = stackit_network_interface.example_nic.network_interface_id
|
|
}
|
|
|
|
output "public_ip" {
|
|
value = stackit_public_ip.example_public_ip.ip
|
|
} |