feat: added server instances

This commit is contained in:
2025-12-30 12:30:52 -05:00
parent 8d9d04810c
commit 1e17d87b4f
4 changed files with 29 additions and 13 deletions

View File

@@ -17,6 +17,28 @@ resource "hcloud_server" "nat" {
server_type = "cx23" server_type = "cx23"
placement_group_id = hcloud_placement_group.group.id placement_group_id = hcloud_placement_group.group.id
ssh_keys = [hcloud_ssh_key.main.id] ssh_keys = [hcloud_ssh_key.main.id]
network {
network_id = hcloud_network.net.id
ip = local.nat-private-ip
}
public_net {
ipv4_enabled = true
}
} }
// Private compute instances.
resource "hcloud_server" "server" {
for_each = local.servers
name = each.key
image = "debian-12"
server_type = "cx23"
placement_group_id = hcloud_placement_group.group.id
ssh_keys = [hcloud_ssh_key.main.id]
network {
network_id = hcloud_network.net.id
ip = each.value
}
}

View File

@@ -4,13 +4,6 @@ resource "hcloud_network" "net" {
ip_range = local.net-cidr ip_range = local.net-cidr
} }
// Attach the NAT to the network.
resource "hcloud_server_network" "nat-to-net" {
server_id = hcloud_server.nat.id
network_id = hcloud_network.net.id
ip = local.nat-private-ip
}
// Provide internet to the private servers, by sending all internet traffic to // Provide internet to the private servers, by sending all internet traffic to
// the NAT. // the NAT.
resource "hcloud_network_route" "gateway" { resource "hcloud_network_route" "gateway" {
@@ -18,9 +11,3 @@ resource "hcloud_network_route" "gateway" {
destination = "0.0.0.0/0" destination = "0.0.0.0/0"
gateway = local.nat-private-ip gateway = local.nat-private-ip
} }
// Give the NAT a public IP.
resource "hcloud_floating_ip" "master" {
type = "ipv4"
server_id = hcloud_server.nat.id
}

3
terraform/outputs.tf Normal file
View File

@@ -0,0 +1,3 @@
output "nat-public-ip" {
value = hcloud_server.nat.ipv4_address
}

View File

@@ -2,6 +2,10 @@ locals {
net-cidr = "10.0.0.0/8" net-cidr = "10.0.0.0/8"
nat-private-ip = "10.0.1.5" nat-private-ip = "10.0.1.5"
servers = {
Node0 = "10.0.2.0"
Node1 = "10.0.2.1"
}
} }
variable "public_key_file" { variable "public_key_file" {