create dynamic ansible group
This commit is contained in:
parent
e6d453fce3
commit
bc64652310
@ -7,21 +7,30 @@
|
||||
name: terraform_vm
|
||||
vars:
|
||||
terraform_vm_project_path: /home/vez/homelab/terraform/projects/terransible
|
||||
terraform_vars_multi_node_deployment: false
|
||||
terraform_vars_target_node: zenith
|
||||
# terraform_vars_vm_attr:
|
||||
# mast:
|
||||
# ram: 2048
|
||||
# cpu: 2
|
||||
# vlan: 66
|
||||
# work:
|
||||
# ram: 1024
|
||||
# cpu: 1
|
||||
# vlan: 66
|
||||
# terraform_vars_multi_node_deployment: false
|
||||
# terraform_vars_target_node: zenith
|
||||
terraform_vars_vm_attr:
|
||||
master:
|
||||
ram: 2048
|
||||
cpu: 2
|
||||
vlan: 66
|
||||
worker:
|
||||
ram: 1024
|
||||
cpu: 1
|
||||
vlan: 66
|
||||
|
||||
- name: Ping
|
||||
hosts: servers
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Ping the host group
|
||||
ansible.builtin.ping:
|
||||
- name: Ping all the hosts
|
||||
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_ram = config.ram
|
||||
vm_vlan = config.vlan
|
||||
vm_role = role
|
||||
}
|
||||
]
|
||||
]) : vm.vm_name => vm
|
||||
}
|
||||
|
||||
roles = toset([for vm in local.vm_list : vm.vm_role])
|
||||
}
|
||||
|
||||
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 }
|
||||
}
|
||||
|
||||
resource "ansible_group" "servers" {
|
||||
name = "servers"
|
||||
resource "ansible_group" "vm_groups" {
|
||||
for_each = local.roles
|
||||
name = each.key
|
||||
}
|
||||
resource "ansible_host" "vm" {
|
||||
resource "ansible_host" "vm_hosts" {
|
||||
for_each = module.pve_vm
|
||||
name = each.key
|
||||
variables = {
|
||||
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