如何將yaml數組傳遞給Ansible playbook中的--extra-vars
。 Ansible文檔沒有聲明它的語法,也不能在任何互聯網資源上找到它。將數組傳遞給--extra-vars - Ansible
我的意思是,如果我有一個劇本:
---
- hosts: {{hostName}}
- remote_user: admin
...
然後我打電話給我的劇本就像
ansible-playbook DeployWar.yml --extra-vars="hostName=tomcat-webApp"
但我想運行在兩臺服務器上這個劇本說tomcat-webApp
和tomcat-all
,我想從外面控制它,例如使用--extra-vars
。我試圖做的是:
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}]"
但是在所有情況下,劇本都無法在我的調用中聲明語法錯誤。 任何幫助表示讚賞。
每當我使用JSON的工作,無論是在額外增值經銷商或其他地方我發現使用http://jsonlint.com的成爲救星。通過將{test_list:[1,2,3]}粘貼到該網站中,您可以快速驗證您的JSON在語法上是否正確。將多個變量傳遞給Ansible或者當您使用任何其他複雜的JSON時尤其有用。 – 2014-09-05 15:29:41
這個答案實際上是過時的 - 使用'--extra-vars ='{test_list:[1,2,3]}''會導致錯誤'錯誤:期望屬性名稱用雙引號括起來:第1行第2列字符1)'(至少1.9.4,我正在使用),因爲它不是有效的JSON。正確的版本將是'--extra-vars ='{「test_list」:[1,2,3]}' – iquito 2016-03-08 19:48:40
已更新extra-vars格式,謝謝! – jarv 2016-03-09 12:58:27