Add firewall rules, cloud-init config, and remove volume support
This commit is contained in:
@@ -11,9 +11,4 @@ hcloud_ssh_key_file_path = "~/.ssh/id_rsa.pub"
|
|||||||
|
|
||||||
hcloud_server_name = "web...."
|
hcloud_server_name = "web...."
|
||||||
hcloud_server_image = "ubuntu-24.04"
|
hcloud_server_image = "ubuntu-24.04"
|
||||||
hcloud_server_type = "cx23"
|
hcloud_server_type = "cx23"
|
||||||
|
|
||||||
# Server Volume Name
|
|
||||||
|
|
||||||
hcloud_volume_name = "volume..."
|
|
||||||
hcloud_volume_size = 10
|
|
||||||
11
terraform/cloud-init.yml
Normal file
11
terraform/cloud-init.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# cloud-config
|
||||||
|
package_update: true
|
||||||
|
packages:
|
||||||
|
- git
|
||||||
|
- curl
|
||||||
|
- docker.io
|
||||||
|
- docker-compose
|
||||||
|
runcmd:
|
||||||
|
- systemctl enable docker
|
||||||
|
- systemctl start docker
|
||||||
|
- curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
|
||||||
@@ -10,15 +10,45 @@ resource "hcloud_ssh_key" "default" {
|
|||||||
resource "hcloud_server" "web" {
|
resource "hcloud_server" "web" {
|
||||||
name = var.hcloud_server_name
|
name = var.hcloud_server_name
|
||||||
image = var.hcloud_server_image
|
image = var.hcloud_server_image
|
||||||
|
location = "hel1"
|
||||||
server_type = var.hcloud_server_type
|
server_type = var.hcloud_server_type
|
||||||
ssh_keys = [hcloud_ssh_key.default.id]
|
ssh_keys = [hcloud_ssh_key.default.id]
|
||||||
|
user_data = file("${path.module}/cloud-init.yml")
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "hcloud_volume" "storage" {
|
resource "hcloud_firewall" "web" {
|
||||||
name = var.hcloud_volume_name
|
name = "${var.hcloud_server_name}-firewall"
|
||||||
size = var.hcloud_volume_size
|
|
||||||
server_id = hcloud_server.web.id
|
rule {
|
||||||
automount = true
|
direction = "in"
|
||||||
format = "ext4"
|
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]
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
hcloud = {
|
hcloud = {
|
||||||
source = "hetznercloud/hcloud"
|
source = "hetznercloud/hcloud"
|
||||||
|
version = "~> 1.45"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
required_version = ">= 0.13"
|
required_version = ">= 0.13"
|
||||||
@@ -39,16 +40,4 @@ variable "hcloud_server_type" {
|
|||||||
description = "Server Type"
|
description = "Server Type"
|
||||||
type = string
|
type = string
|
||||||
default = "cx23"
|
default = "cx23"
|
||||||
}
|
|
||||||
|
|
||||||
variable "hcloud_volume_name" {
|
|
||||||
description = "Server Volume Name"
|
|
||||||
type = string
|
|
||||||
default = "web_volume"
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "hcloud_volume_size" {
|
|
||||||
description = "Server Volume Name"
|
|
||||||
type = number
|
|
||||||
default = 10
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user