For some servers in an inventory, i assign a range of ports. I want to use these ports in my playbooks while keeping them portable and compatible with any configuration. I am thinking of using variable for ports whose values are resolved via some script in inventory. Something like this:
–In Playbooks–
portValueUser: p1 hostName: localhost:p2 someURL: http://hostname:p3
–For first inventory, values of p1, p2, p3…—
p1: 5101 p2: 5102 p3 5103 ... ... p100: 5200
–For seconds inventory, values of p1, p2, p3…—
p1: 6201 p2: 6202 p3 6203 ... ... p100: 6300
This way, i can use a series of port values in my playbook which are defined by inventory(host vars). I am trying to figure out a way to really apply some logic in constructing these vars
Something like, in inventory/group_vars/all/load.yaml.j2
(please ignore the syntax errors, this is for illustration)
`
{% if a > b %}
{% for i = 1 to 100 and val = 5101 to 5200 %}
p{{i}} = val
{% endfor %}
{% else %}
{% for i = 1 to 100 and val = 6201 to 6300 %}
p{{i}} = val
{% endfor %}
{% endif %}
`
Remember the 2 main questions here:
1 - Can i really construct a large number of variables with loop like this ?
2 - How can i load or rather resolve a vars file like above via the inventory ?