Ich versuche include_vars
basierend auf when
Zustand wie folgt zu verwenden:Wie geht Ansible bedingte 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']
Ich 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
wenn: " '{{inventory_hostname}}' in Gruppen [ 'hadoop-clouderamanager']" nicht – roy
arbeitete dachte ich für group_vars ich verschiedene Rollen erstellen müssen , hier versuche ich alles in einer Rolle zu tun – roy
group_vars sind nicht mit Rollen verbunden. Sie leben außerhalb von Rollen. Und IMHO-Rollen sollten vollständig unabhängig von der Host-/Gruppenkonfiguration sein und sollten mit der Variablen funktionieren, die von außen zur Verfügung gestellt wird (Host/Gruppenvars, Rollenparameter usw.). Wie auch immer, wenn das * nicht funktioniert hat, solltest du einen tieferen Blick darauf werfen, warum es nicht so war oder mehr Details liefern. Denn so geht es. :) Vergleichen Sie [dies] (http://yaml-online-parser.appspot.com/?yaml=-+foo%3A+%27bar%27+baz%0A&type=json) mit [dies] (http: // yaml -online-parser.appspot.com/?yaml=-+foo%3A+%22%27bar%27+baz%22%0A&type=json) – udondan