Ansible: die Übergabe von ausgewerteten Variablen enthält

Habe ich ein Ansible-Playbook macht einen Anruf an ein anderes playbook übergabe-Parameter. Das funktioniert gut, aber wenn ich versuche zu übergeben, Variablen, Ansible explodiert. Hier ist mein playbook:

---
- name: This is the toplevel play for orchestration
  hosts: nogroup
  vars:
    customer: myCustomer
  sudo: yes
- include: amazon.yml application=FooServer instance_type=t2.micro instance_count=1 customer={{ customer }}
- include: amazon.yml application=BarServer instance_type=t2.micro instance_count=1 customer={{ customer }}

Ich versuche zu laufen:

ansible-playbook orchestration.yml -e "customer=otherCustomer"

und ich bekomme diese Fehlermeldung:

Traceback (most recent call last):
  File "/usr/local/Cellar/ansible/1.7.2/libexec/bin/ansible-playbook", line 5, in <module>
    pkg_resources.run_script('ansible==1.7.2', 'ansible-playbook')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 492, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 1350, in run_script
    execfile(script_filename, namespace, namespace)
  File "/usr/local/Cellar/ansible/1.7.2/lib/python2.7/site-packages/ansible-1.7.2-py2.7.egg/EGG-INFO/scripts/ansible-playbook", line 309, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/usr/local/Cellar/ansible/1.7.2/lib/python2.7/site-packages/ansible-1.7.2-py2.7.egg/EGG-INFO/scripts/ansible-playbook", line 191, in main
    force_handlers=options.force_handlers
  File "/usr/local/Cellar/ansible/1.7.2/lib/python2.7/site-packages/ansible-1.7.2-py2.7.egg/ansible/playbook/__init__.py", line 180, in __init__
    (self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook, vars)
  File "/usr/local/Cellar/ansible/1.7.2/lib/python2.7/site-packages/ansible-1.7.2-py2.7.egg/ansible/playbook/__init__.py", line 271, in _load_playbook_from_file
    inc_vars, inc_path = self._get_include_info(play, basedir, play_vars)
  File "/usr/local/Cellar/ansible/1.7.2/lib/python2.7/site-packages/ansible-1.7.2-py2.7.egg/ansible/playbook/__init__.py", line 210, in _get_include_info
    (k,v) = t.split("=", 1)
ValueError: need more than 1 value to unpack

Irgendwelche Ideen auf, wie um mir zu erlauben, übergeben Sie eine variable, die ich über die Befehlszeile festgelegt down über mehrere Ebenen umfasst, die in meinem playbook?

  • versuchen Sie {{customer}} im Doppelzimmer Zitate: "{{customer}}"
  • Eigentlich ist dies, weil Sie den gleichen Namen für Variablen: customer={{ customer }}. Nur umbenennen einer von Ihnen. Sagen wir: customerX={{ customer }}
InformationsquelleAutor Xanxir | 2014-11-06
Schreibe einen Kommentar