我有一個ansible任務是這樣的:ansible如何使用一個變量在for循環
- name: coreos network configuration
{% for interface in argument['interfaces'] %}
{% if argument[interface]['role'] == 'ingest' %}
script: netconfiginput.sh -i {{interface}} #incorrect, how to get the value of the interface variable of the for loop?
{% endif %}
{% endfor %}
當運行這個ansible任務,我傳遞一個JSON字符串參數:
ansible-playbook --extra-vars 'argument={"interfaces":["eno1","eno2","ep8s0"],"eno2":{"role":"ingest"}}' network-config.yml
我想要做的是,循環訪問名爲interfaces
的JSON數組,這是一個網絡接口列表,當接口的role
被稱爲ingest
時,我運行腳本並將網絡接口作爲參數傳遞給腳本,我的實現是不正確,我該怎麼辦這個?
我想這一點,但我得到的錯誤'with_items預計列表或set'。它應該是'參數[某個接口] ['角色']'。 –
我剛剛稍微修改了我的答案。如果你沒有傳遞數組,那麼你應該在前面的命令中使用'debug'來查看它是如何傳遞的。 – Humza