add hetzner server module
This commit is contained in:
1 parent
af00f58f92
commit
68290e3e89
3 files changed
+110
No files matched your search
@@ -0,0 +1,40 @@
|
||||
terraform {
|
||||
required_version = ">= 1.0.0"
|
||||
required_providers {
|
||||
hcloud = { source = "hetznercloud/hcloud", version = "~> 1.68.0" }
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
# single naming scheme - propagates everywhere
|
||||
key_name = "${var.name}-key"
|
||||
firewall_name = "${var.name}-fw"
|
||||
}
|
||||
|
||||
resource "hcloud_ssh_key" "this" {
|
||||
name = local.key_name
|
||||
public_key = var.ssh_public_key
|
||||
}
|
||||
|
||||
resource "hcloud_firewall" "this" {
|
||||
name = local.firewall_name
|
||||
|
||||
dynamic "rule" {
|
||||
for_each = var.firewall_rules
|
||||
content {
|
||||
direction = rule.value.direction
|
||||
protocol = rule.value.protocol
|
||||
port = rule.value.port
|
||||
source_ips = rule.value.source_ips
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "hcloud_server" "this" {
|
||||
name = var.name
|
||||
image = var.image
|
||||
server_type = var.server_type
|
||||
location = var.location
|
||||
user_data = var.user_data
|
||||
firewall_ids = [hcloud_firewall.this.id]
|
||||
}
|
||||
Reference in new issue
Block a user