variable "ssh_key_name" { type = "string" } variable "location" { type = "string" } variable "volume_name" { type = "string" default = "" } resource "random_id" "server" { prefix = "peter-" byte_length = 2 } resource "hcloud_server" "server" { name = "${random_id.server.hex}.crashbox.io" image = "debian-9" server_type = "cx11" location = "${var.location}" ssh_keys = ["${var.ssh_key_name}"] } resource "cloudflare_record" "record_a" { domain = "crashbox.io" name = "${hcloud_server.server.name}" value = "${hcloud_server.server.ipv4_address}" type = "A" } resource "cloudflare_record" "record_aaaa" { domain = "crashbox.io" name = "${hcloud_server.server.name}" value = "${hcloud_server.server.ipv6_address}1" type = "AAAA" } resource "hcloud_volume" "master" { count = "${var.volume_name == "" ? 0 : 1}" name = "${var.volume_name}" size = 50 server_id = "${hcloud_server.server.id}" } # volumes contain persistent storage and thus need to be initialized manually resource "null_resource" "volume_mount" { count = "${var.volume_name == "" ? 0 : 1}" triggers = { server_id = "${hcloud_server.server.id}" volume_id = "${hcloud_volume.master.id}" } connection { host = "${hcloud_server.server.ipv4_address}" } provisioner "remote-exec" { inline = ["mkdir -p /mnt/storage"] } provisioner "file" { content = <