diff options
author | clyhtsuriva <aimeric@adjutor.xyz> | 2025-02-03 17:21:58 +0100 |
---|---|---|
committer | clyhtsuriva <aimeric@adjutor.xyz> | 2025-02-03 17:21:58 +0100 |
commit | 4e2703c52026009c34e8dcb8294b50881f9152f8 (patch) | |
tree | c125c5405bfadb2eb802b2b3c12486274815b293 /opentofu/modules | |
parent | 6135497b6b4837cb8bd65bc093b48ef6a14fbf7d (diff) |
opentofu: add kubespray submodule to deploy via ansible
Not working yet, getting : "msg": "Ansible must be between 2.16.4 and 2.17.0 exclusive - you have 2.17.5"
Diffstat (limited to 'opentofu/modules')
-rw-r--r-- | opentofu/modules/README.md | 3 | ||||
-rw-r--r-- | opentofu/modules/ansible_provisioner/main.tf | 27 |
2 files changed, 27 insertions, 3 deletions
diff --git a/opentofu/modules/README.md b/opentofu/modules/README.md index 4ba37a9..2dab9cb 100644 --- a/opentofu/modules/README.md +++ b/opentofu/modules/README.md @@ -1,6 +1,3 @@ # OpenTofu Modules This folder contains reusable OpenTofu modules for provisioning infrastructure. - -## Available Modules -- diff --git a/opentofu/modules/ansible_provisioner/main.tf b/opentofu/modules/ansible_provisioner/main.tf new file mode 100644 index 0000000..54e3346 --- /dev/null +++ b/opentofu/modules/ansible_provisioner/main.tf @@ -0,0 +1,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 \ + -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 + } +} |