valene
valene

Reputation: 5

Ansible jinja2 template get current IP file being constructed

In my ansible host inventory, i got 3 host ip as below

[host-group-1]
123.23.23.21
123.23.23.22

i have a variable as below

host_list:
  - { fileName: "master.xml", IP: {{ get_current_Execution_ip }} }
  - { fileName: "slave.xml", IP: {{ get_current_Execution_ip }} }

I have a task which will do some logic in the jinja2 template based on value get from IP. My question is how can i use this {{ get_current_Execution_ip }} to get the current IP the file being constructed via jinja2 template based on respective server. For instance, if the file contructing in 123.23.23.21, the IP value should be 123.23.23.21, if contructing in server 123.23.23.22, the IP value should be 123.23.23.22

Upvotes: 0

Views: 1138

Answers (1)

lxop
lxop

Reputation: 8595

With your inventory set up like that, you can just access the variable inventory_hostname. If you change your inventory to look something like

[host_group_1]
host1 ansible_host=123.23.23.21
host2 ansible_host=123.23.23.22

then you can instead access the IP with the ansible_host variable (which is also available in the first case).

If you change your inventory to not list IP addresses at all (instead relying on resolving the name through DNS), then you probably want to look at some of the answers to this question.

Upvotes: 1

Related Questions