Wie kann ich Yaml-Array zu --extra-vars
in Ansible Playbook übergeben. Ansible-Dokumentation erklärt nicht ihre Syntax, noch kann ich das auf irgendeiner Internetressource finden.Pass Array in --Extra-Vars - Ansible
Ich meine, wenn ich ein Textbuch haben:
---
- hosts: {{hostName}}
- remote_user: admin
...
Dann sage ich sollte mein Textbuch wie
ansible-playbook DeployWar.yml --extra-vars="hostName=tomcat-webApp"
Aber ich will nennen das Textbuch auf zwei Servern laufen tomcat-webApp
und tomcat-all
, und ich möchte es von außen z. B. mit --extra-vars
steuern. Was ich versucht habe zu tun ist:
ansible-playbook DeployWar.yml --extra-vars="hostName=[tomcat-webApp, tomcat-all]"
ansible-playbook DeployWar.yml --extra-vars="hostName={tomcat-webApp, tomcat-all}"
ansible-playbook DeployWar.yml --extra-vars="[{hostName: tomcat-webApp}, {hostName: tomcat-all}]"
Aber in allen Fällen schlägt playbook fehl, einen Syntaxfehler in meinem Anruf zu erklären. Jede Hilfe wird geschätzt.
Jedes Mal, wenn ich mit JSON arbeiten bin, ob in außer Vars oder anderswo finde ich die Verwendung von http://jsonlint.com ein Lebensretter sein. Indem Sie {test_list: [1,2,3]} in diese Site einfügen, können Sie schnell überprüfen, ob Ihr JSON syntaktisch korrekt ist. Dies ist besonders nützlich, wenn mehrere Variablen an Ansible übergeben werden oder wenn Sie einen anderen komplexen JSON verwenden, mit dem Sie arbeiten. –
Diese Antwort ist tatsächlich veraltet - die Verwendung von '--extra-vars = '{test_list: [1,2,3]}'' führt zum Fehler 'ERROR: Expecting property name in Anführungszeichen eingeschlossen: Zeile 1 Spalte 2 (char 1) '(zumindest mit 1.9.4, die ich verwende), weil es JSON nicht gültig ist. Die korrekte Version wäre '--extra-vars = '{" test_list ": [1,2,3]}' ' – iquito
hat die extra-vars-Formatierung aktualisiert, danke! – jarv