From de457e8e38d506aa63fcbdb4d2b293e3fb442e3b Mon Sep 17 00:00:00 2001 From: Vezpi Date: Wed, 26 Mar 2025 21:47:02 +0000 Subject: [PATCH] add terransible project --- terraform/projects/terransible/deploy_tf.yml | 14 ++++++++++++ terraform/projects/terransible/inventory.yml | 2 ++ terraform/projects/terransible/main.tf | 24 ++++++++++++++++++++ terraform/projects/terransible/provider.tf | 21 +++++++++++++++++ terraform/projects/terransible/variables.tf | 10 ++++++++ 5 files changed, 71 insertions(+) create mode 100644 terraform/projects/terransible/deploy_tf.yml create mode 100644 terraform/projects/terransible/inventory.yml create mode 100644 terraform/projects/terransible/main.tf create mode 100644 terraform/projects/terransible/provider.tf create mode 100644 terraform/projects/terransible/variables.tf diff --git a/terraform/projects/terransible/deploy_tf.yml b/terraform/projects/terransible/deploy_tf.yml new file mode 100644 index 0000000..8b2c2e6 --- /dev/null +++ b/terraform/projects/terransible/deploy_tf.yml @@ -0,0 +1,14 @@ +--- +- name: Deploy a Terraform infrastructure + hosts: localhost + tasks: + - name: terraform apply + cloud.terraform.terraform: + project_path: /home/vez/homelab/terraform/projects/terransible + state: present + register: tf_return + +- name: Ping + hosts: servers + tasks: + - ping: \ No newline at end of file diff --git a/terraform/projects/terransible/inventory.yml b/terraform/projects/terransible/inventory.yml new file mode 100644 index 0000000..8c67098 --- /dev/null +++ b/terraform/projects/terransible/inventory.yml @@ -0,0 +1,2 @@ +--- +plugin: cloud.terraform.terraform_provider diff --git a/terraform/projects/terransible/main.tf b/terraform/projects/terransible/main.tf new file mode 100644 index 0000000..3c34237 --- /dev/null +++ b/terraform/projects/terransible/main.tf @@ -0,0 +1,24 @@ +module "pve_vm" { + source = "../../modules/pve_vm" + node_name = "zenith" + vm_name = "zenith-vm" + vm_cpu = 2 + vm_ram = 2048 + vm_vlan = 66 +} + +output "vm_ip" { + value = module.pve_vm.vm_ip +} + +resource "ansible_group" "servers" { + name = "servers" +} +resource "ansible_host" "vm" { + name = "zenith-vm.lab.vezpi.me" + groups = ["servers"] + variables = { + ansible_host = module.pve_vm.vm_ip + } +} + diff --git a/terraform/projects/terransible/provider.tf b/terraform/projects/terransible/provider.tf new file mode 100644 index 0000000..0b8539f --- /dev/null +++ b/terraform/projects/terransible/provider.tf @@ -0,0 +1,21 @@ +terraform { + required_providers { + proxmox = { + source = "bpg/proxmox" + } + ansible = { + source = "ansible/ansible" + } + } +} + +provider "proxmox" { + endpoint = var.proxmox_endpoint + api_token = var.proxmox_api_token + insecure = false + ssh { + agent = false + private_key = file("~/.ssh/id_ed25519") + username = "root" + } +} diff --git a/terraform/projects/terransible/variables.tf b/terraform/projects/terransible/variables.tf new file mode 100644 index 0000000..fb37c8d --- /dev/null +++ b/terraform/projects/terransible/variables.tf @@ -0,0 +1,10 @@ +variable "proxmox_endpoint" { + description = "Proxmox URL endpoint" + type = string +} + +variable "proxmox_api_token" { + description = "Proxmox API token" + type = string + sensitive = true +} \ No newline at end of file