54 lines
1.1 KiB
HCL
54 lines
1.1 KiB
HCL
provider "hcloud" {
|
|
token = var.hcloud_token
|
|
}
|
|
|
|
resource "hcloud_ssh_key" "default" {
|
|
name = var.hcloud_ssh_key_name
|
|
public_key = file(var.hcloud_ssh_key_file_path)
|
|
}
|
|
|
|
resource "hcloud_server" "web" {
|
|
name = var.hcloud_server_name
|
|
image = var.hcloud_server_image
|
|
location = "hel1"
|
|
server_type = var.hcloud_server_type
|
|
ssh_keys = [hcloud_ssh_key.default.id]
|
|
user_data = file("${path.module}/cloud-init.yml")
|
|
}
|
|
|
|
resource "hcloud_firewall" "web" {
|
|
name = "${var.hcloud_server_name}-firewall"
|
|
|
|
rule {
|
|
direction = "in"
|
|
protocol = "tcp"
|
|
port = "22"
|
|
source_ips = ["0.0.0.0/0"]
|
|
}
|
|
|
|
rule {
|
|
direction = "in"
|
|
protocol = "tcp"
|
|
port = "80"
|
|
source_ips = ["0.0.0.0/0"]
|
|
}
|
|
|
|
rule {
|
|
direction = "in"
|
|
protocol = "tcp"
|
|
port = "443"
|
|
source_ips = ["0.0.0.0/0"]
|
|
}
|
|
|
|
rule {
|
|
direction = "in"
|
|
protocol = "tcp"
|
|
port = "3000"
|
|
source_ips = ["0.0.0.0/0"]
|
|
}
|
|
}
|
|
|
|
resource "hcloud_firewall_attachment" "web" {
|
|
firewall_id = hcloud_firewall.web.id
|
|
server_ids = [hcloud_server.web.id]
|
|
} |