
我需要在目標伺服器上運行一個僅透過標準輸入接受資料的命令。我提供給它的數據來自模板文件並包含敏感數據,所以我寧願不讓它在文件系統中存在一秒鐘。
我正在嘗試找到一種方法來獲取模板任務的輸出,以便我可以將其傳遞給命令。就像是:
- name: generate data
template:
src: data.j2
dest: [I'd rather not have any files written]
register: myvar
- name: run command
shell: "command < {{ myvar }}"
是否有更好的方法來解決這個問題,而不涉及編寫臨時文件,將其提供給命令,然後刪除它?
答案1
得到 ansible 人的答案:
some_var: "{{ lookup('template', 'tmpl.j2') }}"
答案2
答案3
結合這裡的幾個早期答案,我們得到:
- name: run command
command: "command"
args:
stdin: "{{ lookup('template', 'tmpl.j2') }}"