infrastructure/main.tf

80 lines
2.0 KiB
HCL

terraform {
required_providers {
hcloud = {
source = "hetznercloud/hcloud"
version = "1.36.2"
}
}
backend "http" {
}
}
provider "hcloud" {
token = var.hcloud_token
}
resource "hcloud_ssh_key" "default" {
name = "DefaultSSHKey"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgWpTiwD2v1PIfgEMB6/BjPhevD2pV6I7l6U08ESXcgqiEG9fR8RxpvVP+5K/gvFw36qcVINCbiyYxH6TMRwqYPpYRhBwyydDJMMzGg0FFTucQAhVnxREZk5soDyhlwQUumsvmk0/+NZ0DxTA2Z4JJSwvD9Q2Gm5ca6D/nUodlb7qs4/26NsffMmTYng3NQLKYg6Rg0TyV6WRiHrxeonaWOeCqYuB4sG5himvUJ0cbg6Yvs82Qy4djipa3nmIi6GbpPLqisC1Fy8RH1j32kqY7w2+i7X9xD+U2Yf9PYGLiPZ5yzCqhnH1Z9U2/MQUc1jzHnWKPdzV/YMxOpcCRHpLY67XmJ3B7dXVPjlADVA1T+SIvhy77UZV9rhVyCCNifb6qSEWGwN8CBbbeU3z4hSkNnxNv2RnUm7UQyRPlL+cWC3U34omqGZMZb5HUXhZ31trz61PiXly/mgOKKwGB0C0f1U4StHc4/HR8gY7XQj854R2oznAbZgy/xiCZO0kZJ9hCQ3rtt1NqHkHd9+n2QPyVIgCYMoEaxs9umJKkArbYVsWXIdHOJcnEH2Uk/p8//Je2K8YW+PAQ/GXKwER0+pXj4G/cOCnjQcEIWlUDAuYYOfqRG7hkC6H+ZLyO6cmOKB5gRQTaf1JanbFL4lAMUHI/4LB9/E0HhIIgxnsmsyid3Q== openpgp:0x49DE4884"
}
resource "hcloud_ssh_key" "tf" {
name = "TerraformSSHKey"
public_key = file("./tf-key.pub")
}
resource "hcloud_firewall" "default" {
name = "DefaultFirewall"
rule {
description = "http"
direction = "in"
protocol = "tcp"
source_ips = [
"0.0.0.0/0"
]
port = "80"
}
rule {
description = "https"
direction = "in"
protocol = "tcp"
source_ips = [
"0.0.0.0/0"
]
port = "443"
}
rule {
description = "ssh"
direction = "in"
protocol = "tcp"
source_ips = [
"0.0.0.0/0"
]
port = "22"
}
}
resource "hcloud_server" "saerbeck01" {
name = "saerbeck01"
image = "docker-ce"
server_type = "cpx21"
location = "nbg1"
ssh_keys = [
hcloud_ssh_key.default.id,
hcloud_ssh_key.tf.id
]
public_net {
ipv4_enabled = true
ipv6_enabled = false
}
firewall_ids = [
hcloud_firewall.default.id
]
}
output "IPAddress" {
value = hcloud_server.saerbeck01.ipv4_address
description = "Main Address"
}