I am trying to use include_vars based on when condition as follows:
- include_vars: clouderamanager.yml
when: "'{{ inventory_hostname }}' in groups['hadoop-clouderamanager']"
- include_vars: hadoop-namenode.yml
when: "'{{ inventory_hostname }}' in groups['hadoop-namenode']"
- include_vars: resourcemanager.yml
when: "'{{ inventory_hostname }}' in groups['hadoop-resourcemanager']"
- include_vars: spark-history-server.yml
when: "'{{ inventory_hostname }}' in groups['spark-history-server']"
I am getting ERROR! Syntax Error while loading YAML.
The error appears to have been in '~/ansible/roles/hadoop-master/tasks/main.yml': line 4, column 36, but may be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- include_vars: clouderamanager.yml
when: '{{ inventory_hostname }}' in groups['hadoop-clouderamanager']
^ here
Sorry if I have this wrong - the nested YAML quote thing is hurting my
eyes - but I think you can do what you want with group_vars - have a
look at the docs for that.
I tried your both suggestion now getting another error
for when: “‘hadoop-namenode’ in group_names”
`
TASK [hadoop-master : include_vars] ********************************************
fatal: [hnn001.dev.abc.com]: FAILED! => {“failed”: true, “msg”: “The conditional check ‘inventory_hostname in groups[‘hadoop-namenode’]’ failed. The error was: error while evaluating conditional (inventory_hostname in groups[‘hadoop-namenode’]): Unable to look up a name or access an attribute in template string. Make sure your variable name does not contain invalid characters like ‘-’.\n\nThe error appears to have been in ‘~/ansible/roles/hadoop-master/tasks/main.yml’: line 6, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- include_vars: namenode.yml\n ^ here\n”}