テンプレート出力をその場でキャプチャ


8

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 }}"

一時ファイルの書き込み、コマンドへのフィード、その後の消去を含まない、これに対処するより良い方法はありますか?


あなたが一時ファイルで、あなたが説明したように、一度それをしました。ansible guys向けに機能リクエストを作成:github.com/ansible/ansible/issues/22134
Selivanov Pavel

回答:


6

ansibleの人から回答を得ました:

some_var: "{{ lookup('template', 'tmpl.j2') }}"

1
すごい!タスクで「with_items」を使用している場合は、テンプレートで「item」変数を使用できます。
Ikrom

2

入力が必要なコマンドを処理する適切な方法stdinは、expectモジュールです。

Ansibleで機密データを処理する適切な方法は、Ansible Vaultです。AnsibleがPythonスクリプトを作成してタスクの下で定義されたコマンドを実行するため、データは暗号化されずにファイルシステムに残ります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.