web-dev-qa-db-ja.com

Ansible stdoutフォーマット

以下のタスクを想定しています。

Shell: "some_script.sh" register: "some_script_result"

debug: msg: "Output: {{ some_script_result.stdout_lines }}

以下の出力を受け取ります:

"msg": "出力:[u'some_value '、u'some_value2、u'some_value3]"

出力をどのように印刷するのですか?

"メッセージ":

出力:

some_value

some_value2

some_value

Ansibleバージョンは2.4.2です。

ありがとうございました!

6
Kimmel

this オプションを試してください。気に入ると思います。

Ansible 2.5で導入された新しいYAMLコールバックプラグインがあります。つまり、Ansible 2.5.0以降を実行しているマシンは、カスタムプラグインをインストールしなくても、このフォーマットの使用を自動的に開始できます。

これを使用するには、ansible.cfgファイル(/etc/ansible/ansible.cfg内のグローバル、またはplaybook/project内のローカルファイル)を編集し、[defaults]セクションの下に次の行を追加します。

# Use the YAML callback plugin.
stdout_callback = yaml
# Use the stdout_callback when running ad-hoc commands.
bin_ansible_callbacks = True

これで、出力メッセージを簡単に読むことができます

10
imjoseangel