Add firewall rules, cloud-init config, and remove volume support
This commit is contained in:
@@ -12,8 +12,3 @@ hcloud_ssh_key_file_path = "~/.ssh/id_rsa.pub"
|
||||
hcloud_server_name = "web...."
|
||||
hcloud_server_image = "ubuntu-24.04"
|
||||
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" {
|
||||
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_volume" "storage" {
|
||||
name = var.hcloud_volume_name
|
||||
size = var.hcloud_volume_size
|
||||
server_id = hcloud_server.web.id
|
||||
automount = true
|
||||
format = "ext4"
|
||||
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]
|
||||
}
|
||||
@@ -2,6 +2,7 @@ terraform {
|
||||
required_providers {
|
||||
hcloud = {
|
||||
source = "hetznercloud/hcloud"
|
||||
version = "~> 1.45"
|
||||
}
|
||||
}
|
||||
required_version = ">= 0.13"
|
||||
@@ -40,15 +41,3 @@ variable "hcloud_server_type" {
|
||||
type = string
|
||||
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