以下は簡単なAnsible
スクリプトです:
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr"
これで、変数command_result
にメソッドがあることがわかりましたstderr
。しかし、すべてのメソッドのリストをどのように取得できますか?
答え1
debug
ダンプ変数を使用できます。
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr"
- name: dump command_result
debug: var=command_result
すると、次のように出力されます。
TASK: [dump command_result] **************************************************************
ok: [hostname] => {
"command_result": {
"changed": false,
"cmd": "/usr/bin/example-command -x -y -z",
"delta": "0:00:00.018233",
"end": "2015-05-07 09:33:08.444674",
"invocation": {
"module_args": "/usr/bin/example-command -x -y -z",
"module_name": "command"
},
"rc": 0,
"start": "2015-05-07 09:33:08.426441",
"stderr": "",
"stdout": "whatever",
"stdout_lines": [
"whatever"
],
"warnings": []
}
}
答え2
Ansibleの変数は、デフォルトで次のように解釈される文字列です。Jinja2テンプレートエンジン。読む言語リファレンステンプレート変数の詳細Jinja2の組み込み型(string
など)は、Pythonの対応する型(など)に似ており、sequence
共通属性とメソッド(呼び出し可能属性)が多いが同じではありません。mapping
str
list
dict
答え3
実際、この「variable.stderr」はメソッドではなく変数です... Ansibleでは実際のプログラミング言語ではないため、「メソッド」を直接扱いません。いつものように、最高の学習ソースは、モジュールの良い紹介を提供する公式Ansibleドキュメントです。