5
我有一個ansible文件(my_file.yml
),看起來是這樣的:如何將變量傳遞給包含的任務?
---
- name: The name
hosts: all
tasks:
- include:my_tasks.yml
vars:
my_var: "{{ my_var }}"
my_tasks.yml
看起來是這樣的:
- name: Install Curl
apt: pkg=curl state=installed
- name: My task
command: bash -c "curl -sSL http://x.com/file-{{ my_var }} > /tmp/file.deb"
我想通過my_var
作爲命令行參數ansible所以我這樣做:
ansible-playbook my_file.yml --extra-vars "my_var=1.2.3"
但我結束了以下錯誤:
... Failed to template {{ my_var }}: Failed to template {{ my_var }}: recursive loop detected in template string: {{ my_var }}
如果我在my_file.yml
的vars
看起來像這樣:
- include:my_tasks.yml
vars:
my_var: "1.2.3"
它的作品!我也試圖改變變量名的東西,不等於my_var
,例如:
- include:my_tasks.yml
vars:
my_var: "{{ my_var0 }}"
但後來我結束了一個錯誤。在我看來,該變量沒有擴展,而是將字符串"{{ my_var }}"
或{{ my_var0 }}
傳遞給my_tasks.yml
。我該如何解決這個問題?
如何從任務傳遞變量(而不是在劇本或命令行中設置var)? –