75 lines
1.6 KiB
HCL
75 lines
1.6 KiB
HCL
terraform {
|
|
required_providers {
|
|
hcloud = {
|
|
source = "hetznercloud/hcloud"
|
|
version = "1.32.1"
|
|
}
|
|
}
|
|
}
|
|
|
|
variable "token" {
|
|
type = string
|
|
}
|
|
|
|
provider "hcloud" {
|
|
token = var.token
|
|
}
|
|
|
|
resource "hcloud_server" "ubuntu_server" {
|
|
count = 2
|
|
name = "bk-terraform-server-${count.index}"
|
|
image = "ubuntu-20.04"
|
|
server_type = "cx11"
|
|
|
|
network {
|
|
network_id = hcloud_network.network.id
|
|
}
|
|
|
|
user_data = file("user_data")
|
|
}
|
|
|
|
resource "hcloud_network" "network" {
|
|
name = "bk-terraform-network"
|
|
ip_range = "10.0.1.0/24"
|
|
}
|
|
|
|
resource "hcloud_network_subnet" "subnet" {
|
|
network_id = hcloud_network.network.id
|
|
type = "cloud"
|
|
network_zone = "eu-central"
|
|
ip_range = "10.0.1.0/24"
|
|
}
|
|
|
|
|
|
resource "hcloud_load_balancer" "load_balancer" {
|
|
name = "bk-terraform-balancer"
|
|
load_balancer_type = "lb11"
|
|
location = "hel1"
|
|
}
|
|
|
|
|
|
resource "hcloud_load_balancer_service" "load_balancer_service" {
|
|
load_balancer_id = hcloud_load_balancer.load_balancer.id
|
|
protocol = "tcp"
|
|
listen_port = 8080
|
|
destination_port = 8080
|
|
}
|
|
|
|
|
|
resource "hcloud_load_balancer_network" "srvnetwork" {
|
|
load_balancer_id = hcloud_load_balancer.load_balancer.id
|
|
network_id = hcloud_network.network.id
|
|
ip = "10.0.1.25"
|
|
}
|
|
|
|
|
|
resource "hcloud_load_balancer_target" "load_balancer_target" {
|
|
count = 2
|
|
type = "server"
|
|
load_balancer_id = hcloud_load_balancer.load_balancer.id
|
|
server_id = hcloud_server.ubuntu_server[count.index].id
|
|
}
|
|
|
|
output "link" {
|
|
value = "http://${hcloud_load_balancer.load_balancer.ipv4}:8080/"
|
|
} |