
ターゲット サーバーで、stdin 経由でのみデータを受け入れるコマンドを実行する必要があります。入力するデータはテンプレート ファイルから取得され、機密データが含まれているため、1 秒でもファイル システムに残しておきたくありません。
テンプレート タスクの出力を取得してコマンドに渡す方法を探しています。次のようなものです:
- 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') }}"