You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
680 B
26 lines
680 B
data "template_file" "inventory" {
|
|
template = "${file("files/ansible_hosts.tpl")}"
|
|
|
|
depends_on = [
|
|
"libvirt_domain.domain",
|
|
]
|
|
|
|
vars = {
|
|
managers = "${join("\n", slice(libvirt_domain.domain.*.name, 0, 3))}"
|
|
workers = "${join("\n", slice(libvirt_domain.domain.*.name, 3, length(libvirt_domain.domain.*.name)))}"
|
|
}
|
|
}
|
|
|
|
resource "null_resource" "ansible" {
|
|
triggers = {
|
|
template_rendered = "${data.template_file.inventory.rendered}"
|
|
}
|
|
|
|
provisioner "local-exec" {
|
|
command = "echo '${data.template_file.inventory.rendered}' > ansible/hosts"
|
|
}
|
|
|
|
provisioner "local-exec" {
|
|
command = "cd ansible && ansible-playbook --diff provision.yaml"
|
|
}
|
|
}
|