Hey all,
We’re migrating from a single load balancer pair for all systems (dev/test/qa/prod) to separate pairs for dev/test and qa/prod. As a result, my previous task to pull nodes from the pool on the load balancer will no longer suffice without some conditional logic. I have a partial solution, but it two issues.
1st Issue
In the following code i’m attempting to make it so that if the server is in the test inventory group, it uses the dev-test f5 pair and if it’s not, use the qa-prod f5 pair. The first issue is that it loops over all combinations so the task would essentially execute twice for each f5 target.
2nd Issue
The second problem is that i need to expand the conditional to allow multiple statements.
I need to find a way to expand this line:
msg: “{{ (inventory_hostname in groups[‘test’]) | ternary(hostvars[item[0]].ansible_host,hostvars[item[1]].ansible_host) }}”
into
msg: “{{ (inventory_hostname in groups[‘test’] OR inventory_hostname in groups[‘dev’]) | ternary(hostvars[item[0]].ansible_host,hostvars[item[1]].ansible_host) }}”
which doesn’t work currently.
I’m wondering if there’s a way to salvage this method or if i need another approach entirely. I’ve considered just hard coding the f5’s into a group_variable, but i’d like to avoid that and leverage the inventory instead if possible.
Thanks!