実行時に実行できるすべてのタスクは、その結果を変数に保存できます。これを行うには、結果を保存する変数を指定する必要があります。これは、使用するモジュールとは無関係に、register
パラメータで行うことができます。
値を変数に保存した後は、後のタスクの後で使用することができます。あなたは次のように記述することができ、特定のタスクの標準出力を取得したいのであれば、たとえば:ここ
---
- hosts: localhost
tasks:
- shell: ls
register: shell_result
- debug:
var: shell_result.stdout_lines
register
をshell_result
変数にモジュールの応答を保存するためにansibleを伝え、その後、我々はdebug
を使用変数を出力するモジュール。
例の実行は次のようになります。
PLAY [localhost] ***************************************************************
TASK [command] *****************************************************************
changed: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"shell_result.stdout_lines": [
"play.yml"
]
}
応答は複数のフィールドを含めることができます。 stdout_lines
はone of the default fieldです。モジュールの応答から期待できます。
すべてのフィールドは、あなたがstdout
またはstdout_lines
値には何も期待していない標準出力には何も返さないモジュールについては、例えば、しかしmsg
フィールドは、この中で満たされるかもしれない、すべてのモジュールから利用できるわけではありません場合。また、標準以外の変数で何かを見つけるモジュールもあります。そのため、これらの非標準の戻り値については、モジュールのドキュメントを参照してください。
また、対応するプレイブックの冗長レベルを上げることもできます。さまざまな冗長度のレベル(-v
,-vvv
および-vvvv
)を選択できます。あなたは、これは各モジュールの応答をプリントアウトします見ることができるように
PLAY [localhost] ***************************************************************
TASK [command] *****************************************************************
(...)
changed: [localhost] => {
"changed": true,
"cmd": "ls",
"delta": "0:00:00.007621",
"end": "2017-02-17 23:04:41.912570",
"invocation": {
"module_args": {
"_raw_params": "ls",
"_uses_shell": true,
"chdir": null,
"creates": null,
"executable": null,
"removes": null,
"warn": true
},
"module_name": "command"
},
"rc": 0,
"start": "2017-02-17 23:04:41.904949",
"stderr": "",
"stdout": "play.retry\nplay.yml",
"stdout_lines": [
"play.retry",
"play.yml"
],
"warnings": []
}
を、利用可能なすべてのフィールド:たとえば、冗長(-vvv
)と脚本を実行するときは、これを取得します。 stdout_lines
が利用可能であることがわかります。内容は予期したとおりです。
あなたがit's documentationをチェックする場合は、次のことをしようとする場合がありますので、あなたは、それがoutput
フィールドに出力を返すことがわかります、jenkins_script
モジュールに関するあなたの主な質問に答えるために:
tasks:
- jenkins_script:
script: (...)
register: jenkins_result
- debug:
var: jenkins_result.output
利用-v潜在的なプレイブックを実行しているとき。 – andyhky
おそらく、デバッグ行のスペースを省略することはできません。 ' - debug:...'にする必要があります。 –