Reputation: 41
I have an ansible jinja which is making use of variable {{ mydata }} the value of this variable differs for each host available in the inventory. I am trying to use if condition in my vars to set it up but it's throwing below error. Can someone guide me?
Jinja :
appkey = {{ mydata }}
vars/vars.yml {% if inventory_hostname == "my-host-name" %} mydata: myvalue {% endif %}
Expecting value: line 2 column 1 (char 1)\n\nSyntax Error while loading YAML.\n found character that cannot start any token\n\nThe error appears to be in
Upvotes: 0
Views: 1944
Reputation: 68144
Put the data into a dictionary
mydata_dict:
my_host_name: myvalue
default: default value
mydata: "{{ mydata_dict[inventory_hostname]|default(mydata_dict.default) }}"
For example the playbook
- hosts: my_host_name,my_host_name2
vars:
mydata_dict:
my_host_name: myvalue
default: default value
mydata: "{{ mydata_dict[inventory_hostname]|default(mydata_dict.default) }}"
tasks:
- debug:
var: mydata
gives
ok: [my_host_name] =>
mydata: myvalue
ok: [my_host_name2] =>
mydata: default value
Upvotes: 1