Files
NaliiaDevOPs/terraform/hcloud.tf

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]
}