resource "hcloud_placement_group" "serverctl_master" { name = "serverctl_master_group" type = "spread" } variable "serverctl_master_count" { default = 1 } resource "hcloud_server" "serverctl_master" { count = var.serverctl_master_count name = "serverctl-master-${count.index}" image = "debian-11" server_type = "cx11" ssh_keys = [ var.hcloud_serverctl_ssh_key_id ] placement_group_id = hcloud_placement_group.serverctl_master.id provisioner "remote-exec" { inline = ["sudo apt update", "sudo apt install python3 -y", "echo Done!"] connection { host = self.ipv4_address type = "ssh" user = "root" private_key = file(var.pvt_key) } } } resource "null_resource" "configure_serverctl_master" { count = var.serverctl_master_count provisioner "local-exec" { command = "ANSIBLE_HOST_KEY_CHECKING=False /usr/bin/ansible-playbook -u root -i '${element(hcloud_server.serverctl_master.*.ipv4_address, 0)},' --private-key ${var.pvt_key} -e 'pub_key=${var.pub_key}' apache-install.yml" } triggers = { always_run = timestamp() } } output "master_ipv4_addresses" { value = { for serverctl in hcloud_server.serverctl_master: serverctl.name => serverctl.ipv4_address } }