create dynamic ansible group
This commit is contained in:
parent
e6d453fce3
commit
bc64652310
@ -7,21 +7,30 @@
|
|||||||
name: terraform_vm
|
name: terraform_vm
|
||||||
vars:
|
vars:
|
||||||
terraform_vm_project_path: /home/vez/homelab/terraform/projects/terransible
|
terraform_vm_project_path: /home/vez/homelab/terraform/projects/terransible
|
||||||
terraform_vars_multi_node_deployment: false
|
# terraform_vars_multi_node_deployment: false
|
||||||
terraform_vars_target_node: zenith
|
# terraform_vars_target_node: zenith
|
||||||
# terraform_vars_vm_attr:
|
terraform_vars_vm_attr:
|
||||||
# mast:
|
master:
|
||||||
# ram: 2048
|
ram: 2048
|
||||||
# cpu: 2
|
cpu: 2
|
||||||
# vlan: 66
|
vlan: 66
|
||||||
# work:
|
worker:
|
||||||
# ram: 1024
|
ram: 1024
|
||||||
# cpu: 1
|
cpu: 1
|
||||||
# vlan: 66
|
vlan: 66
|
||||||
|
|
||||||
- name: Ping
|
- name: Ping
|
||||||
hosts: servers
|
hosts: all
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ping the host group
|
- name: Ping all the hosts
|
||||||
ansible.builtin.ping:
|
ansible.builtin.ping:
|
||||||
|
|
||||||
|
delegate_to:
|
||||||
|
- name: Ping the master
|
||||||
|
ansible.builtin.ping:
|
||||||
|
when: inventory_hostname in groups['master']
|
||||||
|
|
||||||
|
- name: Ping the worker
|
||||||
|
ansible.builtin.ping:
|
||||||
|
when: inventory_hostname in groups['worker']
|
@ -22,10 +22,13 @@ locals {
|
|||||||
vm_cpu = config.cpu
|
vm_cpu = config.cpu
|
||||||
vm_ram = config.ram
|
vm_ram = config.ram
|
||||||
vm_vlan = config.vlan
|
vm_vlan = config.vlan
|
||||||
|
vm_role = role
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
]) : vm.vm_name => vm
|
]) : vm.vm_name => vm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
roles = toset([for vm in local.vm_list : vm.vm_role])
|
||||||
}
|
}
|
||||||
|
|
||||||
data "proxmox_virtual_environment_nodes" "pve_nodes" {}
|
data "proxmox_virtual_environment_nodes" "pve_nodes" {}
|
||||||
@ -34,14 +37,15 @@ output "vm_ip" {
|
|||||||
value = { for k, v in module.pve_vm : k => v.vm_ip }
|
value = { for k, v in module.pve_vm : k => v.vm_ip }
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "ansible_group" "servers" {
|
resource "ansible_group" "vm_groups" {
|
||||||
name = "servers"
|
for_each = local.roles
|
||||||
|
name = each.key
|
||||||
}
|
}
|
||||||
resource "ansible_host" "vm" {
|
resource "ansible_host" "vm_hosts" {
|
||||||
for_each = module.pve_vm
|
for_each = module.pve_vm
|
||||||
name = each.key
|
name = each.key
|
||||||
variables = {
|
variables = {
|
||||||
ansible_host = each.value.vm_ip
|
ansible_host = each.value.vm_ip
|
||||||
}
|
}
|
||||||
groups = ["servers"]
|
groups = [local.vm_list[each.key].vm_role]
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user