Я пытаюсь использовать include_vars
на основе when
состояния следующим образом:Как сделать Ansible условным include_vars? не
- 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']
я получаю 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
, когда: "{{inventory_hostname}} 'в группах [ 'Hadoop-clouderamanager']" не работало – roy
я думаю, что для group_vars мне нужно создать различные роли , здесь я пытаюсь сделать все в одной роли. – roy
group_vars не связаны с ролями. Они живут вне ролей. И роли IMHO должны быть полностью независимы от конфигурации хоста/группы и должны работать с любой конфигурацией переменной, предоставляемой внешними (host/group_vars, параметрами ролей и т. Д.). Во всяком случае, если это * не сработало *, вы должны глубже понять, почему он не дал или не предоставил более подробную информацию. Потому что так оно и есть. :) Сравните [this] (http://yaml-online-parser.appspot.com/?yaml=-+foo%3A+%27bar%27+baz%0A&type=json) с [this] (http: // yaml -online-parser.appspot.com/?yaml=-+foo%3A+%22%27bar%27+baz%22%0A&type=json) – udondan