aboutsummaryrefslogtreecommitdiff
path: root/opentofu/modules/ansible_provisioner/main.tf
blob: cac666dd94965dc984a660e14634a990148979ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
variable "vm_ip" {
  default = null
}

variable "inventory_file_path" {
  default = null
}

variable "vm_username" {}
variable "ssh_private_key_path" {}
variable "ansible_playbook_path" {}

resource "null_resource" "ansible_provisioner" {
  triggers = {
    ip_or_inventory = coalesce(var.vm_ip, var.inventory_file_path)  # Choose based on what is provided
  }

  provisioner "local-exec" {
    command = <<-EOT
      ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_CONFIG=${path.root}/../ansible/ansible.cfg ansible-playbook -b -v \
        -i ${var.inventory_file_path != null ? var.inventory_file_path : "${var.vm_ip},"} \
        -u ${var.vm_username} \
        --private-key ${var.ssh_private_key_path} \
        ${var.ansible_playbook_path}
    EOT
  }
}